Made NBEngine installable + CMake restruct
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(NBCore VERSION 0.1)
|
||||
|
||||
toAbsolutePath(NB_CORE_SOURCE
|
||||
./src/ErrorsImpl.cpp
|
||||
./src/Logger.cpp
|
||||
@@ -5,27 +8,64 @@ toAbsolutePath(NB_CORE_SOURCE
|
||||
./src/StringUtils.cpp
|
||||
./src/Utils.cpp
|
||||
)
|
||||
|
||||
toAbsolutePath(NB_CORE_INCLUDE
|
||||
./ANSITerm.hpp
|
||||
./DataSink.hpp
|
||||
./Errors.hpp
|
||||
./ErrorsImpl.hpp
|
||||
./Logger.hpp
|
||||
./Processes.hpp
|
||||
./StringUtils.hpp
|
||||
./ThreadsafeQueue.hpp
|
||||
./Types.hpp
|
||||
./TypeTraits.hpp
|
||||
./Utils.hpp
|
||||
./include/NBCore/ANSITerm.hpp
|
||||
./include/NBCore/DataSink.hpp
|
||||
./include/NBCore/Errors.hpp
|
||||
./include/NBCore/ErrorsImpl.hpp
|
||||
./include/NBCore/Logger.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:${PROJECT_SOURCE_DIR}/include>"
|
||||
PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
|
||||
)
|
||||
|
||||
target_include_directories(NBCore PUBLIC ./.)
|
||||
if (NBENGINE_INSTALL)
|
||||
message("Installing NBCore to ${CMAKE_INSTALL_PREFIX}")
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
install(
|
||||
TARGETS NBCore
|
||||
EXPORT NBCoreTargets
|
||||
)
|
||||
install(
|
||||
DIRECTORY "${PROJECT_SOURCE_DIR}/include/NBCore"
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
|
||||
)
|
||||
install(
|
||||
EXPORT NBCoreTargets
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake
|
||||
NAMESPACE NBEngine::
|
||||
)
|
||||
configure_package_config_file(
|
||||
"NBCoreConfig.cmake.in"
|
||||
"NBCoreConfig.cmake"
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake
|
||||
PATH_VARS CMAKE_INSTALL_LIBDIR
|
||||
)
|
||||
write_basic_package_version_file(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/NBCoreConfigVersion.cmake"
|
||||
COMPATIBILITY AnyNewerVersion
|
||||
)
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/NBCoreConfig.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/NBCoreConfigVersion.cmake"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake"
|
||||
)
|
||||
endif()
|
||||
|
||||
if (NB_BUILD_TESTS)
|
||||
add_subdirectory(./tests)
|
||||
|
||||
Reference in New Issue
Block a user