Add cmake install commands

This commit is contained in:
2025-11-10 22:58:37 +10:00
parent 7c1612be63
commit 20b2b5d8b8
3 changed files with 72 additions and 3 deletions

View File

@@ -10,10 +10,72 @@ list(TRANSFORM NOVA_ENGINE_SRC PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/src/)
add_library(nova SHARED ${NOVA_ENGINE_SRC})
target_include_directories(nova
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src
)
set_target_properties(nova PROPERTIES
DEFINE_SYMBOL NOVA_EXPORT_SYMBOLS
)
add_library(nova::nova ALIAS nova)
# {INSTALL_PREFIX}
# |-- include
# | `-- nova
# | `-- *.hpp
# |-- lib
# | `-- libnova.so
# `-- share
# `-- cmake
# `-- nova
# |-- nova-config.cmake
# |-- nova-config-version.cmake
# |-- nova-targets.cmake
# `-- nova-targets-release.cmake
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/nova
DESTINATION include
FILES_MATCHING PATTERN "*.hpp"
)
install(
TARGETS nova
EXPORT nova-targets
# LIBRARY DESTINATION lib
# ARCHIVE DESTINATION lib
# RUNTIME DESTINATION bin
# INCLUDES DESTINATION include
)
install(
EXPORT nova-targets
FILE nova-targets.cmake
NAMESPACE nova::
DESTINATION share/cmake/nova
)
include(CMakePackageConfigHelpers)
configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/nova-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/nova-config.cmake
INSTALL_DESTINATION share/cmake/nova
)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/nova-config-version.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/nova-config.cmake
${CMAKE_CURRENT_BINARY_DIR}/nova-config-version.cmake
DESTINATION share/cmake/nova
)