我正在用CMake构建项目。配置和构建我在目录项目/构建中。如何在CMake中更改目录并从另一个目录执行bash脚本。
execute_process(COMMAND cd ../) - 不起作用。当我执行此CMake时,它不会更改其目录,而是我再次进入project / build。
答案 0 :(得分:8)
WORKING_DIRECTORY
命令的execute_process
指令允许您直接指定要运行脚本的目录。
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/script.sh args
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
答案 1 :(得分:2)
使用${CMAKE_SOURCE_DIR}
,您将获得源路径。从源目录执行二进制文件将是
execute_process(${CMAKE_SOURCE_DIR}/bin/myscript.sh)
如果您需要处理构建目录中的文件,则必须添加它们,如
execute_process(${CMAKE_SOURCE_DIR}/bin/myscript.sh ${CMAKE_CURRENT_BINARY_DIR}/input.txt)
总体而言,变量CMAKE_SOURCE_DIR
,CMAKE_CURRENT_SOURCE_DIR
,CMAKE_BINARY_DIR
和CMAKE_CURRENT_BINARY_DIR
非常有用。您可以在http://www.cmake.org/Wiki/CMake_Useful_Variables