# CMake 3.8 required for 17 to be a valid value for CXX_STANDARD cmake_minimum_required(VERSION 3.8) project(threeSD) # Sanity check : Check that all submodules are present # ======================================================================= function(check_submodules_present) file(READ "${PROJECT_SOURCE_DIR}/.gitmodules" gitmodules) string(REGEX MATCHALL "path *= *[^ \t\r\n]*" gitmodules ${gitmodules}) foreach(module ${gitmodules}) string(REGEX REPLACE "path *= *" "" module ${module}) if (NOT EXISTS "${PROJECT_SOURCE_DIR}/${module}/.git") message(SEND_ERROR "Git submodule ${module} not found." "Please run: git submodule update --init --recursive") endif() endforeach() endfunction() check_submodules_present() # Configure C++ standard # =========================== set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # set up output paths for executable binaries set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) # Include source code # =================== add_subdirectory(externals) add_subdirectory(src)