cmake_minimum_required(VERSION 3.11) project(ScopeGuard VERSION 0.2.4) message(STATUS "~~~ ${PROJECT_NAME} v${PROJECT_VERSION} ~~~") set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") option(UNITTEST "Build Unit Tests" ON) option(COVERAGE "Enable Coverage" OFF) message(STATUS "Coverage : ${COVERAGE}") option(ENABLE_COMPAT_HEADER "Enable compatible header 'scope'" OFF) message(STATUS "Compatible Header : ${ENABLE_COMPAT_HEADER}") if( CMAKE_BUILD_TYPE ) message(STATUS "Build Type : ${CMAKE_BUILD_TYPE}") else() message(STATUS "Build Type : None") endif() if( COVERAGE ) include(Coverage) endif() add_compile_options(-Wall -Wextra -pedantic -Werror -Wshadow -Wold-style-cast ) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) add_library(ScopeGuard INTERFACE) target_include_directories(ScopeGuard INTERFACE $ $ ) if( ENABLE_COMPAT_HEADER ) configure_file(cmake/scope.in generated/scope COPYONLY) target_include_directories(ScopeGuard INTERFACE $ $ ) endif() if( UNITTEST ) enable_testing() add_subdirectory("test") endif() include(Install)