From: Viktor Szakats Date: Wed, 19 Nov 2025 22:33:52 +0000 (+0100) Subject: cmake: honor `CURL_DISABLE_INSTALL` and `CURL_ENABLE_EXPORT_TARGET` in lib and src X-Git-Tag: rc-8_18_0-1~222 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e8f36bf8e56e632e4f8be54b584f758e3aaa086;p=thirdparty%2Fcurl.git cmake: honor `CURL_DISABLE_INSTALL` and `CURL_ENABLE_EXPORT_TARGET` in lib and src Based on existing code and commit history it appears `CURL_DISABLE_INSTALL` means to prevent calling `install()`; `CURL_ENABLE_EXPORT_TARGET` means to prevent calling `export()` and `install()`s with `EXPORT` in them. Fix them to also apply to the lib and src directories in that vain: - lib: honor `CURL_DISABLE_INSTALL` - src: honor `CURL_DISABLE_INSTALL` - src: honor `CURL_ENABLE_EXPORT_TARGET` https://cmake.org/cmake/help/v4.2/command/install.html https://cmake.org/cmake/help/v4.2/command/export.html - `CURL_DISABLE_INSTALL` follow-up to: aace27b0965c10394544d1dacc9c2cb2fe0de3d3 #12287 - `CURL_ENABLE_EXPORT_TARGET` follow-up to: 8698825106f7a9987ab3924128eee885278f66bb #9638 643ec296456ba98c536857fce3ecfd021d44d913 #7060 Closes #19144 --- diff --git a/docs/libcurl/opts/CMakeLists.txt b/docs/libcurl/opts/CMakeLists.txt index c3e2c2cc6b..f8b5aaa2de 100644 --- a/docs/libcurl/opts/CMakeLists.txt +++ b/docs/libcurl/opts/CMakeLists.txt @@ -28,6 +28,7 @@ include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") curl_add_manual_pages(man_MANS) add_custom_target(curl-opts-man DEPENDS ${man_MANS}) add_dependencies(curl-man curl-opts-man) + if(NOT CURL_DISABLE_INSTALL) set(_src "") foreach(_file IN LISTS man_MANS) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index d9857a50c2..b468eec0a2 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -304,7 +304,7 @@ add_library(${LIB_NAME} ALIAS ${LIB_SELECTED}) add_library(${PROJECT_NAME}::${LIB_NAME} ALIAS ${LIB_SELECTED}) if(CURL_ENABLE_EXPORT_TARGET) - if(BUILD_STATIC_LIBS) + if(NOT CURL_DISABLE_INSTALL AND BUILD_STATIC_LIBS) install(TARGETS ${LIB_STATIC} EXPORT ${TARGETS_EXPORT_NAME} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -312,7 +312,7 @@ if(CURL_ENABLE_EXPORT_TARGET) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif() - if(BUILD_SHARED_LIBS) + if(NOT CURL_DISABLE_INSTALL AND BUILD_SHARED_LIBS) install(TARGETS ${LIB_SHARED} EXPORT ${TARGETS_EXPORT_NAME} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9e2bbed8f0..33f288b915 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -141,8 +141,13 @@ endif() ################################################################################ -install(TARGETS ${EXE_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) -export(TARGETS ${EXE_NAME} - FILE "${PROJECT_BINARY_DIR}/curl-target.cmake" - NAMESPACE ${PROJECT_NAME}:: -) +if(CURL_ENABLE_EXPORT_TARGET) + if(NOT CURL_DISABLE_INSTALL) + install(TARGETS ${EXE_NAME} EXPORT ${TARGETS_EXPORT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() + + export(TARGETS ${EXE_NAME} + FILE "${PROJECT_BINARY_DIR}/curl-target.cmake" + NAMESPACE ${PROJECT_NAME}:: + ) +endif()