Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • CMake CMake
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,803
    • Issues 3,803
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 13
    • Merge requests 13
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CMake
  • CMakeCMake
  • Issues
  • #23102

Closed
Open
Created Jan 13, 2022 by artem-kamyshev@artem-kamyshev

ExternalProject: could not find git

I have both a standalone git installed and a git bundled with Visual Studio 2019. While making a cmake configuration step I get an error:

CMake Error at D:/cmake-3.20.5-win64-x64/share/cmake-3.20/Modules/ExternalProject.cmake:2633 (message):
  error: could not find git for clone of modular_boostorg-populate
Call Stack (most recent call first):
  D:/cmake-3.20.5-win64-x64/share/cmake-3.20/Modules/ExternalProject.cmake:3683 (_ep_add_download_command)
  CMakeLists.txt:22 (ExternalProject_Add)

I've search the Internet and found out that git bundled with Visual Studio is not a fully-functional one, I've installed a fully-functional git for Visual Studio using Visual Studio installer as it was told in this forum: https://developercommunity.visualstudio.com/t/bundled-git-installation-not-usable-with-cmake-ope/1144595

This did not resolve the issue. Then I've updated a standalone git installation and made sure that it goes prior to a git from Visual Studio in a PATH:

PATH
E:\sources\proto\build_tools\env\Scripts
"d:\cmake-3.20.5-win64-x64"\bin\
"d:\ninja"\
"d:\Program Files\Git"\bin\
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\\Extensions\Microsoft\IntelliCode\CLI
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCPackages
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools\x64
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools
D:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\\x64
D:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\devinit
D:\Windows Kits\10\bin\10.0.19041.0\x64
D:\Windows Kits\10\bin\x64
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\\MSBuild\Current\Bin
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\
C:\Windows\system32
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja

It did not resolve the issue, I still get the same error. Looks like cmake does not respect PATH while search for a installation of a git. Meanwhile git clone command works fine from this environment:

(env) e:\builds\proto\ninja\tmp>git clone https://github.com/boostorg/boost.git
Cloning into 'boost'...
Here is my root CMakeLists.txt:
cmake_minimum_required(VERSION 3.16)
project("proto")

set(CMAKE_CXX_STANDARD 11)

include(FetchContent)
FetchContent_Declare(
  googletest
  URL https://github.com/google/googletest/archive/refs/tags/release-1.11.0.zip
)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)

set(BOOST_ENABLE_CMAKE ON)
FetchContent_Declare(modular_boostorg
GIT_REPOSITORY https://github.com/boostorg/boost.git
GIT_TAG boost-1.78.0
GIT_SUBMODULES
  libs/algorithm
  libs/align
  libs/array
  libs/asio
  libs/assert
  libs/atomic
  libs/bind
  libs/chrono
  libs/concept_check
  libs/config
  libs/container
  libs/container_hash
  libs/context
  libs/conversion
  libs/container
  libs/core
  libs/coroutine
  libs/date_time
  libs/detail
  libs/exception
  libs/filesystem
  libs/function
  libs/function_types
  libs/fusion
  libs/json
  libs/integer
  libs/intrusive
  libs/io
  libs/iterator
  libs/lexical_cast
  libs/move
  libs/mpl
  libs/mp11
  libs/numeric/conversion
  libs/optional
  libs/pool
  libs/predef
  libs/preprocessor
  libs/process
  libs/range
  libs/ratio
  libs/rational
  libs/regex
  libs/smart_ptr
  libs/static_assert
  libs/system
  libs/throw_exception
  libs/tokenizer
  libs/tuple
  libs/type_index
  libs/type_traits
  libs/typeof
  libs/unordered
  libs/utility
  libs/variant2
  libs/winapi
  tools/cmake
)
FetchContent_GetProperties(modular_boostorg)
if(NOT modular_boostorg_POPULATED)
FetchContent_Populate(modular_boostorg)
#set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}:${modular_boostorg_SOURCE_DIR}/tools/cmake/include")
add_subdirectory(
${modular_boostorg_SOURCE_DIR}
${modular_boostorg_BINARY_DIR}
EXCLUDE_FROM_ALL
)
endif()

enable_testing()

add_subdirectory("some-my-directory 1")
...
add_subdirectory("some-my-directory N")

OS: Windows 10 Pro

CMake version: 3.20.5

Edited Jan 13, 2022 by Brad King
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking