51 lines
1.2 KiB
CMake
51 lines
1.2 KiB
CMake
cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
|
|
project(duckhandy VERSION 0.1.0)
|
|
list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
|
|
|
include(CTest)
|
|
|
|
find_package(Sprout REQUIRED)
|
|
|
|
set(DUCKHANDY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
if (BUILD_TESTING)
|
|
set(BUILD_TESTING CACHE BOOL ON)
|
|
else()
|
|
set(BUILD_TESTING CACHE BOOL OFF)
|
|
endif()
|
|
|
|
add_library(${PROJECT_NAME} INTERFACE)
|
|
|
|
target_compile_features(${PROJECT_NAME}
|
|
INTERFACE cxx_nullptr
|
|
INTERFACE cxx_range_for
|
|
INTERFACE cxx_lambdas
|
|
INTERFACE cxx_decltype_auto
|
|
INTERFACE cxx_defaulted_functions
|
|
INTERFACE cxx_deleted_functions
|
|
INTERFACE cxx_auto_type
|
|
INTERFACE cxx_decltype_incomplete_return_types
|
|
INTERFACE cxx_noexcept
|
|
INTERFACE cxx_rvalue_references
|
|
INTERFACE cxx_std_20
|
|
)
|
|
|
|
target_include_directories(${PROJECT_NAME}
|
|
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
target_include_directories(${PROJECT_NAME} SYSTEM
|
|
INTERFACE ${SPROUT_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_compile_definitions(${PROJECT_NAME}
|
|
INTERFACE SPROUT_NO_CXX11_NUMERIC_LIMITS
|
|
INTERFACE SPROUT_USE_TEMPLATE_ALIASES
|
|
)
|
|
|
|
if (BUILD_TESTING)
|
|
add_subdirectory(test/unit)
|
|
endif()
|
|
|
|
install(
|
|
DIRECTORY include/duckhandy
|
|
DESTINATION include
|
|
)
|