mirror of
https://github.com/yuzu-mirror/oaknut.git
synced 2025-12-06 07:01:59 +01:00
oaknut: add configuration for standalone installation
This commit is contained in:
parent
69799b43c6
commit
9f131cfb5d
|
|
@ -5,7 +5,7 @@ project(oaknut LANGUAGES CXX VERSION 1.2.2)
|
||||||
# or if this is the master project.
|
# or if this is the master project.
|
||||||
set(MASTER_PROJECT OFF)
|
set(MASTER_PROJECT OFF)
|
||||||
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||||
set(MASTER_PROJECT ON)
|
set(MASTER_PROJECT ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Disable in-source builds
|
# Disable in-source builds
|
||||||
|
|
@ -41,11 +41,16 @@ set(header_files
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/include/oaknut/oaknut_exception.hpp
|
${CMAKE_CURRENT_SOURCE_DIR}/include/oaknut/oaknut_exception.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
# Library definition
|
# Library definition
|
||||||
add_library(oaknut INTERFACE)
|
add_library(oaknut INTERFACE)
|
||||||
add_library(merry::oaknut ALIAS oaknut)
|
add_library(merry::oaknut ALIAS oaknut)
|
||||||
target_sources(oaknut INTERFACE "$<BUILD_INTERFACE:${header_files}>")
|
target_sources(oaknut INTERFACE "$<BUILD_INTERFACE:${header_files}>")
|
||||||
target_include_directories(oaknut INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
|
target_include_directories(oaknut INTERFACE
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||||
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}>
|
||||||
|
)
|
||||||
target_compile_features(oaknut INTERFACE cxx_std_20)
|
target_compile_features(oaknut INTERFACE cxx_std_20)
|
||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
|
|
@ -97,11 +102,28 @@ if (MASTER_PROJECT)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Export
|
# Install
|
||||||
include(GNUInstallDirs)
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
install(TARGETS oaknut EXPORT oaknutTargets)
|
install(TARGETS oaknut EXPORT oaknutTargets)
|
||||||
install(EXPORT oaknutTargets
|
install(EXPORT oaknutTargets
|
||||||
NAMESPACE merry::
|
NAMESPACE merry::
|
||||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/oaknut"
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/oaknut"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/oaknutConfig.cmake.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/oaknutConfig.cmake"
|
||||||
|
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/oaknut"
|
||||||
|
)
|
||||||
|
write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/oaknutConfigVersion.cmake"
|
||||||
|
COMPATIBILITY SameMajorVersion
|
||||||
|
)
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/oaknutConfig.cmake"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/oaknutConfigVersion.cmake"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/oaknut"
|
||||||
|
)
|
||||||
|
install(DIRECTORY
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/include/oaknut"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||||
|
)
|
||||||
|
|
|
||||||
5
oaknutConfig.cmake.in
Normal file
5
oaknutConfig.cmake.in
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||||
|
|
||||||
|
check_required_components(@PROJECT_NAME@)
|
||||||
Loading…
Reference in a new issue