cmake_minimum_required(VERSION 3.10.0) project("SurfaceGrid" VERSION 0.1.0) set(3RD_ROOT_PATH "${CMAKE_SOURCE_DIR}/3rd" CACHE STRING "Root path for 3rd libs which needed by SurfaceGrid") # release type if(CMAKE_BUILD_TYPE=="") message("DEBUG build for default") set(CMAKE_BUILD_TYPE Debug) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") endif() # set c++ standard to C++17 and close extensions if(NOT DEFINED CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 17) message(STATUS "Compiling with C++ standard: ${CMAKE_CXX_STANDARD}") endif() set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") if (UNIX) # third party set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) elseif(WIN32) add_compile_options("/wd4251") # third party endif() # enable testing option(TESTING "Enable Testing" ON) # third party set(THIRD_INC_PATH "${3RD_ROOT_PATH}/catch" INTERNAL) add_subdirectory(lib) add_subdirectory(examples) add_subdirectory(tests)