在我的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}
)
但是,在执行配置步骤之前,我需要运行位于glslang
的源目录的根中的Python。
我为外部项目创建了一个自定义步骤:
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
...
即使在生成器表达式中,我也找不到任何可以帮助我的东西。
谢谢:)
答案 0 :(得分:0)
Tsyvarev的解决方案:
要引用ExternalProject_Add
中的源目录,请使用<SOURCE_DIR>
表达式:COMMAND ${PYTHON_EXECUTABLE} <SOURCE_DIR>/update_glslang_sources.py
。