我正在向我的 cmake 项目添加一个外部项目。默认情况下,平面缓冲区收集示例和测试,关闭它们可以节省宝贵的编译时间。问题是为了关闭它们,我需要定义一些变量(参见下面的注释行)并将它们添加到CONFIGURE_COMMAND. 但是,我没有变量${flatbuffers_SOURCE_DIR},我不能提前设置它(你永远不知道它会下载到哪里)。
解决这个问题的最佳方法是什么?
ExternalProject_Add(flatbuffers
GIT_REPOSITORY "https://github.com/google/flatbuffers.git"
GIT_TAG "v1.5.0"
# CONFIGURE_COMMAND cmake ${flatbuffers_SOURCE_DIR} -DFLATBUFFERS_BUILD_TESTS=Off -DFLATBUFFERS_INSTALL=Off -DFLATBUFFERS_BUILD_FLATHASH=Off
INSTALL_COMMAND ""
TEST_COMMAND ""
)
尽管 ExternalProject 的源目录、构建目录和其他目录是由某种算法确定的(请参阅文档),但在为特定步骤形成命令行时,有一种简单的方法可以引用这些目录:
<SOURCE_DIR>- 源目录<BINARY_DIR>- 构建目录<INSTALL_DIR>- 安装目录例子: