diff options
Diffstat (limited to 'cmake.deps/patches/libuv-disable-shared.patch')
-rw-r--r-- | cmake.deps/patches/libuv-disable-shared.patch | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/cmake.deps/patches/libuv-disable-shared.patch b/cmake.deps/patches/libuv-disable-shared.patch new file mode 100644 index 0000000000..0e5722f4ba --- /dev/null +++ b/cmake.deps/patches/libuv-disable-shared.patch @@ -0,0 +1,117 @@ +From 326a1845f924432332071d03d156b7df4af7c46f Mon Sep 17 00:00:00 2001 +From: Tim Tavlintsev <ttavlintsev@enttec.com> +Date: Thu, 21 Jul 2022 16:42:21 +1000 +Subject: [PATCH] Add CMake option LIBUV_BUILD_SHARED to enable/disable shared + library build Fix #3637 + +--- + CMakeLists.txt | 66 +++++++++++++++++++++++++++++--------------------- + 1 file changed, 38 insertions(+), 28 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2c42c3ff..a8e19980 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,6 +28,8 @@ cmake_dependent_option(LIBUV_BUILD_BENCH + "Build the benchmarks when building unit tests and we are the root project" ON + "LIBUV_BUILD_TESTS" OFF) + ++option(LIBUV_BUILD_SHARED "Build shared lib" ON) ++ + # Qemu Build + option(QEMU "build for qemu" OFF) + if(QEMU) +@@ -390,25 +392,27 @@ if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD|Linux|NetBSD|OpenBSD") + list(APPEND uv_test_libraries util) + endif() + +-add_library(uv SHARED ${uv_sources}) +-target_compile_definitions(uv +- INTERFACE +- USING_UV_SHARED=1 +- PRIVATE +- BUILDING_UV_SHARED=1 +- ${uv_defines}) +-target_compile_options(uv PRIVATE ${uv_cflags}) +-target_include_directories(uv +- PUBLIC +- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> +- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> +- PRIVATE +- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>) +-if(CMAKE_SYSTEM_NAME STREQUAL "OS390") +- target_include_directories(uv PUBLIC $<BUILD_INTERFACE:${ZOSLIB_DIR}/include>) +- set_target_properties(uv PROPERTIES LINKER_LANGUAGE CXX) ++if(LIBUV_BUILD_SHARED) ++ add_library(uv SHARED ${uv_sources}) ++ target_compile_definitions(uv ++ INTERFACE ++ USING_UV_SHARED=1 ++ PRIVATE ++ BUILDING_UV_SHARED=1 ++ ${uv_defines}) ++ target_compile_options(uv PRIVATE ${uv_cflags}) ++ target_include_directories(uv ++ PUBLIC ++ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> ++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> ++ PRIVATE ++ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>) ++ if(CMAKE_SYSTEM_NAME STREQUAL "OS390") ++ target_include_directories(uv PUBLIC $<BUILD_INTERFACE:${ZOSLIB_DIR}/include>) ++ set_target_properties(uv PROPERTIES LINKER_LANGUAGE CXX) ++ endif() ++ target_link_libraries(uv ${uv_libraries}) + endif() +-target_link_libraries(uv ${uv_libraries}) + + add_library(uv_a STATIC ${uv_sources}) + target_compile_definitions(uv_a PRIVATE ${uv_defines}) +@@ -669,28 +673,34 @@ string(REPLACE ";" " " LIBS "${LIBS}") + file(STRINGS configure.ac configure_ac REGEX ^AC_INIT) + string(REGEX MATCH "([0-9]+)[.][0-9]+[.][0-9]+" PACKAGE_VERSION "${configure_ac}") + set(UV_VERSION_MAJOR "${CMAKE_MATCH_1}") +-# The version in the filename is mirroring the behaviour of autotools. +-set_target_properties(uv PROPERTIES +- VERSION ${UV_VERSION_MAJOR}.0.0 +- SOVERSION ${UV_VERSION_MAJOR}) ++ + set(includedir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) + set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) + set(prefix ${CMAKE_INSTALL_PREFIX}) +-configure_file(libuv.pc.in libuv.pc @ONLY) + configure_file(libuv-static.pc.in libuv-static.pc @ONLY) + + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) +-install(FILES ${PROJECT_BINARY_DIR}/libuv.pc ${PROJECT_BINARY_DIR}/libuv-static.pc ++install(FILES ${PROJECT_BINARY_DIR}/libuv-static.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +-install(TARGETS uv EXPORT libuvConfig +- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(TARGETS uv_a EXPORT libuvConfig + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT libuvConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv) + ++if(LIBUV_BUILD_SHARED) ++ # The version in the filename is mirroring the behaviour of autotools. ++ set_target_properties(uv PROPERTIES ++ VERSION ${UV_VERSION_MAJOR}.0.0 ++ SOVERSION ${UV_VERSION_MAJOR}) ++ configure_file(libuv.pc.in libuv.pc @ONLY) ++ install(FILES ${PROJECT_BINARY_DIR}/libuv.pc ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ++ install(TARGETS uv EXPORT libuvConfig ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++endif() ++ + if(MSVC) + set(CMAKE_DEBUG_POSTFIX d) + endif() +-- +2.37.0 + |