summaryrefslogtreecommitdiffstats
path: root/cmake/install-rules.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/install-rules.cmake')
-rw-r--r--cmake/install-rules.cmake44
1 files changed, 44 insertions, 0 deletions
diff --git a/cmake/install-rules.cmake b/cmake/install-rules.cmake
new file mode 100644
index 0000000..ed43e76
--- /dev/null
+++ b/cmake/install-rules.cmake
@@ -0,0 +1,44 @@
+include(CMakePackageConfigHelpers)
+include(GNUInstallDirs)
+
+# find_package(<package>) call for consumers to find this project
+set(package lnav)
+
+install(
+ TARGETS lnav
+ RUNTIME COMPONENT lnav_Runtime
+)
+
+write_basic_package_version_file(
+ "${package}ConfigVersion.cmake"
+ COMPATIBILITY SameMajorVersion
+)
+
+# Allow package maintainers to freely override the path for the configs
+set(
+ lnav_INSTALL_CMAKEDIR "${CMAKE_INSTALL_DATADIR}/${package}"
+ CACHE PATH "CMake package config location relative to the install prefix"
+)
+mark_as_advanced(lnav_INSTALL_CMAKEDIR)
+
+install(
+ FILES "${PROJECT_BINARY_DIR}/${package}ConfigVersion.cmake"
+ DESTINATION "${lnav_INSTALL_CMAKEDIR}"
+ COMPONENT lnav_Development
+)
+
+# Export variables for the install script to use
+install(CODE "
+set(lnav_NAME [[$<TARGET_FILE_NAME:lnav>]])
+set(lnav_INSTALL_CMAKEDIR [[${lnav_INSTALL_CMAKEDIR}]])
+set(CMAKE_INSTALL_BINDIR [[${CMAKE_INSTALL_BINDIR}]])
+" COMPONENT lnav_Development)
+
+install(
+ SCRIPT cmake/install-script.cmake
+ COMPONENT lnav_Development
+)
+
+if(PROJECT_IS_TOP_LEVEL)
+ include(CPack)
+endif()