|
1 | 1 | cmake_minimum_required(VERSION 3.26) |
| 2 | +# enable scan imports in 3.28 while supporting 3.26 |
| 3 | +cmake_policy(SET CMP0155 NEW) |
2 | 4 |
|
3 | 5 | # project / version |
4 | 6 | set(REDUMPER_PROJECT_NAME "redumper" CACHE STRING "Project name") |
@@ -49,22 +51,24 @@ endif() |
49 | 51 | # C/C++ |
50 | 52 | set(CMAKE_CXX_STANDARD 20) |
51 | 53 | set(CMAKE_CXX_STANDARD_REQUIRED ON) |
52 | | -set(CMAKE_CXX_EXTENSIONS OFF) |
53 | | -if(CMAKE_VERSION VERSION_LESS "3.27.0") |
54 | | - set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "2182bf5c-ef0d-489a-91da-49dbc3090d2a") |
55 | | -else() |
56 | | - set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "aa1f7df0-828a-4fcd-9afc-2dc80491aca7") |
| 54 | +if(CMAKE_VERSION VERSION_LESS "3.28.0") |
| 55 | + set(CMAKE_CXX_EXTENSIONS OFF) |
| 56 | + if(CMAKE_VERSION VERSION_LESS "3.27.0") |
| 57 | + set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "2182bf5c-ef0d-489a-91da-49dbc3090d2a") |
| 58 | + else() |
| 59 | + set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "aa1f7df0-828a-4fcd-9afc-2dc80491aca7") |
| 60 | + endif() |
| 61 | + set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) |
57 | 62 | endif() |
58 | | -set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) |
59 | 63 | add_definitions(-DREDUMPER_VERSION_MAJOR=${PROJECT_VERSION_MAJOR} |
60 | 64 | -DREDUMPER_VERSION_MINOR=${PROJECT_VERSION_MINOR} |
61 | 65 | -DREDUMPER_VERSION_PATCH=${PROJECT_VERSION_PATCH} |
62 | 66 | -DREDUMPER_VERSION_BUILD=${REDUMPER_VERSION_BUILD}) |
63 | 67 |
|
64 | 68 | if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
65 | 69 | # -fexperimental-library is required for clang-16 as std::format is defined there |
66 | | - add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-stdlib=libc++> -fexperimental-library) |
67 | | - add_link_options(-stdlib=libc++ ${REDUMPER_CLANG_LINK_OPTIONS} -fexperimental-library) |
| 70 | + add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-stdlib=libc++>) |
| 71 | + add_link_options(-stdlib=libc++ ${REDUMPER_CLANG_LINK_OPTIONS}) |
68 | 72 |
|
69 | 73 | # silence implicit modules use warning |
70 | 74 | # TL;DR, this will be taken cared of by listing module dependencies explicitly (cmake) |
@@ -116,6 +120,7 @@ target_sources(redumper |
116 | 120 | "dvd/css/css_tables.cc" |
117 | 121 | "main.cc" |
118 | 122 | "driveoffsets.txt" |
| 123 | + "systems/system.hh" |
119 | 124 | "utils/throw_line.hh" |
120 | 125 | "redumper.manifest" |
121 | 126 | ${DRIVEOFFSETS_FN} |
@@ -161,7 +166,6 @@ target_sources(redumper |
161 | 166 | "systems/psx.ixx" |
162 | 167 | "systems/ps2.ixx" |
163 | 168 | "systems/sat.ixx" |
164 | | - "systems/system.ixx" |
165 | 169 | "systems/systems.ixx" |
166 | 170 | "utils/animation.ixx" |
167 | 171 | "utils/endian.ixx" |
|
0 commit comments