Я использую cmake 2.8.1 на Mac OSX 10.6 с CUDA 3.0.
Итак, я добавил цель CUDA, для которой необходимо BLOCK_SIZE установить некоторое число для компиляции.
cuda_add_executable(SimpleTestsCUDA
SimpleTests.cu
BlockMatrix.cpp
Matrix.cpp
)
set_target_properties(SimpleTestsCUDA PROPERTIES COMPILE_FLAGS -DBLOCK_SIZE=3)
При запуске make VERBOSE=1
я заметил, что nvcc
вызывается без -DBLOCK_SIZE=3
, что приводит к ошибке, потому что BLOCK_SIZE
используется в коде, но не определено нигде. Теперь я использовал то же определение для цели процессора (используя add_executable(...)
), и там это сработало.
Итак, теперь вопросы: как мне выяснить, что cmake
делает со строкой set_target_properties
, если она указывает на цель CUDA? Гуглить вокруг пока не помогло, и обходной путь был бы крут ..