Make FindBISON work properly with non-C locales (#11326)
Applying the patch attached to http://public.kitware.com/Bug/view.php?id=11326 It sets LC_ALL to C before calling execute_process(), so the output is in english. Alex
This commit is contained in:
parent
00b327fed8
commit
506805c999
@ -51,12 +51,19 @@ FIND_PROGRAM(BISON_EXECUTABLE bison DOC "path to the bison executable")
|
|||||||
MARK_AS_ADVANCED(BISON_EXECUTABLE)
|
MARK_AS_ADVANCED(BISON_EXECUTABLE)
|
||||||
|
|
||||||
IF(BISON_EXECUTABLE)
|
IF(BISON_EXECUTABLE)
|
||||||
|
# the bison commands should be executed with the C locale, otherwise
|
||||||
|
# the message (which are parsed) may be translated
|
||||||
|
SET(_Bison_SAVED_LC_ALL "$ENV{LC_ALL}")
|
||||||
|
SET(ENV{LC_ALL} C)
|
||||||
|
|
||||||
EXECUTE_PROCESS(COMMAND ${BISON_EXECUTABLE} --version
|
EXECUTE_PROCESS(COMMAND ${BISON_EXECUTABLE} --version
|
||||||
OUTPUT_VARIABLE BISON_version_output
|
OUTPUT_VARIABLE BISON_version_output
|
||||||
ERROR_VARIABLE BISON_version_error
|
ERROR_VARIABLE BISON_version_error
|
||||||
RESULT_VARIABLE BISON_version_result
|
RESULT_VARIABLE BISON_version_result
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
SET(ENV{LC_ALL} ${_Bison_SAVED_LC_ALL})
|
||||||
|
|
||||||
IF(NOT ${BISON_version_result} EQUAL 0)
|
IF(NOT ${BISON_version_result} EQUAL 0)
|
||||||
MESSAGE(SEND_ERROR "Command \"${BISON_EXECUTABLE} --version\" failed with output:\n${BISON_version_error}")
|
MESSAGE(SEND_ERROR "Command \"${BISON_EXECUTABLE} --version\" failed with output:\n${BISON_version_error}")
|
||||||
ELSE()
|
ELSE()
|
||||||
@ -115,7 +122,7 @@ IF(BISON_EXECUTABLE)
|
|||||||
IF("${ARGV5}" STREQUAL "VERBOSE")
|
IF("${ARGV5}" STREQUAL "VERBOSE")
|
||||||
BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${ARGV6}")
|
BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${ARGV6}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF("${ARGV5}" STREQUAL "COMPILE_FLAGS")
|
IF("${ARGV5}" STREQUAL "COMPILE_FLAGS")
|
||||||
BISON_TARGET_option_extraopts("${ARGV6}")
|
BISON_TARGET_option_extraopts("${ARGV6}")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
@ -125,10 +132,10 @@ IF(BISON_EXECUTABLE)
|
|||||||
LIST(APPEND BISON_TARGET_cmdopt "-d")
|
LIST(APPEND BISON_TARGET_cmdopt "-d")
|
||||||
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${ARGV2}")
|
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${ARGV2}")
|
||||||
STRING(REPLACE "c" "h" _fileext ${_fileext})
|
STRING(REPLACE "c" "h" _fileext ${_fileext})
|
||||||
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
|
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
|
||||||
BISON_${Name}_OUTPUT_HEADER "${ARGV2}")
|
BISON_${Name}_OUTPUT_HEADER "${ARGV2}")
|
||||||
LIST(APPEND BISON_TARGET_outputs "${BISON_${Name}_OUTPUT_HEADER}")
|
LIST(APPEND BISON_TARGET_outputs "${BISON_${Name}_OUTPUT_HEADER}")
|
||||||
|
|
||||||
ADD_CUSTOM_COMMAND(OUTPUT ${BISON_TARGET_outputs}
|
ADD_CUSTOM_COMMAND(OUTPUT ${BISON_TARGET_outputs}
|
||||||
${BISON_TARGET_extraoutputs}
|
${BISON_TARGET_extraoutputs}
|
||||||
COMMAND ${BISON_EXECUTABLE}
|
COMMAND ${BISON_EXECUTABLE}
|
||||||
@ -136,7 +143,7 @@ IF(BISON_EXECUTABLE)
|
|||||||
DEPENDS ${ARGV1}
|
DEPENDS ${ARGV1}
|
||||||
COMMENT "[BISON][${Name}] Building parser with bison ${BISON_VERSION}"
|
COMMENT "[BISON][${Name}] Building parser with bison ${BISON_VERSION}"
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
# define target variables
|
# define target variables
|
||||||
SET(BISON_${Name}_DEFINED TRUE)
|
SET(BISON_${Name}_DEFINED TRUE)
|
||||||
SET(BISON_${Name}_INPUT ${ARGV1})
|
SET(BISON_${Name}_INPUT ${ARGV1})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user