# Configures a target for the STF framework. function(cudax_stf_configure_target target_name) set(options LINK_MATHLIBS) set(oneValueArgs) set(multiValueArgs) cmake_parse_arguments( CSCT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) target_link_libraries( ${target_name} PRIVATE # CUDA::cudart_static CUDA::curand CUDA::cuda_driver ) if (cudax_ENABLE_CUDASTF_CODE_GENERATION) target_compile_options( ${target_name} PRIVATE $<$:--extended-lambda> ) else() target_compile_definitions( ${target_name} PRIVATE "CUDASTF_DISABLE_CODE_GENERATION" ) endif() target_compile_options( ${target_name} PRIVATE $<$:--expt-relaxed-constexpr> ) set_target_properties( ${target_name} PROPERTIES # CUDA_RUNTIME_LIBRARY Static CUDA_SEPARABLE_COMPILATION ON ) if (CSCT_LINK_MATHLIBS) target_link_libraries( ${target_name} PRIVATE # CUDA::cublas CUDA::cusolver ) endif() if (cudax_ENABLE_CUDASTF_BOUNDSCHECK) target_compile_definitions(${target_name} PRIVATE "CUDASTF_BOUNDSCHECK") endif() endfunction()