CMake, добавить файлы с неизвестными именами к цели
У меня в проекте генерируются исходники, на каждую структуру в заданном файле -- файл *__*__impl.cc
с именем этой структуры, т.е. я могу достать эти файлы только так:
file(GLOB_RECURSE IMPL_CC_FILES ${MY_GENERATED_DIR}/"*__*__impl.cc")
Потом мне надо добавить их к цели, но эти файлы не собираются в CMake:
add_library(${MY_TARGET} SHARED ${SOURCES} ${IMPL_CC_FILES})
Я подозреваю, что функция file
выполняется не в то время, как я его задал, а до генерации исходников.
Что мне сделать, чтобы эти файлы добавились к цели?
UPD1:
Заработало на тестовом примере, когда я поменял выражение:
file(GLOB IMPL_CC_FILES ${MY_GENERATED_DIR}/*__*__impl.cc)
Т.е. нужно было просто убрать кавычки.
НО! Не работает на основном проекте.
REM: Поменял GLOB_RECURSE
на просто GLOB
. Врядли это что то меняет.
UPD2
Я понял, почему не находит файлы. Это происходит из-за того, что скрипт выполняется медленно, а сборка с -j3 происходит быстрее, чем он успеет выполнится, команда file
никак не связана с add_custom_command
через которую я выполняю скрипт и параллельная сборка просто не учитывает того, что мне нужно найти файлы после выполнения скрипта.