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

时间:2013-12-06 08:55:16

标签: linux bash cmake

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

execute_process(COMMAND cd ../) - 不起作用。当我执行此CMake时,它不会更改其目录,而是我再次进入project / build。

2 个答案:

答案 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_DIRCMAKE_CURRENT_SOURCE_DIRCMAKE_BINARY_DIRCMAKE_CURRENT_BINARY_DIR非常有用。您可以在http://www.cmake.org/Wiki/CMake_Useful_Variables

找到更完整的列表