Я только что прочитал это:
CMake - автоматически добавлять все файлы в папке в цель?
С ответом, предлагающим глобальный файл, например:
file(GLOB "*.h" "*.cpp")
Теперь, что, если я хочу, чтобы моя цель зависела от всех файлов определенного типа в определенной папке, которая может находиться в нескольких подпапках? Я пробовал использовать
execute_process(COMMAND find src/baz/ -name "*.cpp" OUTPUT_VARIABLE BAR)
а потом
add_executable(foo ${BAR}
но это дает мне ошибку:
Не удается найти исходный файл:
src/baz/some/file/here
src/baz/some/other_file/here
src/baz/some/other_file/here2
(да, с таким интервалом.)
Что я здесь делаю не так?
file(GLOB_RECURSE ...)
? Но имейте в виду Почему файл cmake GLOB является злом? и Лучший способ указать исходные файлы в CMake - person Florian   schedule 15.02.2016find
таким образом - плохая идея, но вы можете решить проблему, с которой вы, похоже, столкнулись, добавив-type f
. - person bames53   schedule 15.02.2016find
таким образом не касался обычной проблемы подстановки. Причина, по которой я бы не советовал использовать здесьfind
, заключается в том, что он добавляет дополнительную зависимость без реальной причины.file(GLOB_RECURSE ...)
здесь кажется правильным. - person bames53   schedule 16.02.2016