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 c3e2c2c..f8b5aaa 100644
--- a/docs/libcurl/opts/CMakeLists.txt
+++ b/docs/libcurl/opts/CMakeLists.txt
@@ -28,6 +28,7 @@
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 d9857a5..b468eec 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -304,7 +304,7 @@
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 @@
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 9e2bbed..33f288b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -141,8 +141,13 @@
################################################################################
-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()