【问题标题】:CMake - change current directory ( for example: project/build ) from CMakeLists.txt?CMake - 从 CMakeLists.txt 更改当前目录(例如:project/build)?
【发布时间】:2013-12-23 13:24:27
【问题描述】:

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

execute_process( COMMAND cd ../ ) - 不起作用。当我执行这个 CMake 并没有改变它的目录,我又在 project/build 中。

【问题讨论】:

  • 如何将 bash 脚本和 cd 放在同一个 execute_process 上?我的意思是类似于 execute_process( COMMAND "cd ../ && mybashscript" )

标签: linux bash cmake


【解决方案1】:

execute_process 命令的WORKING_DIRECTORY 指令可让您直接指定要运行脚本的目录。

execute_process(COMMAND ${CMAKE_SOURCE_DIR}/script.sh args
                WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})

【讨论】:

    【解决方案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找到更完整的列表

    【讨论】:

      猜你喜欢
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 2010-10-05
      • 1970-01-01
      相关资源
      最近更新 更多