2023-06-21 08:24:50 +00:00
|
|
|
cmake_minimum_required(VERSION 3.26)
|
|
|
|
project(LearningProject CXX)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
2023-06-23 04:45:18 +00:00
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
|
|
|
|
|
|
option(BUILD_WITH_MODULES "Build with C++ Modules" ON)
|
|
|
|
|
|
|
|
if(BUILD_WITH_MODULES)
|
|
|
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
|
|
string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE
|
|
|
|
"<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> <SOURCE>"
|
|
|
|
" -MT <DYNDEP_FILE> -MD -MF <DEP_FILE>"
|
|
|
|
" ${flags_to_scan_deps} -fdep-file=<DYNDEP_FILE> -fdep-output=<OBJECT>"
|
|
|
|
)
|
2023-06-21 08:24:50 +00:00
|
|
|
|
2023-06-23 04:45:18 +00:00
|
|
|
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT "gcc")
|
|
|
|
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG
|
|
|
|
"${compiler_flags_for_module_map} -fmodule-mapper=<MODULE_MAP_FILE>")
|
|
|
|
endif()
|
2023-06-21 08:24:50 +00:00
|
|
|
|
2023-06-23 04:45:18 +00:00
|
|
|
set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1)
|
|
|
|
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "2182bf5c-ef0d-489a-91da-49dbc3090d2a")
|
|
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
2023-06-21 08:24:50 +00:00
|
|
|
endif()
|
|
|
|
|
2023-06-23 04:45:18 +00:00
|
|
|
|
2023-06-21 08:24:50 +00:00
|
|
|
|
|
|
|
add_subdirectory(src)
|
|
|
|
|