Fix FindMaven.cmake on Windows

Signed-off-by: Jeroen Koekkoek <jeroen@koekkoek.nl>
This commit is contained in:
Jeroen Koekkoek 2019-02-17 23:05:11 +01:00
parent a54ebff1c3
commit 86d3972ad9

View file

@ -18,20 +18,13 @@ if(DEFINED ENV{M2_HOME})
endif() endif()
# Maven documentation mentions intalling maven under C:\Program Files on # Maven documentation mentions intalling maven under C:\Program Files on
# Windows and under /opt on *NIX platforms # Windows and under /opt on *NIX platforms.
if(WIN32) if(WIN32)
set(_program_files_env "ProgramFiles") foreach(_env "ProgramFiles" "ProgramFiles(x86)")
set(_program_files $ENV{${_program_files_env}}) if(ENV{${_env}} AND IS_DIRECTORY "$ENV{${_env}}")
set(_program_files_x86_env "ProgramFiles(x86)") list(APPEND _dirs "$ENV{${_env}}")
set(_program_files_x86 $ENV{${_program_files_x86_env}})
if(_program_files)
list(APPEND _dirs "${_program_files}")
endif()
if(_program_files_x86)
list(APPEND _dirs "${_program_files_x86}")
endif() endif()
endforeach()
else() else()
list(APPEND _dirs "/opt") list(APPEND _dirs "/opt")
endif() endif()
@ -45,14 +38,20 @@ foreach(_dir ${_dirs})
endforeach() endforeach()
endforeach() endforeach()
if(WIN32)
set(_mvn_names "mvn.cmd" "mvn.exe")
else()
set(_mvn_names "mvn")
endif()
find_program(Maven_EXECUTABLE find_program(Maven_EXECUTABLE
NAMES mvn NAMES ${_mvn_names}
HINTS ${_mvn_hints} HINTS ${_mvn_hints}
PATHS ${_mvn_paths}) PATHS ${_mvn_paths})
if(Maven_EXECUTABLE) if(Maven_EXECUTABLE)
execute_process(COMMAND ${Maven_EXECUTABLE} -version execute_process(COMMAND ${Maven_EXECUTABLE} -version
RESULT_VARIABLE result RESULT_VARIABLE res
OUTPUT_VARIABLE var OUTPUT_VARIABLE var
ERROR_VARIABLE var ERROR_VARIABLE var
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
@ -67,8 +66,8 @@ endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Maven find_package_handle_standard_args(Maven
FOUND_VAR Maven_FOUND FOUND_VAR Maven_FOUND
REQUIRED_VARS Maven_EXECUTABLE VERSION_VAR Maven_VERSION
VERSION_VAR Maven_VERSION) REQUIRED_VARS Maven_EXECUTABLE Maven_VERSION)
mark_as_advanced(Maven_FOUND Maven_EXECUTABLE Maven_VERSION) mark_as_advanced(Maven_FOUND Maven_EXECUTABLE Maven_VERSION)