cmake_minimum_required(VERSION 3.0 FATAL_ERROR) project(configor LANGUAGES CXX) # Use C++11 set(CMAKE_CXX_STANDARD 11) # Require (at least) it set(CMAKE_CXX_STANDARD_REQUIRED ON) # Don't use e.g. GNU extension (like -std=gnu++11) for portability set(CMAKE_CXX_EXTENSIONS OFF) # Compiler args if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8 /W3 /WX") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror") endif() # Root path set(PROJECT_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}) include_directories(${CMAKE_CURRENT_LIST_DIR}/include) add_subdirectory(examples examples) option (BUILD_TESTING "Build the testing tree." ON) # Only build tests if we are the top-level project # Allows this to be used by super projects with `add_subdirectory` if (BUILD_TESTING AND (PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)) include(CTest) enable_testing() add_subdirectory(tests tests) endif()