我基本上问的问题和这里问的问题一样。然而,这个问题没有得到回答。
我想在我的项目中使用 googletest。为此,我使用 ExternalProject_Add(),它使用 git 克隆测试套件。之后,我喜欢使用add_subdirectory()
.
这也是官方存储库中描述的内容。这种方法的好处是,googletest 中的构建脚本自己处理构建过程。
但是,问题是add_subdirectory()
找不到源文件夹,因为它从一开始就不存在。因此,add_subdirectory()
应依赖于完成ExternalProject_Add()
。
是否可以像 add_dependencies() 那样对目标进行add_subdirectory()
依赖?ExternalProject_Add()
PS。如果我注释掉它,我可以让它全部编译add_subdirectory()
,构建它(由于缺少 googletest 库而以错误结束),取消注释并再次构建它(成功)。
ExternalProject_Add(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG master
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
ExternalProject_Get_Property(googletest source_dir binary_dir)
set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include)
set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include)
add_subdirectory(${source_dir}
${binary_dir})