diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 756e82f55..a7487cc86 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -101,3 +101,13 @@ jobs: run: cmake -S . -B build -DJSON_CI=On - name: build run: cmake --build build --target ci_test_${{ matrix.compiler }}_cxx${{ matrix.standard }} + + ci_cuda_example: + runs-on: ubuntu-latest + container: ghcr.io/nlohmann/json-ci:main + steps: + - uses: actions/checkout@v2 + - name: cmake + run: cmake -S . -B build -DJSON_CI=On + - name: build + run: cmake --build build --target ci_cuda_example diff --git a/cmake/ci.cmake b/cmake/ci.cmake index acb797c5b..d0b989c80 100644 --- a/cmake/ci.cmake +++ b/cmake/ci.cmake @@ -835,6 +835,18 @@ foreach(COMPILER g++-4.8 g++-4.9 g++-5 g++-6 g++-7 g++-8 g++-9 g++-10 clang++-3. unset(COMPILER_TOOL CACHE) endforeach() +############################################################################### +# CUDA example +############################################################################### + +add_custom_target(ci_cuda_example + COMMAND ${CMAKE_COMMAND} + -DCMAKE_BUILD_TYPE=Debug -GNinja + -DCMAKE_CUDA_HOST_COMPILER=g++-8 + -S${PROJECT_SOURCE_DIR}/test/cuda_example -B${PROJECT_BINARY_DIR}/build_cuda_example + COMMAND ${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR}/build_cuda_example +) + ############################################################################### # Clean up all generated files. ############################################################################### diff --git a/test/cuda_example/CMakeLists.txt b/test/cuda_example/CMakeLists.txt index 44cc84ae6..26b57f227 100644 --- a/test/cuda_example/CMakeLists.txt +++ b/test/cuda_example/CMakeLists.txt @@ -1,12 +1,10 @@ -cmake_minimum_required(VERSION 3.8) -project(json_cuda LANGUAGES CXX CUDA) +cmake_minimum_required(VERSION 3.18) +project(json_cuda LANGUAGES CUDA) -add_executable(json_cuda json_cuda.cpp) -set_source_files_properties(json_cuda.cpp PROPERTIES LANGUAGE CUDA) +add_executable(json_cuda json_cuda.cu) target_include_directories(json_cuda PRIVATE ../../include) target_compile_features(json_cuda PUBLIC cuda_std_11) set_target_properties(json_cuda PROPERTIES CUDA_EXTENSIONS OFF CUDA_STANDARD_REQUIRED ON - CUDA_SEPARABLE_COMPILATION ON # Just needed if we need separable compilation; this adds -dc ) diff --git a/test/cuda_example/json_cuda.cpp b/test/cuda_example/json_cuda.cpp deleted file mode 100644 index 7288c31b9..000000000 --- a/test/cuda_example/json_cuda.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include - -int main() -{} diff --git a/test/cuda_example/json_cuda.cu b/test/cuda_example/json_cuda.cu new file mode 100644 index 000000000..1d4057680 --- /dev/null +++ b/test/cuda_example/json_cuda.cu @@ -0,0 +1,7 @@ +#include + +int main() +{ + nlohmann::ordered_json json = {"Test"}; + json.dump(); +}