先在CMake测试构建

GTest build first at CMake

本文关键字:构建 测试 CMake 先在      更新时间:2023-10-16

我正在构建动态库,并希望使用gtest进行测试。

SET(GTEST_LIBRARY libs/googletest-master)
set(GTEST_INCLUDE_DIR libs/googletest-master/googletest/include)
#set(GTEST_MAIN_LIBRARY libs/googletest-master/googletest/include/gtest)
#find_package(PostgreSQL REQUIRED)
enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIR})

但是,在设置GTEST_MAIN_LIBRARY之前,我必须先构建它。我如何配置CMake来实现这个

  1. 使用Cmake &&make(在unix上)
  2. 获取GTEST_MAIN_LIBRARY的合适路径
  3. 继续构建

我复制了gtests的src到项目中使用make创建一个构建并将其添加到CMake

add_subdirectory(libs/googletest-master)
SET(GTEST_LIBRARY libs/googletest-master)
set(GTEST_INCLUDE_DIR libs/googletest-master/googletest/include)
set(GTEST_MAIN_LIBRARY libs/googletest-master/googlemock/gtest)
enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIR})
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})

如果您将googletest的源文件放在CMakeLists.txt文件所在的子目录中,则以下内容应该可以工作:

add_subdirectory(./googletest)
add_executable(your_program ${MY_SRC})
add_dependencies(your_program gmock)
add_dependencies(your_program gtest)