CMake ExternalProject_Add Git

时间:2015-02-03 19:22:56

标签: git cmake external

我的桌面上有一个git-bare-repository,我想用CMake克隆它。我的存储库具有此路径C:\Users\demoUser\Desktop\learnGIT\prog。我的CMakeLists.txt看起来像这样:

cmake_minimum_required(VERSION 2.8)
project(Demo)
include(ExternalProject)

ExternalProject_Add(demo
  GIT_REPOSITORY C:/Users/demoUser/Desktop/learnGIT/prog
  GIT_TAG master
  UPDATE_COMMAND ""
  INSTALL_COMMAND ""
)

但在生成的文件夹prog-build中只是浪费。生成的文件夹结构不包含存储库中的任何文件。

有人有想法吗?

3 个答案:

答案 0 :(得分:2)

  1. 您的项目中必须有一个依赖于外部项目的目标

    add_dependencies(TargetName ExternalProjectName)
    
  2. git clone发生在TargetName 构建(不在CMake重新加载上)

答案 1 :(得分:0)

你必须告诉cmake它需要“demo”来构建你的目标。 通过这种方式,您可以强制cmake在编译之前下载外部项目“demo”。

例如

set(SRC ${PROJECT_SOURCE_DIR}/src/main.cpp 
    ${PROJECT_SOURCE_DIR}/src/file1.cpp)  
    add_executable(Demobin ${SRC})  
    add_dependencies(Demobin demo)

答案 2 :(得分:0)

您将在此ANSWER中找到完整的示例。


(通过git)添加外部项目时,有时在构建项目的主要部分开始之前获取(并构建)这些从属项目非常重要。

您可以通过在 ExternalProject_Add 部分中添加选项 STEP_TARGETS构建 来实现。 参见ANSWER