yyc12345
bec36b4b3c
- replace some CMake variables to our custom variables in install path, however it does nothing because they are equal in default.
60 lines
2.1 KiB
CMake
60 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.23)
|
|
project(YYCC
|
|
VERSION 1.3.0
|
|
LANGUAGES CXX
|
|
)
|
|
|
|
# Provide options
|
|
option(YYCC_BUILD_TESTBENCH "Build testbench of YYCCommonplace." OFF)
|
|
option(YYCC_BUILD_DOC "Build document of YYCCommonplace." OFF)
|
|
option(YYCC_DEBUG_UE_FILTER "YYCC developer used switch for testing Windows unhandled exception filter. Should not set to ON!!!" OFF)
|
|
|
|
# Setup install path from CMake provided install path for convenient use.
|
|
include(GNUInstallDirs)
|
|
set(YYCC_INSTALL_INCLUDE_PATH ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH
|
|
"Public header install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
|
set(YYCC_INSTALL_LIB_PATH ${CMAKE_INSTALL_LIBDIR} CACHE PATH
|
|
"Library install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
|
set(YYCC_INSTALL_BIN_PATH ${CMAKE_INSTALL_BINDIR} CACHE PATH
|
|
"Binary install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
|
set(YYCC_INSTALL_DOC_PATH ${CMAKE_INSTALL_DOCDIR} CACHE PATH
|
|
"Non-arch doc install path relative to CMAKE_INSTALL_PREFIX unless set to an absolute path.")
|
|
|
|
# Import 3 build targets
|
|
add_subdirectory(src)
|
|
if (YYCC_BUILD_TESTBENCH)
|
|
add_subdirectory(testbench)
|
|
endif ()
|
|
if (YYCC_BUILD_DOC)
|
|
add_subdirectory(doc)
|
|
endif ()
|
|
|
|
# Install target and package
|
|
# Install target
|
|
install(EXPORT YYCCommonplaceTargets
|
|
FILE YYCCommonplaceTargets.cmake
|
|
NAMESPACE YYCC::
|
|
DESTINATION ${YYCC_INSTALL_LIB_PATH}/cmake/YYCCommonplace
|
|
)
|
|
# Package configuration file
|
|
include(CMakePackageConfigHelpers)
|
|
write_basic_package_version_file(
|
|
YYCCommonplaceConfigVersion.cmake
|
|
VERSION ${PACKAGE_VERSION}
|
|
COMPATIBILITY SameMinorVersion
|
|
)
|
|
configure_package_config_file(
|
|
${CMAKE_CURRENT_LIST_DIR}/cmake/YYCCommonplaceConfig.cmake.in
|
|
"${CMAKE_CURRENT_BINARY_DIR}/YYCCommonplaceConfig.cmake"
|
|
INSTALL_DESTINATION ${YYCC_INSTALL_LIB_PATH}/cmake/YYCCommonplace
|
|
)
|
|
# Copy package files to install destination
|
|
install(
|
|
FILES
|
|
"${CMAKE_CURRENT_BINARY_DIR}/YYCCommonplaceConfig.cmake"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/YYCCommonplaceConfigVersion.cmake"
|
|
DESTINATION
|
|
${YYCC_INSTALL_LIB_PATH}/cmake/YYCCommonplace
|
|
)
|
|
|