【问题标题】:GoogleTest & Cmake issueGoogleTest & Cmake 问题
【发布时间】:2018-08-23 18:27:36
【问题描述】:

我正在尝试将 gtest 用于我的一个基于 cmake 的项目。

这是他们在 github 上提供的 cmake,用于在配置时构建 gtest(删除了 cmets 以使其更短):

configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
if(result)
  message(FATAL_ERROR "CMake step for googletest failed: ${result}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} --build .
  RESULT_VARIABLE result
  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
if(result)
  message(FATAL_ERROR "Build step for googletest failed: ${result}")
endif()

set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)

add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src
                 ${CMAKE_BINARY_DIR}/googletest-build
                 EXCLUDE_FROM_ALL)

if (CMAKE_VERSION VERSION_LESS 2.8.11)
  include_directories("${gtest_SOURCE_DIR}/include")
endif()

add_executable(example example.cpp)
target_link_libraries(example gtest_main)
add_test(NAME example_test COMMAND example)

现在,在一个非常简单的项目中使用它时:

.
├── CMakeLists.txt
├── CMakeLists.txt.in
├── build
└── gtest_example.cpp

它按预期工作。但是,当在第一个 CMakeLists.txt 中添加带有自己的 CMakeLists.txt 和 CMakeLists.txt.in 以及 add_subdirectory(test) 的测试目录时,它不再起作用了。

似乎execute_process() 失败了,因为输入了if(result)

我做错了什么?

【问题讨论】:

    标签: cmake googletest


    【解决方案1】:

    发现这个问题 github 解决了我的问题。详情请见file changes

    如果有人遇到同样的问题,会接受这个答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 2018-05-05
      相关资源
      最近更新 更多