BUG: Fixes for FindSubversion
- Split log out from Subversion_WC_INFO into Subversion_WC_LOG - Fix report of log info to be in <var-prefix>_WC_LAST_CHANGED_LOG as documented (instead of Subversion_LAST_CHANGED_LOG) - Fix setting of LC_ALL environment variable to be inside macro - Patch from Tanguy Krotoff - See issue #7047
This commit is contained in:
parent
2783b537cd
commit
e0b26f4aea
@ -20,6 +20,8 @@
|
|||||||
# IF(Subversion_FOUND)
|
# IF(Subversion_FOUND)
|
||||||
# Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
|
# Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
|
||||||
# MESSAGE("Current revision is ${Project_WC_REVISION}")
|
# MESSAGE("Current revision is ${Project_WC_REVISION}")
|
||||||
|
# Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project)
|
||||||
|
# MESSAGE("Last changed log is ${Project_LAST_CHANGED_LOG}")
|
||||||
# ENDIF(Subversion_FOUND)
|
# ENDIF(Subversion_FOUND)
|
||||||
|
|
||||||
# Copyright (c) 2006, Tristan Carel
|
# Copyright (c) 2006, Tristan Carel
|
||||||
@ -52,11 +54,6 @@
|
|||||||
SET(Subversion_FOUND FALSE)
|
SET(Subversion_FOUND FALSE)
|
||||||
SET(Subversion_SVN_FOUND FALSE)
|
SET(Subversion_SVN_FOUND FALSE)
|
||||||
|
|
||||||
# the subversion commands should be executed with the C locale, otherwise
|
|
||||||
# the message (which are parsed) may be translated, Alex
|
|
||||||
SET(_Subversion_SAVED_LC_ALL "$ENV{LC_ALL}" )
|
|
||||||
SET(ENV{LC_ALL} C)
|
|
||||||
|
|
||||||
FIND_PROGRAM(Subversion_SVN_EXECUTABLE svn
|
FIND_PROGRAM(Subversion_SVN_EXECUTABLE svn
|
||||||
DOC "subversion command line client")
|
DOC "subversion command line client")
|
||||||
MARK_AS_ADVANCED(Subversion_SVN_EXECUTABLE)
|
MARK_AS_ADVANCED(Subversion_SVN_EXECUTABLE)
|
||||||
@ -66,6 +63,11 @@ IF(Subversion_SVN_EXECUTABLE)
|
|||||||
SET(Subversion_FOUND TRUE)
|
SET(Subversion_FOUND TRUE)
|
||||||
|
|
||||||
MACRO(Subversion_WC_INFO dir prefix)
|
MACRO(Subversion_WC_INFO dir prefix)
|
||||||
|
# the subversion commands should be executed with the C locale, otherwise
|
||||||
|
# the message (which are parsed) may be translated, Alex
|
||||||
|
SET(_Subversion_SAVED_LC_ALL "$ENV{LC_ALL}")
|
||||||
|
SET(ENV{LC_ALL} C)
|
||||||
|
|
||||||
EXECUTE_PROCESS(COMMAND ${Subversion_SVN_EXECUTABLE} --version
|
EXECUTE_PROCESS(COMMAND ${Subversion_SVN_EXECUTABLE} --version
|
||||||
WORKING_DIRECTORY ${dir}
|
WORKING_DIRECTORY ${dir}
|
||||||
OUTPUT_VARIABLE Subversion_VERSION_SVN
|
OUTPUT_VARIABLE Subversion_VERSION_SVN
|
||||||
@ -96,9 +98,19 @@ IF(Subversion_SVN_EXECUTABLE)
|
|||||||
|
|
||||||
ENDIF(NOT ${Subversion_svn_info_result} EQUAL 0)
|
ENDIF(NOT ${Subversion_svn_info_result} EQUAL 0)
|
||||||
|
|
||||||
|
# restore the previous LC_ALL
|
||||||
|
SET(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL})
|
||||||
|
|
||||||
|
ENDMACRO(Subversion_WC_INFO)
|
||||||
|
|
||||||
|
MACRO(Subversion_WC_LOG dir prefix)
|
||||||
|
# This macro can block if the certificate is not signed:
|
||||||
|
# svn ask you to accept the certificate and wait for your answer
|
||||||
|
# This macro requires a svn server network access (Internet most of the time)
|
||||||
|
# and can also be slow since it access the svn server
|
||||||
EXECUTE_PROCESS(COMMAND
|
EXECUTE_PROCESS(COMMAND
|
||||||
${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}
|
${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}
|
||||||
OUTPUT_VARIABLE Subversion_LAST_CHANGED_LOG
|
OUTPUT_VARIABLE ${prefix}_LAST_CHANGED_LOG
|
||||||
ERROR_VARIABLE Subversion_svn_log_error
|
ERROR_VARIABLE Subversion_svn_log_error
|
||||||
RESULT_VARIABLE Subversion_svn_log_result
|
RESULT_VARIABLE Subversion_svn_log_result
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
@ -106,13 +118,10 @@ IF(Subversion_SVN_EXECUTABLE)
|
|||||||
IF(NOT ${Subversion_svn_log_result} EQUAL 0)
|
IF(NOT ${Subversion_svn_log_result} EQUAL 0)
|
||||||
MESSAGE(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}\" failed with output:\n${Subversion_svn_log_error}")
|
MESSAGE(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}\" failed with output:\n${Subversion_svn_log_error}")
|
||||||
ENDIF(NOT ${Subversion_svn_log_result} EQUAL 0)
|
ENDIF(NOT ${Subversion_svn_log_result} EQUAL 0)
|
||||||
ENDMACRO(Subversion_WC_INFO)
|
ENDMACRO(Subversion_WC_LOG)
|
||||||
|
|
||||||
ENDIF(Subversion_SVN_EXECUTABLE)
|
ENDIF(Subversion_SVN_EXECUTABLE)
|
||||||
|
|
||||||
# restore the previous LC_ALL
|
|
||||||
SET(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL})
|
|
||||||
|
|
||||||
IF(NOT Subversion_FOUND)
|
IF(NOT Subversion_FOUND)
|
||||||
IF(NOT Subversion_FIND_QUIETLY)
|
IF(NOT Subversion_FIND_QUIETLY)
|
||||||
MESSAGE(STATUS "Subversion was not found.")
|
MESSAGE(STATUS "Subversion was not found.")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user