52 lines
1.3 KiB
CMake
52 lines
1.3 KiB
CMake
|
|
## Codegen adds the following build targets
|
||
|
|
# libcudacxx.atomics.codegen
|
||
|
|
# libcudacxx.atomics.codegen.install
|
||
|
|
## Test targets:
|
||
|
|
# libcudacxx.test.atomics.codegen.diff
|
||
|
|
|
||
|
|
add_executable(codegen EXCLUDE_FROM_ALL codegen.cpp)
|
||
|
|
|
||
|
|
target_compile_features(codegen PRIVATE cxx_std_20)
|
||
|
|
|
||
|
|
set(
|
||
|
|
atomic_generated_output
|
||
|
|
"${libcudacxx_BINARY_DIR}/codegen/cuda_ptx_generated.h"
|
||
|
|
)
|
||
|
|
set(
|
||
|
|
atomic_install_location
|
||
|
|
"${libcudacxx_SOURCE_DIR}/include/cuda/std/__atomic/functions"
|
||
|
|
)
|
||
|
|
|
||
|
|
add_custom_target(
|
||
|
|
libcudacxx.atomics.codegen
|
||
|
|
COMMAND codegen "${atomic_generated_output}"
|
||
|
|
BYPRODUCTS "${atomic_generated_output}"
|
||
|
|
)
|
||
|
|
|
||
|
|
add_custom_target(
|
||
|
|
libcudacxx.atomics.codegen.install
|
||
|
|
# gersemi: off
|
||
|
|
COMMAND
|
||
|
|
"${CMAKE_COMMAND}" -E copy
|
||
|
|
"${atomic_generated_output}"
|
||
|
|
"${atomic_install_location}/cuda_ptx_generated.h"
|
||
|
|
# gersemi: on
|
||
|
|
DEPENDS libcudacxx.atomics.codegen
|
||
|
|
BYPRODUCTS "${atomic_install_location}/cuda_ptx_generated.h"
|
||
|
|
)
|
||
|
|
|
||
|
|
add_test(
|
||
|
|
NAME libcudacxx.test.atomics.codegen.diff
|
||
|
|
# gersemi: off
|
||
|
|
COMMAND
|
||
|
|
"${CMAKE_COMMAND}" -E compare_files
|
||
|
|
"${atomic_install_location}/cuda_ptx_generated.h"
|
||
|
|
"${atomic_generated_output}"
|
||
|
|
# gersemi: on
|
||
|
|
)
|
||
|
|
|
||
|
|
set_tests_properties(
|
||
|
|
libcudacxx.test.atomics.codegen.diff
|
||
|
|
PROPERTIES REQUIRED_FILES "${atomic_generated_output}"
|
||
|
|
)
|