]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: honor `CURL_DISABLE_INSTALL` and `CURL_ENABLE_EXPORT_TARGET` in lib and src
authorViktor Szakats <commit@vsz.me>
Wed, 19 Nov 2025 22:33:52 +0000 (23:33 +0100)
committerViktor Szakats <commit@vsz.me>
Wed, 19 Nov 2025 23:23:08 +0000 (00:23 +0100)
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

docs/libcurl/opts/CMakeLists.txt
lib/CMakeLists.txt
src/CMakeLists.txt

index c3e2c2cc6b65af3d45cd7cc0e798f4a3403b9538..f8b5aaa2def78a6fdbea751c24c4b33c9d5042e5 100644 (file)
@@ -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)
index d9857a50c27f887fa71b9c43a27abc84dff943d7..b468eec0a2e47ed76c8f6f846fcf613f08967bc0 100644 (file)
@@ -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}
index 9e2bbed8f06c6c42ae20554029dae7438ed70d55..33f288b9159139debd411f15512d6fdb257bc9f6 100644 (file)
@@ -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()