CMake - 从CMakeLists.txt更改当前目录(例如:project/build)?

vir*_*2al 8 linux bash cmake

我正在用CMake构建项目.配置和构建我在目录项目/构建中.如何更改CMake中的目录并从另一个目录执行bash脚本.

execute_process(COMMAND cd ../) - 不起作用.当我执行此CMake不会更改其目录,我再次在项目/构建中.

Pet*_*ter 8

WORKING_DIRECTORY命令的execute_process指令允许您直接指定要从中运行脚本的目录.

execute_process(COMMAND ${CMAKE_SOURCE_DIR}/script.sh args
                WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
Run Code Online (Sandbox Code Playgroud)


usr*_*567 2

${CMAKE_SOURCE_DIR}你获取源码路径。从源目录执行二进制文件是

execute_process(${CMAKE_SOURCE_DIR}/bin/myscript.sh)
Run Code Online (Sandbox Code Playgroud)

如果您需要处理构建目录中的文件,则必须像这样添加它们

execute_process(${CMAKE_SOURCE_DIR}/bin/myscript.sh ${CMAKE_CURRENT_BINARY_DIR}/input.txt)
Run Code Online (Sandbox Code Playgroud)

总体而言,变量CMAKE_SOURCE_DIRCMAKE_CURRENT_SOURCE_DIRCMAKE_BINARY_DIRCMAKE_CURRENT_BINARY_DIR非常有帮助。您可以在http://www.cmake.org/Wiki/CMake_Useful_Variables找到更完整的列表