CMake ExternalProject_Add停止执行警告

时间:2015-12-22 22:16:13

标签: qt visual-studio-2013 cmake

我正在使用一系列ExternalPorject_Add来使用CMake静态下载,配置,构建和安装QT5。在配置脚本之前一切顺利。 Qt5配置脚本在静态编译时发出以下警告,之后将忽略构建和安装步骤:

exec "$1" "$2" &!
sleep 1
local pid="$(pidof $2)"

我的最终ExternaProject_Add如下(还有其他方法可以将下载步骤分解为不同的目标):

CUSTOMBUILD : warning : Using static linking will disable the use of plugins.
           Make sure you compile ALL needed modules into the library.

是否有任何关于如何让项目忽略警告的想法(警告甚至导致它停止的是什么?)并继续构建和安装步骤?

我目前正在运行Windows(使用跨平台安装程序),并使用带有cmake的visual studio 2013生成器。

谢谢!

2 个答案:

答案 0 :(得分:1)

我和你有同样的问题。事实证明它与警告甚至退出代码无关(在这种情况下)。

这是因为 configure 文件是一个批处理文件,而Visual Studio正在另一个批处理文件中执行configure build步骤。

这意味着如果您不在call前面使用关键字configure,您将转移到configure.bat并永远不会返回并执行Visual中的其余步骤Studio配置步骤。

要解决此问题,您可以执行以下操作:

ExternalProject_Add(qt5_build
    DOWNLOAD_COMMAND "" UPDATE_COMMAND "" PATCH_COMMAND ""
    SOURCE_DIR ${QT5_REPO_PATH}
    CONFIGURE_COMMAND call configure.bat ${QT5_CONFIGURE}
    BUILD_COMMAND nmake BUILD_IN_SOURCE 1
    INSTALL_COMMAND nmake install)

答案 1 :(得分:0)

配置脚本返回非零结果,导致后续步骤失败,即使警告确实是非致命的。我已暂不使用ExternalProject,只是使用add_custom_target实现了相同的功能。