Внешняя цель CMake: ссылка на источник в пользовательской команде - PullRequest
1 голос
/ 14 апреля 2019

В моем проекте CMake я использую внешний проект под названием ep_glslang, который довольно прост:

ExternalProject_Add(ep_glslang
  DEPENDS ep_vulkan_headers
  URL https://github.com/KhronosGroup/glslang/archive/7.11.3113.tar.gz
  CMAKE_ARGS  -DCMAKE_INSTALL_PREFIX=${_PREFIX}
              -DVULKAN_HEADERS_INSTALL_DIR=${_PREFIX}
)

Тем не менее, перед этапом настройки мне нужно запустить Python, расположенный в корневом каталоге из исходного каталога из glslang.

Я создал собственный шаг для своего внешнего проекта:

ExternalProject_Add_Step(ep_glslang update_glslang_sources
  DEPENDEES update
  DEPENDERS configure
  COMMAND ${PYTHON_EXECUTABLE} update_glslang_sources.py
  CMAKE_ARGS  -DCMAKE_INSTALL_PREFIX=${_PREFIX}
)

Кажется, это идиоматический способ сделать это.Тем не менее, шаг не выполняется для , он не находит скрипт Python .

Как бы я получил исходный каталог внешнего проекта для создания таких вещей:

...
COMMAND ${PYTHON_EXECUTABLE} ${EP_SRC_DIR}/update_glslang_sources.py
...

Я не нахожу ничего, даже в выражениях генератора, которое бы мне помогло.

Спасибо:)

1 Ответ

0 голосов
/ 16 апреля 2019

Решение от Цыварева:

Для ссылки на исходный каталог в ExternalProject_Add используйте <SOURCE_DIR> выражение: COMMAND ${PYTHON_EXECUTABLE} <SOURCE_DIR>/update_glslang_sources.py.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...