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) if (is_random) set(middle_name "random") else () set(middle_name "perfect") endif () set(basic_name "lockfree_${middle_name}_${build_size}_${step_size}") message(STATUS "different target: ${basic_name}") 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 -DSTEP_SIZE=${step_size}) if ("${is_random}") target_compile_definitions("${basic_name}" PRIVATE -DRANDOM_TARGET -DBUILD_SIZE=${build_size}) else () target_compile_definitions("${basic_name}" PRIVATE -DBUILD_SIZE=${build_size} -DSTEP_SIZE=${step_size}) endif () target_link_libraries("${basic_name}" m stdc++) set_target_properties("${basic_name}" PROPERTIES CUDA_SEPARABLE_COMPILATION ON) endfunction() #build_different_target(false 1048576 2) build_different_target(false 1048576 4) build_different_target(false 1048576 8) build_different_target(true 1048576 8)