Skip to content

Commit db244c8

Browse files
authored
Merge pull request andreasbuhr#22 from andreasbuhr/andreasbuhr-patch-1
add C++17 test configurations
2 parents e29ba1d + c924cbc commit db244c8

File tree

2 files changed

+52
-11
lines changed

2 files changed

+52
-11
lines changed

.github/workflows/cmake.yml

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,35 +20,76 @@ jobs:
2020
matrix:
2121
config:
2222
- {
23-
name: "Linux g++ 10.2",
23+
name: "Linux g++ 10.2 C++17",
2424
os: ubuntu-20.04,
2525
cxx: "g++-10",
26+
cxxver: 17,
2627
}
2728
- {
28-
name: "Linux clang-10",
29+
name: "Linux g++ 10.2 C++20",
30+
os: ubuntu-20.04,
31+
cxx: "g++-10",
32+
cxxver: 20,
33+
}
34+
- {
35+
name: "Linux clang-10 C++17",
2936
os: ubuntu-20.04,
3037
cxx: "clang++-10",
3138
cxx_flags: -stdlib=libc++,
3239
exe_linker_flags: -lc++,
40+
cxxver: 17,
41+
}
42+
- {
43+
name: "Linux clang-10 C++20",
44+
os: ubuntu-20.04,
45+
cxx: "clang++-10",
46+
cxx_flags: -stdlib=libc++,
47+
exe_linker_flags: -lc++,
48+
cxxver: 20,
49+
}
50+
- {
51+
name: "Linux clang-11 C++17",
52+
os: ubuntu-20.04,
53+
cxx: "clang++-11",
54+
cxx_flags: -stdlib=libc++,
55+
exe_linker_flags: -lc++,
56+
cxxver: 17,
3357
}
3458
- {
35-
name: "Linux clang-11",
59+
name: "Linux clang-11 C++20",
3660
os: ubuntu-20.04,
3761
cxx: "clang++-11",
3862
cxx_flags: -stdlib=libc++,
3963
exe_linker_flags: -lc++,
64+
cxxver: 20,
4065
}
4166
- {
42-
name: "Windows MSVC 2017 (x64)",
67+
name: "Windows MSVC 2017 (x64) C++17",
4368
os: windows-2016,
4469
cxx: "cl",
4570
environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
71+
cxxver: 17,
72+
}
73+
- {
74+
name: "Windows MSVC 2017 (x64) C++20",
75+
os: windows-2016,
76+
cxx: "cl",
77+
environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
78+
cxxver: 20,
79+
}
80+
- {
81+
name: "Windows MSVC 2019 (x64) C++17",
82+
os: windows-latest,
83+
cxx: "cl",
84+
environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
85+
cxxver: 17,
4686
}
4787
- {
48-
name: "Windows MSVC 2019 (x64)",
88+
name: "Windows MSVC 2019 (x64) C++20",
4989
os: windows-latest,
5090
cxx: "cl",
5191
environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
92+
cxxver: 20,
5293
}
5394

5495
steps:
@@ -106,7 +147,7 @@ jobs:
106147
107148
cmake $GITHUB_WORKSPACE \
108149
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
109-
-DCMAKE_CXX_STANDARD=20 \
150+
-DCMAKE_CXX_STANDARD=${{ matrix.config.cxxver }} \
110151
-DBUILD_TESTING=ON \
111152
-DCMAKE_CXX_FLAGS=${{ matrix.config.cxx_flags }} \
112153
-DCMAKE_EXE_LINKER_FLAGS=${{ matrix.config.exe_linker_flags }} \

cmake/FindCoroutines.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ if(find_final)
152152
check_include_file_cxx("coroutine" _CXX_COROUTINES_HAVE_HEADER)
153153
if(_CXX_COROUTINES_HAVE_HEADER)
154154
check_cxx_source_compiles("#include <coroutine> \n typedef std::suspend_never blub; \nint main() {} " _CXX_COROUTINES_FINAL_HEADER_COMPILES)
155-
set(_CXX_COROUTINES_HAVE_HEADER ${}_CXX_COROUTINES_FINAL_HEADER_COMPILES})
155+
set(_CXX_COROUTINES_HAVE_HEADER "${_CXX_COROUTINES_FINAL_HEADER_COMPILES}")
156156
endif()
157157

158158
if(NOT _CXX_COROUTINES_HAVE_HEADER)
@@ -161,9 +161,9 @@ if(find_final)
161161
check_include_file_cxx("coroutine" _CXX_COROUTINES_HAVE_HEADER_WITH_FLAG)
162162
if(_CXX_COROUTINES_HAVE_HEADER_WITH_FLAG)
163163
check_cxx_source_compiles("#include <coroutine> \n typedef std::suspend_never blub; \nint main() {} " _CXX_COROUTINES_FINAL_HEADER_COMPILES_WITH_FLAG)
164-
set(_CXX_COROUTINES_HAVE_HEADER_WITH_FLAG ${_CXX_COROUTINES_FINAL_HEADER_COMPILES_WITH_FLAG})
164+
set(_CXX_COROUTINES_HAVE_HEADER_WITH_FLAG "${_CXX_COROUTINES_FINAL_HEADER_COMPILES_WITH_FLAG}")
165165
endif()
166-
set(_CXX_COROUTINES_HAVE_HEADER ${_CXX_COROUTINES_HAVE_HEADER_WITH_FLAG})
166+
set(_CXX_COROUTINES_HAVE_HEADER "${_CXX_COROUTINES_HAVE_HEADER_WITH_FLAG}")
167167
cmake_pop_check_state()
168168
endif()
169169
mark_as_advanced(_CXX_COROUTINES_HAVE_HEADER)
@@ -182,7 +182,7 @@ if(find_experimental)
182182
cmake_push_check_state()
183183
set(CMAKE_REQUIRED_FLAGS "${_CXX_COROUTINES_EXTRA_FLAGS}")
184184
check_include_file_cxx("experimental/coroutine" _CXX_COROUTINES_HAVE_EXPERIMENTAL_HEADER_WITH_FLAG)
185-
set(_CXX_COROUTINES_HAVE_EXPERIMENTAL_HEADER ${_CXX_COROUTINES_HAVE_EXPERIMENTAL_HEADER_WITH_FLAG})
185+
set(_CXX_COROUTINES_HAVE_EXPERIMENTAL_HEADER "${_CXX_COROUTINES_HAVE_EXPERIMENTAL_HEADER_WITH_FLAG}")
186186
cmake_pop_check_state()
187187
endif()
188188
mark_as_advanced(_CXX_COROUTINES_HAVE_EXPERIMENTAL_HEADER)
@@ -256,7 +256,7 @@ if(CXX_COROUTINES_HAVE_COROUTINES)
256256
# Add the -fcoroutines-ts (or /await) flag
257257
set(CMAKE_REQUIRED_FLAGS "${_CXX_COROUTINES_EXTRA_FLAGS}")
258258
check_cxx_source_compiles("${code}" CXX_COROUTINES_AWAIT_NEEDED)
259-
set(can_link ${CXX_COROUTINES_AWAIT_NEEDED})
259+
set(can_link "${CXX_COROUTINES_AWAIT_NEEDED}")
260260
endif()
261261

262262
if(can_link)

0 commit comments

Comments
 (0)