diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 7e27ab332..610291654 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -234,11 +234,20 @@ jobs: ci_cuda_example: runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.4.0 + strategy: + fail-fast: false + matrix: + # matrix to empirically pin down which nvcc/CUDA versions reproduce #3907 + # (a c++20 parse error in iteration_proxy.hpp's enable_borrowed_range) before + # attempting a source-level fix; 11.8 predates CUDA's C++20 support entirely. + cuda: ['11.8.0', '12.0.1', '12.1.1', '12.2.2', '12.3.2', '12.4.1', '12.5.1', '12.6.3'] + container: nvidia/cuda:${{ matrix.cuda }}-devel-ubuntu22.04 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false + - name: Get latest CMake and ninja + uses: lukka/get-cmake@f5b8fbb4d77cec1acc5a5f9f0df4beffaf5d98d9 # v4.3.4 - name: Run CMake run: cmake -S . -B build -DJSON_CI=On - name: Build diff --git a/cmake/ci.cmake b/cmake/ci.cmake index 834687f57..796b2020c 100644 --- a/cmake/ci.cmake +++ b/cmake/ci.cmake @@ -669,7 +669,6 @@ add_custom_target(ci_test_compiler_default add_custom_target(ci_cuda_example COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug -GNinja - -DCMAKE_CUDA_HOST_COMPILER=g++-8 -S${PROJECT_SOURCE_DIR}/tests/cuda_example -B${PROJECT_BINARY_DIR}/build_cuda_example COMMAND ${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR}/build_cuda_example ) diff --git a/tests/cuda_example/CMakeLists.txt b/tests/cuda_example/CMakeLists.txt index 26b57f227..9ea022f44 100644 --- a/tests/cuda_example/CMakeLists.txt +++ b/tests/cuda_example/CMakeLists.txt @@ -3,7 +3,7 @@ project(json_cuda LANGUAGES CUDA) add_executable(json_cuda json_cuda.cu) target_include_directories(json_cuda PRIVATE ../../include) -target_compile_features(json_cuda PUBLIC cuda_std_11) +target_compile_features(json_cuda PUBLIC cuda_std_20) set_target_properties(json_cuda PROPERTIES CUDA_EXTENSIONS OFF CUDA_STANDARD_REQUIRED ON