86 lines
2.4 KiB
CMake
86 lines
2.4 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(NBCore VERSION 0.1)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
include(GNUInstallDirs)
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
toAbsolutePath(NB_CORE_SOURCE
|
|
./src/ErrorsImpl.cpp
|
|
./src/Logger.cpp
|
|
./src/Processes.cpp
|
|
./src/StringUtils.cpp
|
|
./src/Utils.cpp
|
|
)
|
|
toAbsolutePath(NB_CORE_INCLUDE
|
|
./include/NBCore/ANSITerm.hpp
|
|
./include/NBCore/DataSink.hpp
|
|
./include/NBCore/Errors.hpp
|
|
./include/NBCore/ErrorsImpl.hpp
|
|
./include/NBCore/Logger.hpp
|
|
./include/NBCore/Printer.hpp
|
|
./include/NBCore/Processes.hpp
|
|
./include/NBCore/StringUtils.hpp
|
|
./include/NBCore/ThreadsafeQueue.hpp
|
|
./include/NBCore/Types.hpp
|
|
./include/NBCore/TypeTraits.hpp
|
|
./include/NBCore/Utils.hpp
|
|
)
|
|
|
|
set(NB_CORE_SOURCE ${NB_CORE_SOURCE} PARENT_SCOPE)
|
|
set(NB_CORE_INCLUDE ${NB_CORE_INCLUDE} PARENT_SCOPE)
|
|
|
|
add_library(NBCore ${NB_CORE_SOURCE})
|
|
add_library(NBEngine::Core ALIAS NBCore)
|
|
target_include_directories(NBCore
|
|
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
|
PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
|
)
|
|
export(
|
|
TARGETS NBCore
|
|
FILE "${CMAKE_BINARY_DIR}/cmake/NBCoreTargets.cmake"
|
|
NAMESPACE NBEngine::
|
|
)
|
|
configure_package_config_file(
|
|
"NBCoreConfig.cmake.in"
|
|
"${CMAKE_BINARY_DIR}/cmake/NBCoreConfig.cmake"
|
|
INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake"
|
|
PATH_VARS CMAKE_INSTALL_LIBDIR
|
|
)
|
|
write_basic_package_version_file(
|
|
"${CMAKE_BINARY_DIR}/cmake/NBCoreConfigVersion.cmake"
|
|
COMPATIBILITY AnyNewerVersion
|
|
)
|
|
|
|
if (NBENGINE_INSTALL)
|
|
message("Installing NBCore to ${CMAKE_INSTALL_PREFIX}")
|
|
install(
|
|
TARGETS NBCore
|
|
EXPORT NBCoreTargets
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib
|
|
INCLUDES DESTINATION include
|
|
)
|
|
install(
|
|
DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/NBCore"
|
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
|
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
|
|
)
|
|
install(
|
|
EXPORT NBCoreTargets
|
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake"
|
|
NAMESPACE NBEngine::
|
|
)
|
|
install(FILES
|
|
"${CMAKE_BINARY_DIR}/cmake/NBCoreConfig.cmake"
|
|
"${CMAKE_BINARY_DIR}/cmake/NBCoreConfigVersion.cmake"
|
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/CMake"
|
|
)
|
|
endif()
|
|
|
|
if (NB_BUILD_TESTS)
|
|
add_subdirectory(./tests )
|
|
endif() |