Spaces:
Runtime error
Runtime error
# Create meta targets that build all examples for a single configuration: | |
foreach(cub_target IN LISTS CUB_TARGETS) | |
cub_get_target_property(config_prefix ${cub_target} PREFIX) | |
set(config_meta_target ${config_prefix}.examples) | |
add_custom_target(${config_meta_target}) | |
add_dependencies(${config_prefix}.all ${config_meta_target}) | |
endforeach() | |
## cub_add_example | |
# | |
# Add an example executable and register it with ctest. | |
# | |
# target_name_var: Variable name to overwrite with the name of the example | |
# target. Useful for post-processing target information per-backend. | |
# example_name: The name of the example minus "<config_prefix>.example." For | |
# instance, examples/vector.cu will be "vector", and examples/cuda/copy.cu | |
# would be "cuda.copy". | |
# example_src: The source file that implements the example. | |
# cub_target: The reference cub target with configuration information. | |
# | |
function(cub_add_example target_name_var example_name example_src cub_target) | |
cub_get_target_property(config_prefix ${cub_target} PREFIX) | |
# The actual name of the test's target: | |
set(example_target ${config_prefix}.example.${example_name}) | |
set(${target_name_var} ${example_target} PARENT_SCOPE) | |
# Related target names: | |
set(config_meta_target ${config_prefix}.examples) | |
set(example_meta_target cub.all.example.${example_name}) | |
add_executable(${example_target} "${example_src}") | |
target_link_libraries(${example_target} ${cub_target}) | |
cub_clone_target_properties(${example_target} ${cub_target}) | |
target_include_directories(${example_target} PRIVATE "${CUB_SOURCE_DIR}/examples") | |
# Add to the active configuration's meta target | |
add_dependencies(${config_meta_target} ${example_target}) | |
# Meta target that builds examples with this name for all configurations: | |
if (NOT TARGET ${example_meta_target}) | |
add_custom_target(${example_meta_target}) | |
endif() | |
add_dependencies(${example_meta_target} ${example_target}) | |
if (CUB_ENABLE_EXAMPLES_WITH_RDC) | |
set_target_properties(${example_target} PROPERTIES | |
CUDA_SEPARABLE_COMPILATION ON | |
) | |
endif() | |
add_test(NAME ${example_target} | |
COMMAND "$<TARGET_FILE:${example_target}>" | |
) | |
endfunction() | |
add_subdirectory(block) | |
add_subdirectory(device) | |