cmake_minimum_required(VERSION 3.22) project(lockfree CUDA) set(CMAKE_CUDA_STANDARD 14) #set(GXX_INCLUDE /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include) add_executable(lockfree main.cu) #add_definitions(-DNUM_ITEMS=1048576 -DKEYS=1048576 -DFACTOR=1) if (false) target_compile_options(lockfree PRIVATE $<$: -v >) endif () # from: Peter target_link_libraries(lockfree m stdc++) set_target_properties(lockfree PROPERTIES CUDA_SEPARABLE_COMPILATION ON) function(build_different_target is_random build_size step_size) string(CONCAT basic_name "lockfree_" "${build_size}" "_" "${step_size}") message(STATUS "different target: ${basic_name} ${is_random}") add_executable("${basic_name}" "") target_sources("${basic_name}" PRIVATE main.cu ) #add_definitions("${basic_name}" -DBUILD_SIZE=${build_size} -DSTEP_SIZE=${step_size}) target_compile_definitions("${basic_name}" PRIVATE -DBUILD_SIZE=${build_size} -DSTEP_SIZE=${step_size}) if ("${is_random}") target_compile_definitions("${basic_name} PRIVATE -DRANDOM_TARGET") endif () #target_link_libraries(basic_name m stdc++) set_target_properties("${basic_name}" PROPERTIES CUDA_SEPARABLE_COMPILATION ON) endfunction() build_different_target(false 1024 2) build_different_target(false 1024 4) build_different_target(false 1024 8)