CMake: как указать цели FLEX и BISON в разных подкаталогах - PullRequest
2 голосов
/ 29 сентября 2019

Мой проект может быть упрощен как следующая структура.

--+ project directory
  +--+ flex (subdir)
  |  +-- CMakeLists.txt
  |  +-- xxx.l
  |
  +--+ bison (subdir)
  |  +-- CMakeLists.txt
  |  +-- xxx.y
  |
  +--- CMakeLists.txt
  +--- other source files

Теперь у меня есть отдельные CMakeLists.txt файлы для подкаталогов flex и bison.

В пределах CMakeLists.txt вкорневой каталог, который я написал

add_subdirectory(flex)
add_subdirectory(bison)

в CMakeLists.txt в flex я написал

flex_target(lex ... )

в CMakeLists.txt в bison каталоге, который я написал

bison_target(syntax ... )
add_flex_bison_dependency(lex syntax)

Здесь lex является целью flex_target в другом каталоге flex.CMake показывает мне Flex target 'lex' does not exists..Мне интересно, как сказать CMake, что у меня есть ранее определенная и зависимая цель flex в другом каталоге?Thx.

...