如果可以通过ExternalProject仅下载部分存储库?

时间:2017-03-15 20:36:17

标签: git github cmake project

我想知道是否有可能使用ExternalProject_Add从Github下载一个目录中的一个目录?

我需要在我的项目中使用glm库,我想知道这是不是一个好主意,因为它需要大约70MB。我需要的目录有11MB,所以内存和下载时间差别很大。

这是glm github repo:https://github.com/g-truc/glm的链接,但我认为这不重要。

我只想从该回购下载glm目录。

你有什么想法吗?

这是我添加到主项目的CMakeLists.txt:

include(ExternalProject)

ExternalProject_Add(glm
  GIT_REPOSITORY https://github.com/g-truc/glm
  PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
  # Disable configure, build and install steps
  CONFIGURE_COMMAND ""
  BUILD_COMMAND ""
  INSTALL_COMMAND ""
  LOG_DOWNLOAD ON
)

# Specify include dir
ExternalProject_Get_Property(glm source_dir)
set(GLM_INCLUDE_DIRS ${source_dir}/ PARENT_SCOPE)

我尝试将网址更改为https://github.com/g-truc/glm/tree/master/glm,但它无效。

1 个答案:

答案 0 :(得分:0)

我通过将DOWNLOAD_COMMAND机制与 git sparse checkout 结合起来解决了这个问题。

我将其应用于我的Github project

DOWNLOAD_COMMAND partgit sparse checkout mechanism part