是否有相当于cmake的外部项目的qmake。

Is there a qmake equivalent of cmake's ExternalProject

本文关键字:项目 qmake 外部 是否 相当于 cmake      更新时间:2023-10-16

我想弄清楚如何在我的项目中包含谷歌测试。因此,我阅读了安装说明的自述文件。正如我所理解的,如何添加库总是有三个选项:

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

我猜

这是通过将GoogleTest源代码提供给main构建并使用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外部项目的qmake?

是的,它是SUBDIRS
有关详细信息,请参阅文档。

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

gtest很好,但对于使用信号和插槽的Qt,Qt Test Lib也应该起作用。