我在自己的项目中使用了gtest附带的开源库。由于我在自己的库中使用gmock,因此在从其他开源库中包含gtest时,编译gmock似乎存在问题。
有没有办法不包含该库中的子目录?
在开源库的include目录中有两个文件夹:
include/
gtest MRT
我只想包含文件夹" MRT" (如果我使用include_directories {path_to_os_lib / include / MRT}编译将失败,因为库内部使用包括" #include" MRT / foo / bar.hpp"")等的语句
答案 0 :(得分:3)
您可以将MRT目录“安装”(简单地复制)到repo的另一部分,并将其添加到INCLUDE_DIRECTORIES
。假设您在子目录subrepo
中拥有MRT仓库:
MESSAGE("Copying MRT directory...")
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/subrepo/MRT" "${CMAKE_CURRENT_SOURCE_DIR}/include/MRT")
INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/include")
不要使用任何shell / batch命令,因为它们不可移植。因为这个cmake支持-E许多命令。