Еще один вопрос add_custom_command:
У меня есть проект, в котором выходные данные одной пользовательской команды используются в качестве входных данных для другой, но в другом каталоге. Так, например:
Каталог lib/CMakeLists.txt
содержит:
add_custom_command(
OUTPUT libfoo.xx
COMMAND <command to build libfoo.xx>
)
add_custom_target(libfoo DEPENDS libfoo.xx)
Каталог test/CMakeLists.txt
содержит:
add_custom_command(OUTPUT test.yy
COMMAND <command to build test.yy>
DEPENDS "${PROJECT_BINARY_DIR}/lib/libfoo.xx"
)
Так что мне нужно убедиться, что libfoo собирается до test.yy. В документах говорится, что предложение DEPENDS в add_custom_command () может иметь только зависимости на уровне файлов. Давайте попробуем это и посмотрим, что произойдет:
No rule to make target 'lib/libfoo.xx', needed by 'test/test.yy'. Stop.
Если, с другой стороны, я пытаюсь создать зависимость на целевом уровне, говоря DEPENDS libfoo
, тогда ошибка изменится на:
No rule to make target 'libfoo', needed by 'test/test.yy'. Stop.
Так что, похоже, здесь не будут работать зависимости ни на уровне файлов, ни на уровне целей. Есть ли способ, чтобы выходные данные одной пользовательской команды были входными данными для другой пользовательской команды в другом каталоге?