Skip to content

Commit 1df7688

Browse files
authored
fix: hide installation behind an option (#512)
Currently, every project pulling in SQLiteCpp automatically gets an `make install` which installs SQLiteCpp into the system. This is often not desired, since other projects only statically link. The solution is to add another "SQLITECPP_INSTALL" option, which allows to turn on/off this behavior.
2 parents 817f331 + 47909c4 commit 1df7688

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

CMakeLists.txt

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -363,30 +363,32 @@ target_include_directories(SQLiteCpp
363363
$<INSTALL_INTERFACE:include/>)
364364

365365
# Allow the library to be installed via "make install" and found with "find_package"
366-
367-
include(GNUInstallDirs)
368-
install(TARGETS SQLiteCpp
369-
EXPORT ${PROJECT_NAME}Targets
370-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
371-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
372-
COMPONENT libraries)
373-
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers FILES_MATCHING REGEX ".*\\.(hpp|h)$")
374-
install(EXPORT ${PROJECT_NAME}Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
375-
install(FILES ${PROJECT_SOURCE_DIR}/package.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
376-
377-
include(CMakePackageConfigHelpers)
378-
write_basic_package_version_file(
379-
cmake/${PROJECT_NAME}ConfigVersion.cmake
380-
VERSION ${PROJECT_VERSION}
381-
COMPATIBILITY AnyNewerVersion)
382-
configure_package_config_file(
383-
cmake/${PROJECT_NAME}Config.cmake.in
384-
cmake/${PROJECT_NAME}Config.cmake
385-
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
386-
install(FILES
387-
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake
388-
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake
389-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
366+
option(SQLITECPP_INSTALL "Enables the install target." ON)
367+
if (SQLITECPP_INSTALL)
368+
include(GNUInstallDirs)
369+
install(TARGETS SQLiteCpp
370+
EXPORT ${PROJECT_NAME}Targets
371+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
372+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
373+
COMPONENT libraries)
374+
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers FILES_MATCHING REGEX ".*\\.(hpp|h)$")
375+
install(EXPORT ${PROJECT_NAME}Targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
376+
install(FILES ${PROJECT_SOURCE_DIR}/package.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
377+
378+
include(CMakePackageConfigHelpers)
379+
write_basic_package_version_file(
380+
cmake/${PROJECT_NAME}ConfigVersion.cmake
381+
VERSION ${PROJECT_VERSION}
382+
COMPATIBILITY AnyNewerVersion)
383+
configure_package_config_file(
384+
cmake/${PROJECT_NAME}Config.cmake.in
385+
cmake/${PROJECT_NAME}Config.cmake
386+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
387+
install(FILES
388+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake
389+
${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake
390+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
391+
endif (SQLITECPP_INSTALL)
390392

391393
# Optional additional targets:
392394

0 commit comments

Comments
 (0)