diff --git a/dev-cpp/antlr-cpp/antlr_cpp-4.11.1.recipe b/dev-cpp/antlr-cpp/antlr_cpp-4.11.1.recipe new file mode 100644 index 000000000..8a88b1d68 --- /dev/null +++ b/dev-cpp/antlr-cpp/antlr_cpp-4.11.1.recipe @@ -0,0 +1,73 @@ +SUMMARY="The ANTLR Parser Generator (C++ runtime)" +DESCRIPTION="ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for \ +reading, processing, executing, or translating structured text or binary files. It's widely used \ +to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can \ +build and walk parse trees." +HOMEPAGE="https://www.antlr.org/" +COPYRIGHT="2012-2022 The ANTLR Project" +LICENSE="BSD (3-clause)" +REVISION="1" +SOURCE_URI="https://www.antlr.org/download/antlr4-cpp-runtime-$portVersion-source.zip" +CHECKSUM_SHA256="8018c335316e61bb768e5bd4a743a9303070af4e1a8577fa902cd053c17249da" +SOURCE_DIR="" +PATCHES="antlr_cpp-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + antlr_cpp$secondaryArchSuffix = $portVersion + lib:libantlr4_runtime$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + " + +PROVIDES_devel=" + antlr_cpp${secondaryArchSuffix}_devel = $portVersion + devel:libantlr4_runtime$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + antlr_cpp$secondaryArchSuffix == $portVersion base + cmd:antlr4 + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libgtest$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:find # required for fixCMake + cmd:make + cmd:gcc$secondaryArchSuffix + " + +BUILD() +{ + mkdir -p build + cd build + cmake .. $cmakeDirArgs \ + -DCMAKE_BUILD_TYPE=Release \ + -DANTLR_BUILD_STATIC=OFF \ + -DANTLR4_INSTALL=ON + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + prepareInstalledDevelLib libantlr4-runtime + fixCMake + + packageEntries devel \ + $developDir +} + +TEST() +{ + cd build + make test +} diff --git a/dev-cpp/antlr-cpp/patches/antlr_cpp-4.11.1.patchset b/dev-cpp/antlr-cpp/patches/antlr_cpp-4.11.1.patchset new file mode 100644 index 000000000..ed2a815ba --- /dev/null +++ b/dev-cpp/antlr-cpp/patches/antlr_cpp-4.11.1.patchset @@ -0,0 +1,279 @@ +From fc126942abe7e507c75f12da2f6d51b70c829736 Mon Sep 17 00:00:00 2001 +From: Robert Adam +Date: Wed, 30 Nov 2022 19:09:46 +0100 +Subject: Cpp: Add cmake options to selectively disable shared/static build + +The default behavior is left unchanged (build both) but now users can +choose to optionally only build one of the two variants. +Due to macro-magic, both variants had to be compiled separately and +therefore building both variants really does compile everything twice. +Therefore, disabling the version that one is not interested in can cut +down compilation time significantly. + +Fixes #3993 + +Signed-off-by: Robert Adam + +diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt +index a4e4d1c..5d99d6d 100644 +--- a/runtime/CMakeLists.txt ++++ b/runtime/CMakeLists.txt +@@ -1,4 +1,10 @@ + option(ANTLR_BUILD_CPP_TESTS "Build C++ tests." ON) ++option(ANTLR_BUILD_SHARED "Build the shared library of the ANTLR runtime" ON) ++option(ANTLR_BUILD_STATIC "Build the static library of the ANTLR runtime" ON) ++ ++if (NOT ANTLR_BUILD_SHARED AND NOT ANTLR_BUILD_STATIC) ++ message(FATAL_ERROR "Options ANTLR_BUILD_SHARED and ANTLR_BUILD_STATIC can't both be OFF") ++endif() + + include_directories( + ${PROJECT_SOURCE_DIR}/runtime/src +@@ -25,15 +31,24 @@ file(GLOB libantlrcpp_SRC + "${PROJECT_SOURCE_DIR}/runtime/src/tree/xpath/*.cpp" + ) + +-add_library(antlr4_shared SHARED ${libantlrcpp_SRC}) +-add_library(antlr4_static STATIC ${libantlrcpp_SRC}) ++if (ANTLR_BUILD_SHARED) ++ add_library(antlr4_shared SHARED ${libantlrcpp_SRC}) ++endif() ++if (ANTLR_BUILD_STATIC) ++ add_library(antlr4_static STATIC ${libantlrcpp_SRC}) ++endif() + + # Make sure to link against threads (pthreads) library in order to be able to + # make use of std::call_once in the code without producing runtime errors + # (see also https://github.com/antlr/antlr4/issues/3708 and/or https://stackoverflow.com/q/51584960). + find_package(Threads REQUIRED) +-target_link_libraries(antlr4_shared Threads::Threads) +-target_link_libraries(antlr4_static Threads::Threads) ++ ++if (TARGET antlr4_shared) ++ target_link_libraries(antlr4_shared Threads::Threads) ++endif() ++if (TARGET antlr4_static) ++ target_link_libraries(antlr4_static Threads::Threads) ++endif() + + if (ANTLR_BUILD_CPP_TESTS) + include(FetchContent) +@@ -60,7 +75,7 @@ if (ANTLR_BUILD_CPP_TESTS) + + target_link_libraries( + antlr4_tests +- antlr4_static ++ $,antlr4_static,antlr4_shared> + gtest_main + ) + +@@ -70,8 +85,12 @@ if (ANTLR_BUILD_CPP_TESTS) + endif() + + if(APPLE) +- target_link_libraries(antlr4_shared ${COREFOUNDATION_LIBRARY}) +- target_link_libraries(antlr4_static ${COREFOUNDATION_LIBRARY}) ++ if (TARGET antlr4_shared) ++ target_link_libraries(antlr4_shared ${COREFOUNDATION_LIBRARY}) ++ endif() ++ if (TARGET antlr4_static) ++ target_link_libraries(antlr4_static ${COREFOUNDATION_LIBRARY}) ++ endif() + endif() + + if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") +@@ -93,54 +112,70 @@ set(static_lib_suffix "") + + if (WIN32) + set(static_lib_suffix "-static") +- target_compile_definitions(antlr4_shared PUBLIC ANTLR4CPP_EXPORTS) +- target_compile_definitions(antlr4_static PUBLIC ANTLR4CPP_STATIC) ++ if (TARGET antlr4_shared) ++ target_compile_definitions(antlr4_shared PUBLIC ANTLR4CPP_EXPORTS) ++ endif() ++ if (TARGET antlr4_static) ++ target_compile_definitions(antlr4_static PUBLIC ANTLR4CPP_STATIC) ++ endif() + if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(extra_share_compile_flags "-MP /wd4251") + set(extra_static_compile_flags "-MP") + endif() + endif() + +-set_target_properties(antlr4_shared +- PROPERTIES VERSION ${ANTLR_VERSION} +- SOVERSION ${ANTLR_VERSION} +- OUTPUT_NAME antlr4-runtime +- COMPILE_FLAGS "${disabled_compile_warnings} ${extra_share_compile_flags}") ++if (TARGET antlr4_shared) ++ set_target_properties(antlr4_shared ++ PROPERTIES VERSION ${ANTLR_VERSION} ++ SOVERSION ${ANTLR_VERSION} ++ OUTPUT_NAME antlr4-runtime ++ COMPILE_FLAGS "${disabled_compile_warnings} ${extra_share_compile_flags}") ++endif() + +-set_target_properties(antlr4_static +- PROPERTIES VERSION ${ANTLR_VERSION} +- SOVERSION ${ANTLR_VERSION} +- OUTPUT_NAME "antlr4-runtime${static_lib_suffix}" +- COMPILE_PDB_NAME "antlr4-runtime${static_lib_suffix}" +- COMPILE_FLAGS "${disabled_compile_warnings} ${extra_static_compile_flags}") ++if (TARGET antlr4_static) ++ set_target_properties(antlr4_static ++ PROPERTIES VERSION ${ANTLR_VERSION} ++ SOVERSION ${ANTLR_VERSION} ++ OUTPUT_NAME "antlr4-runtime${static_lib_suffix}" ++ COMPILE_PDB_NAME "antlr4-runtime${static_lib_suffix}" ++ COMPILE_FLAGS "${disabled_compile_warnings} ${extra_static_compile_flags}") ++endif() + + if (ANTLR_BUILD_CPP_TESTS) + # Copy the generated binaries to dist folder (required by test suite) ++ if (TARGET antlr4_shared) + add_custom_command( +- TARGET antlr4_shared +- POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/dist +- COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_HOME_DIRECTORY}/dist +- COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_HOME_DIRECTORY}/dist) ++ TARGET antlr4_shared ++ POST_BUILD ++ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/dist ++ COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_HOME_DIRECTORY}/dist ++ COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_HOME_DIRECTORY}/dist) ++ endif() + +- add_custom_command( +- TARGET antlr4_static +- POST_BUILD +- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/dist +- COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_HOME_DIRECTORY}/dist) ++ if (TARGET antlr4_static) ++ add_custom_command( ++ TARGET antlr4_static ++ POST_BUILD ++ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_HOME_DIRECTORY}/dist ++ COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${CMAKE_HOME_DIRECTORY}/dist) ++ endif() ++endif() ++ ++if (TARGET antlr4_shared) ++ install(TARGETS antlr4_shared ++ EXPORT antlr4-targets ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() + +-install(TARGETS antlr4_shared +- EXPORT antlr4-targets +- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +- +-install(TARGETS antlr4_static +- EXPORT antlr4-targets +- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++if (TARGET antlr4_static) ++ install(TARGETS antlr4_static ++ EXPORT antlr4-targets ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++endif() + + install(DIRECTORY "${PROJECT_SOURCE_DIR}/runtime/src/" + DESTINATION "include/antlr4-runtime" +-- +2.37.3 + + +From dbfb727fca76a299914d53e4e99c518842469b00 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Joachim=20Mairb=C3=B6ck?= +Date: Sun, 5 Feb 2023 20:55:24 +0100 +Subject: fix install paths + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index df621b1..8bb672c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -222,14 +222,14 @@ endif(ANTLR4_INSTALL) + + if(EXISTS LICENSE.txt) + install(FILES LICENSE.txt +- DESTINATION "share/doc/libantlr4") ++ DESTINATION ${CMAKE_INSTALL_DOCDIR}) + elseif(EXISTS ../../LICENSE.txt) + install(FILES ../../LICENSE.txt +- DESTINATION "share/doc/libantlr4") ++ DESTINATION ${CMAKE_INSTALL_DOCDIR}) + endif() + + install(FILES README.md VERSION +- DESTINATION "share/doc/libantlr4") ++ DESTINATION ${CMAKE_INSTALL_DOCDIR}) + + set(CPACK_PACKAGE_CONTACT "antlr-discussion@googlegroups.com") + set(CPACK_PACKAGE_VERSION ${ANTLR_VERSION}) +diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt +index 5d99d6d..2004adb 100644 +--- a/runtime/CMakeLists.txt ++++ b/runtime/CMakeLists.txt +@@ -178,7 +178,7 @@ if (TARGET antlr4_static) + endif() + + install(DIRECTORY "${PROJECT_SOURCE_DIR}/runtime/src/" +- DESTINATION "include/antlr4-runtime" ++ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/antlr4-runtime" + COMPONENT dev + FILES_MATCHING PATTERN "*.h" + ) +-- +2.37.3 + + +From a8d063068bb433d04de361a8dac2e2650b4c844e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Joachim=20Mairb=C3=B6ck?= +Date: Sun, 5 Feb 2023 21:04:31 +0100 +Subject: use packaged gtest + + +diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt +index 2004adb..44d6eb1 100644 +--- a/runtime/CMakeLists.txt ++++ b/runtime/CMakeLists.txt +@@ -51,19 +51,6 @@ if (TARGET antlr4_static) + endif() + + if (ANTLR_BUILD_CPP_TESTS) +- include(FetchContent) +- +- FetchContent_Declare( +- googletest +- URL https://github.com/google/googletest/archive/e2239ee6043f73722e7aa812a459f54a28552929.zip +- ) +- +- if(WITH_STATIC_CRT) +- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +- endif() +- +- FetchContent_MakeAvailable(googletest) +- + file(GLOB libantlrcpp_TESTS + "${PROJECT_SOURCE_DIR}/runtime/tests/*.cpp" + ) +@@ -77,6 +64,7 @@ if (ANTLR_BUILD_CPP_TESTS) + antlr4_tests + $,antlr4_static,antlr4_shared> + gtest_main ++ gtest + ) + + include(GoogleTest) +-- +2.37.3 + diff --git a/dev-java/antlr-runtime/antlr_runtime-4.11.1.recipe b/dev-java/antlr-runtime/antlr_runtime-4.11.1.recipe new file mode 100644 index 000000000..568d75fec --- /dev/null +++ b/dev-java/antlr-runtime/antlr_runtime-4.11.1.recipe @@ -0,0 +1,33 @@ +SUMMARY="The ANTLR Parser Generator (Java runtime)" +DESCRIPTION="ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for \ +reading, processing, executing, or translating structured text or binary files. It's widely used \ +to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can \ +build and walk parse trees." +HOMEPAGE="https://www.antlr.org/" +COPYRIGHT="2012-2022 The ANTLR Project" +LICENSE="BSD (3-clause)" +REVISION="1" +SOURCE_URI="https://www.antlr.org/download/antlr-runtime-$portVersion.jar#noarchive" +CHECKSUM_SHA256="e06c6553c1ccc14d36052ec4b0fc6f13b808cf957b5b1dc3f61bf401996ada59" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE="yes" + +PROVIDES=" + antlr_runtime = $portVersion + " +REQUIRES=" + haiku + java:runtime >= 11 + " + +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + " + +INSTALL() +{ + mkdir -p $libDir + cp antlr-runtime-$portVersion.jar $libDir +} diff --git a/dev-java/antlr-tool/antlr_tool-4.11.1.recipe b/dev-java/antlr-tool/antlr_tool-4.11.1.recipe new file mode 100644 index 000000000..0498fad39 --- /dev/null +++ b/dev-java/antlr-tool/antlr_tool-4.11.1.recipe @@ -0,0 +1,36 @@ +SUMMARY="The ANTLR Parser Generator" +DESCRIPTION="ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for \ +reading, processing, executing, or translating structured text or binary files. It's widely used \ +to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can \ +build and walk parse trees." +HOMEPAGE="https://www.antlr.org/" +COPYRIGHT="2012-2022 The ANTLR Project" +LICENSE="BSD (3-clause)" +REVISION="1" +SOURCE_URI="https://www.antlr.org/download/antlr-$portVersion-complete.jar#noarchive" +CHECKSUM_SHA256="62975e192b4af2622b72b5f0131553ee3cbce97f76dc2a41632dcc55e25473e1" + +ARCHITECTURES="any" +DISABLE_SOURCE_PACKAGE="yes" + +PROVIDES=" + antlr_tool = $portVersion + cmd:antlr4 = $portVersion + " +REQUIRES=" + haiku + cmd:java >= 11 + " + +BUILD_REQUIRES=" + " +BUILD_PREREQUIRES=" + " + +INSTALL() +{ + mkdir -p $binDir $libDir + cp antlr-$portVersion-complete.jar $libDir + echo java -jar $libDir/antlr-$portVersion-complete.jar \"\$@\" > $binDir/antlr4 + chmod +x $binDir/antlr4 +}