如何解决CMake用add_custom_target
我正在尝试向我的cmake设置添加自定义目标。因为我想用一组参数执行特定的工具,所以这是必需的。可执行文件本身是预构建的,位于我要构建的存储库中(因此,在存储库中有显式的.exe,不会构建)。
我使用了以下cmake命令:
add_custom_target(some_target ALL DEPENDS ${INPUT_FILES} COMMAND <path_to_repository>/<path_within_repository>/my_tool.exe "arguments")
这是一个问题的症结所在:
<path_to_repository>/<path_within_repository>/my_tool.exe
可执行文件的路径被构建为使用一些动态和静态部分的绝对路径( 例如,我们有: 问题是当我开始执行cmake并进行构建时。从日志中,我可以看到由于某种原因, 失败,并显示一条非常简单的错误消息 可操作的程序或批处理文件。 ,因为它试图在Windows上构建它,所以显然用“ /”而不是“ \”的相对路径不起作用( 所以有两个问题: 我已经尝试将反斜杠放在路径中(因此
唯一不会发生此问题的实例是当我手动将“ my_tool.exe”放在文件夹层次结构中存储库本身上方的某个位置(因此C:/user/repos/source/MY_REPO/PROJECT/Sources/SpecialTool/bin/my_tool.exe
<path_to_repo ------------->/<path_within_repository ------->
message()
打印完整的../../Sources/SpecialTool/bin/my_tool.exe
'..' is not recognized as an internal or external command,
Source/SpecialTool/bin/my_tool.exe
可以用,但是显然您不能在Windows上使用斜杠和相对路径)。
..\..\Sources\...\my_tool.exe
路径起作用)?C:\\user\\repos\\source\\MY_REPO\\PROJECT\\Sources\\SpecialTool\\bin\\my_tool.exe
),使用引号等,似乎没有任何效果。我还尝试过使用add_custom_command
,然后在add_custom_target
中使用它,但这给了我与在add_custom_target
中直接调用命令完全相同的行为。C:/user/repos/source/my_tool.exe
或C:/my_tool.exe
时,路径自然不会包含构建的存储库本身的完整路径)。在为该项目编写cmake时,我也无法实际使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。