是否可以从add_custom_target
或add_custom_command
调用CMake功能?
我知道我可以将CMake函数移动到Python(或其他)脚本并从add_custom_target
/ command
调用它,但我想避免在现有的CMake基础结构旁边放置大量脚本
我想要实现的是使用CPack生成二进制工件的zip包并将其发布到工件存储库中。对于发布部分,我已经创建了CMake功能,但现在我需要将打包和发布结合在一起。
提前感谢您的任何帮助/提示。
答案 0 :(得分:21)
我在为BVLC/Caffe编写CMake构建系统时遇到了这个问题。我最后做的是将函数内容放入一个单独的CMake脚本中,并通过调用add_custom_target
从add_custom_target(target_name
COMMAND ${CMAKE_COMMAND} -P path_to_script
)
内调用它。
-P
使用{{1}}标志调用CMake使其充当脚本语言。您可以在脚本中放置任何CMake函数。
答案 1 :(得分:1)
我寻找了同样的东西,几分钟后我意识到这是不可能的,因为cmake是一个生成生成器生成器。
仅当cmake不存在时,该命令才会在其他时间运行,例如在您的IDE中运行。