Add build step for NVCC and fix a warning (#3227)
* 👷 add step for NVCC build #2676 * 🚨 fix warning (code taken from #2736) * 👷 use version 2.2.0 of the CI image
This commit is contained in:
parent
e6bf789f7d
commit
1aca6cb949
24
.github/workflows/ubuntu.yml
vendored
24
.github/workflows/ubuntu.yml
vendored
@ -11,7 +11,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
ci_test_clang:
|
ci_test_clang:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.1.0
|
container: ghcr.io/nlohmann/json-ci:v2.2.0
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@ -21,7 +21,7 @@ jobs:
|
|||||||
|
|
||||||
ci_test_gcc:
|
ci_test_gcc:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.1.0
|
container: ghcr.io/nlohmann/json-ci:v2.2.0
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@ -31,7 +31,7 @@ jobs:
|
|||||||
|
|
||||||
ci_static_analysis:
|
ci_static_analysis:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.1.0
|
container: ghcr.io/nlohmann/json-ci:v2.2.0
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
target: [ci_clang_tidy, ci_cppcheck, ci_test_valgrind, ci_test_clang_sanitizer, ci_test_amalgamation, ci_clang_analyze, ci_cpplint, ci_cmake_flags, ci_single_binaries, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata, ci_infer]
|
target: [ci_clang_tidy, ci_cppcheck, ci_test_valgrind, ci_test_clang_sanitizer, ci_test_amalgamation, ci_clang_analyze, ci_cpplint, ci_cmake_flags, ci_single_binaries, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata, ci_infer]
|
||||||
@ -44,7 +44,7 @@ jobs:
|
|||||||
|
|
||||||
ci_cmake_options:
|
ci_cmake_options:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.1.0
|
container: ghcr.io/nlohmann/json-ci:v2.2.0
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
target: [ci_test_diagnostics, ci_test_noexceptions, ci_test_noimplicitconversions]
|
target: [ci_test_diagnostics, ci_test_noexceptions, ci_test_noimplicitconversions]
|
||||||
@ -57,7 +57,7 @@ jobs:
|
|||||||
|
|
||||||
ci_test_coverage:
|
ci_test_coverage:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.1.0
|
container: ghcr.io/nlohmann/json-ci:v2.2.0
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: cmake
|
- name: cmake
|
||||||
@ -77,7 +77,7 @@ jobs:
|
|||||||
|
|
||||||
ci_test_compilers:
|
ci_test_compilers:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.1.0
|
container: ghcr.io/nlohmann/json-ci:v2.2.0
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
compiler: [g++-4.8, g++-4.9, g++-5, g++-6, g++-7, g++-8, g++-9, g++-10, clang++-3.5, clang++-3.6, clang++-3.7, clang++-3.8, clang++-3.9, clang++-4.0, clang++-5.0, clang++-6.0, clang++-7, clang++-8, clang++-9, clang++-10, clang++-11, clang++-12, clang++-13]
|
compiler: [g++-4.8, g++-4.9, g++-5, g++-6, g++-7, g++-8, g++-9, g++-10, clang++-3.5, clang++-3.6, clang++-3.7, clang++-3.8, clang++-3.9, clang++-4.0, clang++-5.0, clang++-6.0, clang++-7, clang++-8, clang++-9, clang++-10, clang++-11, clang++-12, clang++-13]
|
||||||
@ -90,7 +90,7 @@ jobs:
|
|||||||
|
|
||||||
ci_test_standards:
|
ci_test_standards:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ghcr.io/nlohmann/json-ci:v2.1.0
|
container: ghcr.io/nlohmann/json-ci:v2.2.0
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
standard: [11, 14, 17, 20]
|
standard: [11, 14, 17, 20]
|
||||||
@ -101,3 +101,13 @@ jobs:
|
|||||||
run: cmake -S . -B build -DJSON_CI=On
|
run: cmake -S . -B build -DJSON_CI=On
|
||||||
- name: build
|
- name: build
|
||||||
run: cmake --build build --target ci_test_${{ matrix.compiler }}_cxx${{ matrix.standard }}
|
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:v2.2.0
|
||||||
|
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
|
||||||
|
@ -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)
|
unset(COMPILER_TOOL CACHE)
|
||||||
endforeach()
|
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.
|
# Clean up all generated files.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -664,6 +664,19 @@ class serializer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// templates to avoid warnings about useless casts
|
||||||
|
template <typename NumberType, enable_if_t<std::is_signed<NumberType>::value, int> = 0>
|
||||||
|
bool is_negative_number(NumberType x)
|
||||||
|
{
|
||||||
|
return x < 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
template < typename NumberType, enable_if_t <std::is_unsigned<NumberType>::value, int > = 0 >
|
||||||
|
bool is_negative_number(NumberType /*unused*/)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief dump an integer
|
@brief dump an integer
|
||||||
|
|
||||||
@ -707,12 +720,11 @@ class serializer
|
|||||||
// use a pointer to fill the buffer
|
// use a pointer to fill the buffer
|
||||||
auto buffer_ptr = number_buffer.begin(); // NOLINT(llvm-qualified-auto,readability-qualified-auto,cppcoreguidelines-pro-type-vararg,hicpp-vararg)
|
auto buffer_ptr = number_buffer.begin(); // NOLINT(llvm-qualified-auto,readability-qualified-auto,cppcoreguidelines-pro-type-vararg,hicpp-vararg)
|
||||||
|
|
||||||
const bool is_negative = std::is_signed<NumberType>::value && !(x >= 0); // see issue #755
|
|
||||||
number_unsigned_t abs_value;
|
number_unsigned_t abs_value;
|
||||||
|
|
||||||
unsigned int n_chars{};
|
unsigned int n_chars{};
|
||||||
|
|
||||||
if (is_negative)
|
if (is_negative_number(x))
|
||||||
{
|
{
|
||||||
*buffer_ptr = '-';
|
*buffer_ptr = '-';
|
||||||
abs_value = remove_sign(static_cast<number_integer_t>(x));
|
abs_value = remove_sign(static_cast<number_integer_t>(x));
|
||||||
|
@ -16707,6 +16707,19 @@ class serializer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// templates to avoid warnings about useless casts
|
||||||
|
template <typename NumberType, enable_if_t<std::is_signed<NumberType>::value, int> = 0>
|
||||||
|
bool is_negative_number(NumberType x)
|
||||||
|
{
|
||||||
|
return x < 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
template < typename NumberType, enable_if_t <std::is_unsigned<NumberType>::value, int > = 0 >
|
||||||
|
bool is_negative_number(NumberType /*unused*/)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief dump an integer
|
@brief dump an integer
|
||||||
|
|
||||||
@ -16750,12 +16763,11 @@ class serializer
|
|||||||
// use a pointer to fill the buffer
|
// use a pointer to fill the buffer
|
||||||
auto buffer_ptr = number_buffer.begin(); // NOLINT(llvm-qualified-auto,readability-qualified-auto,cppcoreguidelines-pro-type-vararg,hicpp-vararg)
|
auto buffer_ptr = number_buffer.begin(); // NOLINT(llvm-qualified-auto,readability-qualified-auto,cppcoreguidelines-pro-type-vararg,hicpp-vararg)
|
||||||
|
|
||||||
const bool is_negative = std::is_signed<NumberType>::value && !(x >= 0); // see issue #755
|
|
||||||
number_unsigned_t abs_value;
|
number_unsigned_t abs_value;
|
||||||
|
|
||||||
unsigned int n_chars{};
|
unsigned int n_chars{};
|
||||||
|
|
||||||
if (is_negative)
|
if (is_negative_number(x))
|
||||||
{
|
{
|
||||||
*buffer_ptr = '-';
|
*buffer_ptr = '-';
|
||||||
abs_value = remove_sign(static_cast<number_integer_t>(x));
|
abs_value = remove_sign(static_cast<number_integer_t>(x));
|
||||||
|
10
test/cuda_example/CMakeLists.txt
Normal file
10
test/cuda_example/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.18)
|
||||||
|
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)
|
||||||
|
set_target_properties(json_cuda PROPERTIES
|
||||||
|
CUDA_EXTENSIONS OFF
|
||||||
|
CUDA_STANDARD_REQUIRED ON
|
||||||
|
)
|
7
test/cuda_example/json_cuda.cu
Normal file
7
test/cuda_example/json_cuda.cu
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
nlohmann::ordered_json json = {"Test"};
|
||||||
|
json.dump();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user