| 
					
				 | 
			
			
				@@ -0,0 +1,94 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cmake_minimum_required(VERSION 2.8) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+project(ExternalProjectUpdateTest NONE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+include(ExternalProject) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+find_package(Git) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+option(ExternalProjectUpdateTest_USE_FOLDERS "Enable folder grouping in IDEs." ON) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(ExternalProjectUpdateTest_USE_FOLDERS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set_property(GLOBAL PROPERTY USE_FOLDERS ON) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+else() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set_property(GLOBAL PROPERTY USE_FOLDERS OFF) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "CMakePredefinedTargets-in-ExternalProjectUpdateTest") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set(base "${CMAKE_BINARY_DIR}/CMakeExternals") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set(binary_base "${base}/Build") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set_property(DIRECTORY PROPERTY EP_BASE ${base}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set_property(DIRECTORY PROPERTY EP_STEP_TARGETS configure build test) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+set(do_git_tests 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(GIT_EXECUTABLE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set(do_git_tests 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  execute_process( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    COMMAND "${GIT_EXECUTABLE}" --version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OUTPUT_VARIABLE ov 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OUTPUT_STRIP_TRAILING_WHITESPACE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  string(REGEX REPLACE "^git version (.+)$" "\\1" git_version "${ov}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  message(STATUS "git_version='${git_version}'") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(git_version VERSION_LESS 1.6.5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    message(STATUS "No ExternalProject git tests with git client less than version 1.6.5") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(do_git_tests 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# This should be specified from the command line. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(NOT TEST_GIT_TAG) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  message(FATAL_ERROR "TEST_GIT_TAG must be specified.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(do_git_tests) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set(local_git_repo "../../LocalRepositories/GIT") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # Unzip/untar the git repository in our source folder so that other 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # projects below may use it to test git args of ExternalProject_Add 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set(proj SetupLocalGITRepository) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ExternalProject_Add(${proj} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/LocalRepositories/GIT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo.tgz 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    BUILD_COMMAND "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CONFIGURE_COMMAND "${GIT_EXECUTABLE}" --version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    INSTALL_COMMAND "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set_property(TARGET ${proj} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set(proj TutorialStep1-GIT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ExternalProject_Add(${proj} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GIT_REPOSITORY "${local_git_repo}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GIT_TAG ${TEST_GIT_TAG} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CMAKE_GENERATOR "${CMAKE_GENERATOR}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    INSTALL_COMMAND "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    DEPENDS "SetupLocalGITRepository" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  set_property(TARGET ${proj} PROPERTY FOLDER "GIT") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Test the testable built/installed products: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+enable_testing() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Do at least a smoke test of a built executable from each 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# project's build directory... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BuildTree tests: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(do_git_tests) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  add_test(TutorialStep1-GIT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "${binary_base}/TutorialStep1-GIT/Tutorial" 81) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+message(STATUS "do_git_tests='${do_git_tests}'") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+message(STATUS "GIT_EXECUTABLE='${GIT_EXECUTABLE}'") 
			 |