duckhandy/CMakeLists.txt

56 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
)
target_compile_options(${PROJECT_NAME}
INTERFACE -mprfchw
)
if (BUILD_TESTING)
add_subdirectory(test/unit)
endif()
install(
DIRECTORY include/duckhandy
DESTINATION include
)