CMake ExternalProject_添加Git

use*_*904 5 git cmake external-project

我的桌面上有一个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 ""
)
Run Code Online (Sandbox Code Playgroud)

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

有人有主意吗?

Ole*_*leg 6

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

    add_dependencies(TargetName ExternalProjectName)
    
    Run Code Online (Sandbox Code Playgroud)
  2. git clone上发生的TargetName 构建(而不是在CMake的重装)


Ram*_*Gad 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)
Run Code Online (Sandbox Code Playgroud)