cmake "make run"

22

在这个问题领域中,我对术语有些不确定,这让我在尝试搜索内容时存在问题。

我正在使用CMake进行构建过程。我想创建一个Makefile目标,以便我可以使用make run来运行给定的进程(具体来说,是我刚刚用make构建的进程)。我意识到我可以编写一个shell脚本,或者只需输入命令即可运行该命令。如果我自己编写Makefile,则可以像下面这样操作:


run:
    ./path/to/binary

我从不亲自编写Makefile,而是由cmake生成的。 我不确定在我的CMakeLists.txt中应该放什么以使其生成所需的make run目标。

我找到了cmake命令'execute_process',但这似乎不是我想要的 - 我不想在构建过程中实际运行任何内容。

额外信息:此外,我希望能够执行以下操作:


CMAKE_COMMAND_ADD_MAKEFILE_TARGET ( ${CMAKE_PROJECT_DIR}/binary )
那就是,在可能的情况下,使用cmake变量添加路径到二进制文件中的

你上面写的目标有什么问题吗? - Oliver Charlesworth
糟糕,没有表达清楚 - 我不是在编写我的 Makefile,我正在使用 CMake。我会相应地编辑问题。 - simont
1个回答

28

你需要寻找add_custom_target命令。例如:

add_custom_target(run
    COMMAND binary
    DEPENDS binary
    WORKING_DIRECTORY ${CMAKE_PROJECT_DIR}
)

你测试过这个吗?我无法让${CMAKE_PROJECT_DIR}/binary正常工作,而且我不确定是不是我搞错了 - 不过我已经找到了使用add_custom_target来实现我想要的功能。 - simont
抱歉,我没有尝试过。现在已经修复了。 - Simon
1
您可能需要编写 make -s run/fast 以避免重新处理文件并打印“进入目录”等信息。 - AnnanFay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接