2014-09-24 123 views
10

是否可以使用add_custom_target或add_custom_command来调用CMake函数?我知道我可以将CMake函数移动到Python(或其他)脚本并从add_custom_target/command中调用它,但是我想避免在现有的CMake下面有大量的脚本。如何从add_custom_target/command调用CMake函数?

我想要实现的是使用CPack生成二进制工件的zip包并将它们发布到工件存储库中。对于发布部分,我已经创建了CMake功能,但现在我需要将打包和发布结合在一起。

感谢您的任何帮助/提示提前。

马丁

回答

17

我遇到过这个问题而写的CMake构建系统BVLC/Caffe。我终于做是我把函数的内容到一个单独的CMake的脚本,并通过调用其称为从add_custom_target内:

add_custom_target(target_name 
    COMMAND ${CMAKE_COMMAND} -P path_to_script 
) 

调用CMake的与-P标志使得它作为一种脚本语言。你可以在脚本中放置任何CMake函数。

+0

是的,那就是我一直在寻找的东西。我可以多么失明....谢谢你。 – 2014-09-25 07:44:11

+0

感谢亚当 - 这很方便 – 2015-03-24 01:00:31

+7

它令我难以置信,你不能直接从add_custom_command中调用像FILE这样的cmake命令 – xaxxon 2016-04-21 09:38:43