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 "$" PUBLIC "$" ) 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()