是否有一个qmake等效的cmake的ExternalProject

时间:2017-11-08 15:22:51

标签: c++ cmake googletest qmake

我想知道如何在我的项目中包含googletest。因此,我阅读了README的安装说明。就像我理解的那样,如何添加库总是有三种选择:

  1. 静态链接
  2. 动态链接
  3. 直接将源代码包含到您的项目中。
  4. 我想

      

    这是通过将GoogleTest源代码提供给   主构建并使用CMake的add_subdirectory()命令添加它。“

    表示直接将源代码包含在项目中,因此选项3。

    他们提到实施选项3的最佳方法是:

      

    使用CMake下载GoogleTest作为构建配置的一部分   步。这只是有点复杂,但没有   其他方法的局限性。

    他们通过使用名为 ExternalProject 的cmake功能来实现这一目的:

    cmake_minimum_required(VERSION 2.8.2)
    
    project(googletest-download NONE)
    
    include(ExternalProject)
    ExternalProject_Add(googletest
      GIT_REPOSITORY    https://github.com/google/googletest.git
      GIT_TAG           master
      SOURCE_DIR        "${CMAKE_BINARY_DIR}/googletest-src"
      BINARY_DIR        "${CMAKE_BINARY_DIR}/googletest-build"
      CONFIGURE_COMMAND ""
      BUILD_COMMAND     ""
      INSTALL_COMMAND   ""
      TEST_COMMAND      ""
    )
    

    据我所知,其好处是它可以在构建项目时自动搜索更新。不幸的是我对cmake一无所知。与qmake相比,cmake的语法很糟糕。所以我问:

    是否有与cmake的ExternalProject相当的qmake?

1 个答案:

答案 0 :(得分:0)

是的,它是SUBDIRS
有关详细信息,请参阅documentation

在子目录中,您可以创建* .pro文件,该文件将构建gtest作为库。 如果我没记错的话,你只需要构建两个文件gtest-all.ccgmock-all.cc并添加相应的包含目录。

gtest很棒,但对于使用信号和插槽的Qt,QT Test Lib也可以完成这项工作。