Merge branch 'improve-CheckSourceTree-test'
This commit is contained in:
commit
9e7029eb01
|
@ -149,26 +149,77 @@ if(is_git_checkout AND NOT GIT_EXECUTABLE)
|
|||
# from it:
|
||||
#
|
||||
if(ctest_ini_file)
|
||||
file(STRINGS "${ctest_ini_file}" lines REGEX "^GITCommand: (.*)$")
|
||||
string(REGEX REPLACE "^GITCommand: (.*)$" "\\1" exe "${lines}")
|
||||
file(STRINGS "${ctest_ini_file}" line REGEX "^GITCommand: (.*)$")
|
||||
string(REGEX REPLACE "^GITCommand: (.*)$" "\\1" line "${line}")
|
||||
if("${line}" MATCHES "^\"")
|
||||
string(REGEX REPLACE "^\"([^\"]+)\" *.*$" "\\1" line "${line}")
|
||||
else()
|
||||
string(REGEX REPLACE "^([^ ]+) *.*$" "\\1" line "${line}")
|
||||
endif()
|
||||
set(exe "${line}")
|
||||
if("${exe}" STREQUAL "GITCOMMAND-NOTFOUND")
|
||||
set(exe "")
|
||||
endif()
|
||||
if(exe)
|
||||
message("info: GIT_EXECUTABLE set by 'GITCommand:' from '${ctest_ini_file}'")
|
||||
endif()
|
||||
|
||||
if(NOT exe)
|
||||
file(STRINGS "${ctest_ini_file}" lines REGEX "^UpdateCommand: (.*)$")
|
||||
string(REGEX REPLACE "^UpdateCommand: (.*)$" "\\1" exe "${lines}")
|
||||
file(STRINGS "${ctest_ini_file}" line REGEX "^UpdateCommand: (.*)$")
|
||||
string(REGEX REPLACE "^UpdateCommand: (.*)$" "\\1" line "${line}")
|
||||
if("${line}" MATCHES "^\"")
|
||||
string(REGEX REPLACE "^\"([^\"]+)\" *.*$" "\\1" line "${line}")
|
||||
else()
|
||||
string(REGEX REPLACE "^([^ ]+) *.*$" "\\1" line "${line}")
|
||||
endif()
|
||||
set(exe "${line}")
|
||||
if("${exe}" STREQUAL "GITCOMMAND-NOTFOUND")
|
||||
set(exe "")
|
||||
endif()
|
||||
if(exe)
|
||||
message("info: GIT_EXECUTABLE set by 'UpdateCommand:' from '${ctest_ini_file}'")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
message("info: no DartConfiguration.tcl or CTestConfiguration.ini file...")
|
||||
endif()
|
||||
|
||||
# If we have still not grokked the exe, look in the Update.xml file to see
|
||||
# if we can parse it from there...
|
||||
#
|
||||
if(NOT exe)
|
||||
file(GLOB_RECURSE update_xml_file "${CMake_BINARY_DIR}/Testing/Update.xml")
|
||||
if(update_xml_file)
|
||||
file(STRINGS "${update_xml_file}" line
|
||||
REGEX "^.*<UpdateCommand>(.*)</UpdateCommand>$" LIMIT_COUNT 1)
|
||||
string(REPLACE ""\;" "\"" line "${line}")
|
||||
string(REGEX REPLACE "^.*<UpdateCommand>(.*)</UpdateCommand>$" "\\1" line "${line}")
|
||||
if("${line}" MATCHES "^\"")
|
||||
string(REGEX REPLACE "^\"([^\"]+)\" *.*$" "\\1" line "${line}")
|
||||
else()
|
||||
string(REGEX REPLACE "^([^ ]+) *.*$" "\\1" line "${line}")
|
||||
endif()
|
||||
if(line)
|
||||
set(exe "${line}")
|
||||
endif()
|
||||
if(exe)
|
||||
message("info: GIT_EXECUTABLE set by '<UpdateCommand>' from '${update_xml_file}'")
|
||||
endif()
|
||||
else()
|
||||
message("info: no Update.xml file...")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(exe)
|
||||
set(GIT_EXECUTABLE "${exe}")
|
||||
message("info: set GIT_EXECUTABLE to '${GIT_EXECUTABLE}' based on '${ctest_ini_file}'")
|
||||
message("GIT_EXECUTABLE='${GIT_EXECUTABLE}'")
|
||||
message("")
|
||||
|
||||
if(NOT EXISTS "${GIT_EXECUTABLE}")
|
||||
message(FATAL_ERROR "GIT_EXECUTABLE does not exist...")
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "could not determine GIT_EXECUTABLE based on '${ctest_ini_file}'...")
|
||||
message(FATAL_ERROR "could not determine GIT_EXECUTABLE...")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Reference in New Issue