vcpkg/ports/antlr4/fix_build_4.11.1.patch
Artem Shubovych 2ef381ddf7
[antlr4] Update antlr4 to v4.11.1 (#27720)
* Update antlr4 to version 4.11.1 and use GitHub instead of website downloads

* Remove unused patch files

* Run x-add-version

* Remove single-use variable and enforce vcpkg version

* x-add-version

* Use VERSION variable which is generated by vcpkg from vcpkg.json

* Add quotes, remove variable-used-once.

* Minimize patch.

* Update version database.

Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
2022-11-16 13:37:32 -08:00

94 lines
3.3 KiB
Diff

diff --git a/runtime/Cpp/runtime/CMakeLists.txt b/runtime/Cpp/runtime/CMakeLists.txt
index a4e4d1c..19cc21c 100644
--- a/runtime/Cpp/runtime/CMakeLists.txt
+++ b/runtime/Cpp/runtime/CMakeLists.txt
@@ -25,15 +25,21 @@ file(GLOB libantlrcpp_SRC
"${PROJECT_SOURCE_DIR}/runtime/src/tree/xpath/*.cpp"
)
+if(BUILD_SHARED_LIBS)
add_library(antlr4_shared SHARED ${libantlrcpp_SRC})
+else()
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)
+if(BUILD_SHARED_LIBS)
target_link_libraries(antlr4_shared Threads::Threads)
+else()
target_link_libraries(antlr4_static Threads::Threads)
+endif()
if (ANTLR_BUILD_CPP_TESTS)
include(FetchContent)
@@ -70,8 +76,11 @@ if (ANTLR_BUILD_CPP_TESTS)
endif()
if(APPLE)
+ if(BUILD_SHARED_LIBS)
target_link_libraries(antlr4_shared ${COREFOUNDATION_LIBRARY})
+ else()
target_link_libraries(antlr4_static ${COREFOUNDATION_LIBRARY})
+ endif()
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
@@ -93,26 +102,32 @@ set(static_lib_suffix "")
if (WIN32)
set(static_lib_suffix "-static")
+ if(BUILD_SHARED_LIBS)
target_compile_definitions(antlr4_shared PUBLIC ANTLR4CPP_EXPORTS)
+ else()
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()
+if(BUILD_SHARED_LIBS)
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}")
+else()
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)
@@ -130,18 +145,21 @@ if (ANTLR_BUILD_CPP_TESTS)
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:antlr4_static> ${CMAKE_HOME_DIRECTORY}/dist)
endif()
+if(BUILD_SHARED_LIBS)
install(TARGETS antlr4_shared
EXPORT antlr4-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+else()
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"
COMPONENT dev