From cfb22354b8bff1f7eddc117616a80774d456f467 Mon Sep 17 00:00:00 2001 From: Nils Gladitz Date: Sat, 28 Feb 2015 14:22:41 +0100 Subject: [PATCH] FindHg: Run hg with C locale when querying its version. LANGUAGE should be ignored when LC_ALL=C. It seems this isn't the case with hg so set both. --- Modules/FindHg.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Modules/FindHg.cmake b/Modules/FindHg.cmake index 34d763edc..bdbb79b19 100644 --- a/Modules/FindHg.cmake +++ b/Modules/FindHg.cmake @@ -63,11 +63,21 @@ find_program(HG_EXECUTABLE mark_as_advanced(HG_EXECUTABLE) if(HG_EXECUTABLE) + set(_saved_lc_all "$ENV{LC_ALL}") + set(ENV{LC_ALL} "C") + + set(_saved_language "$ENV{LANGUAGE}") + set(ENV{LANGUAGE}) + execute_process(COMMAND ${HG_EXECUTABLE} --version OUTPUT_VARIABLE hg_version ERROR_QUIET RESULT_VARIABLE hg_result OUTPUT_STRIP_TRAILING_WHITESPACE) + + set(ENV{LC_ALL} ${_saved_lc_all}) + set(ENV{LANGUAGE} ${_saved_language}) + if(hg_result MATCHES "is not a valid Win32 application") set_property(CACHE HG_EXECUTABLE PROPERTY VALUE "HG_EXECUTABLE-NOTFOUND") endif()