CMake如何将CMakeLists.txt中的shell命令转移到Makefile中

时间:2016-04-16 07:59:00

标签: shell makefile cmake

问题:我想在make makefile时回显一些信息,makefile是由CMakeLists.txt生成的,我不想在cmake CMakeLists.txt时回显信息,我该怎么办? 在Makefile中,代码如下:

.build-pre:
    @echo
    @echo "###########################################################"
    @echo "######## Welcome to Prosim Build System ###################"

我应该在CMakeLists.txt中创建什么才能在MakeFile中得到这样的内容?

1 个答案:

答案 0 :(得分:0)

您可以使用add_custom_target函数创建一个虚拟目标,该目标的依赖项设置为所有其他目标,从而首先构建它。

您可以使用ALL选项每次都进行构建。但是,您仍然需要使用add_dependencies在其他所有目标之前构建

最后,使用command-line tool mode of CMake使其与平台无关。 (COMMENT的{​​{1}}选项可能足以显示消息。)

add_custom_target

为方便起见,您可以将add_custom_target(display_intro ALL COMMAND cmake -E echo Foo) # .... add_executable(your_app ...) add_dependencies(your_app display_intro) add_library(your_lib ...) add_dependencies(your_lib display_intro) add_executable包装在函数或宏中。