View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0011378CMakeCMakepublic2010-10-29 11:092011-04-04 12:00
Reporterkentwilliams 
Assigned ToDavid Cole 
PrioritynormalSeverityblockReproducibilityalways
StatusclosedResolutionunable to reproduce 
PlatformOSOS Version
Product VersionCMake-2-8 
Target VersionCMake 2.8.4Fixed in VersionCMake 2.8.4 
Summary0011378: ExternalProject.cmake aborts configuration & erroneously reports it can't find git.
DescriptionWhen trying to use ExternalProject_add to build VTK, and specifying the VTK git repository, cmake (or ccmake or cmake-guil) fails with this error:

CMake Error at ExternalProject.cmake:825 (message):
 error: could not find git for clone of VTK
Call Stack (most recent call first):
 ExternalProject.cmake:1165 (_ep_add_download_command)
 External_VTK.cmake:110 (ExternalProject_Add)
 CMakeLists.txt:352 (include)
- Show quoted text -
Additional InformationThe problem occurs because after

find_package(Git)

on line 823 of ExternalProject.cmake it tests for success with

if(NOT GIT_EXECUTABLE)

but the CMake variable defined in FindGit.cmake seems to be Git_EXECUTABLE

The attached patch fixes things on my machine (running OS X 10.6.4)
TagsNo tags attached.
Attached Filespatch file icon ExternalProject.cmake.patch [^] (2,212 bytes) 2010-10-29 11:09 [Show Content]

 Relationships

  Notes
(0024228)
David Cole (manager)
2010-12-17 08:21

I could not reproduce this... The FindGit.cmake in CMake 2.8.3 has the correct GIT_EXECUTABLE spelling that ExternalProject is looking for.


Evidence from my Mac:

davidcole@qwghlm : issue-11378
$ which cmake
/Applications/CMake 2.8-3.app/Contents/bin/cmake

davidcole@qwghlm : issue-11378
$ cmake --version
cmake version 2.8.3

davidcole@qwghlm : issue-11378
$ grep -i git_exec /Applications/CMake\ 2.8-3.app/Contents/share/cmake-2.8/Modules/FindGit.cmake
# GIT_EXECUTABLE - path to git command line client
# message("git found: ${GIT_EXECUTABLE}")
find_program(GIT_EXECUTABLE
mark_as_advanced(GIT_EXECUTABLE)
find_package_handle_standard_args(Git DEFAULT_MSG GIT_EXECUTABLE)


Additionally, I tried it out, just to make sure I wasn't missing something:

davidcole@qwghlm : issue-11378
$ pwd
/Users/davidcole/Dashboards/My Tests/issue-11378

davidcole@qwghlm : issue-11378
$ ls
CMakeLists.txt b1

davidcole@qwghlm : issue-11378
$ cat CMakeLists.txt
cmake_minimum_required(VERSION 2.8.3)
project(BuildVTK NONE)

include(ExternalProject)

ExternalProject_Add(VTK
  GIT_REPOSITORY git://vtk.org/VTK.git [^]
  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
)

davidcole@qwghlm : issue-11378
$ cd b1

davidcole@qwghlm : b1
$ cmake ..
-- Found Git: /opt/local/bin/git
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/davidcole/Dashboards/My Tests/issue-11378/b1

davidcole@qwghlm : b1
$ make -j 3
Scanning dependencies of target VTK
[ 0%] Creating directories for 'VTK'
[ 0%] Performing download step (git clone) for 'VTK'
Cloning into VTK...
remote: Counting objects: 280377, done.
remote: Compressing objects: 100% (58819/58819), done.
remote: Total 280377 (delta 223839), reused 277170 (delta 220770)
Receiving objects: 100% (280377/280377), 72.77 MiB | 2.05 MiB/s, done.
Resolving deltas: 100% (223839/223839), done.
Already on 'master'
[ 0%] [ 0%] Performing update step (git fetch) for 'VTK'
No patch step for 'VTK'
Already on 'master'
[ 0%] Performing configure step for 'VTK'
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
...


Now.... one thing that could be happening is that you have your own FindGit.cmake file in an overridden CMAKE_MODULE_PATH location. If so, and you want to keep using it, and you don't want to add a GIT_EXECUTABLE variable to it, then you could do something like this in your own CMakeLists.txt file:

find_package(Git)
set(GIT_EXECUTABLE "${Git_EXECUTABLE}")
include(ExternalProject)


Another thing that could be happening is that you're using a pre-release version of CMake 2.8.3 -- I think we did have an rc that might have had the Git_EXECUTABLE spelling in it... If so, simply update to 2.8.3 official.

Thanks for the report... Let me know if you have further issues with it.
(0026068)
David Cole (manager)
2011-04-04 12:00

Closing resolved issues that have not been updated in more than 3 months.

 Issue History
Date Modified Username Field Change
2010-10-29 11:09 kentwilliams New Issue
2010-10-29 11:09 kentwilliams File Added: ExternalProject.cmake.patch
2010-11-03 09:20 Bill Hoffman Status new => assigned
2010-11-03 09:20 Bill Hoffman Assigned To => David Cole
2010-12-17 07:41 David Cole Target Version => CMake 2.8.4
2010-12-17 08:21 David Cole Note Added: 0024228
2010-12-17 08:21 David Cole Status assigned => resolved
2010-12-17 08:21 David Cole Fixed in Version => CMake 2.8.4
2010-12-17 08:21 David Cole Resolution open => unable to reproduce
2011-04-04 12:00 David Cole Note Added: 0026068
2011-04-04 12:00 David Cole Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team