Find{Java,JNI}: Consider JAVA_HOME before ENV{JAVA_HOME}
Add a helper module CMakeFindJavaCommon shared between FindJava and FindJNI to select a JAVA_HOME value. Prefer a CMake variable or cache entry first, then an environment variable.
This commit is contained in:
parent
4b3614b25a
commit
fcd66a7f7b
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Copyright 2013-2014 Kitware, Inc.
|
||||||
|
#
|
||||||
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
|
#=============================================================================
|
||||||
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
|
# License text for the above reference.)
|
||||||
|
|
||||||
|
# Do not include this module directly from code outside CMake!
|
||||||
|
set(_JAVA_HOME "")
|
||||||
|
if(JAVA_HOME AND IS_DIRECTORY "${JAVA_HOME}")
|
||||||
|
set(_JAVA_HOME "${JAVA_HOME}")
|
||||||
|
set(_JAVA_HOME_EXPLICIT 1)
|
||||||
|
else()
|
||||||
|
set(_ENV_JAVA_HOME "")
|
||||||
|
if(DEFINED ENV{JAVA_HOME})
|
||||||
|
file(TO_CMAKE_PATH "$ENV{JAVA_HOME}" _ENV_JAVA_HOME)
|
||||||
|
endif()
|
||||||
|
if(_ENV_JAVA_HOME AND IS_DIRECTORY "${_ENV_JAVA_HOME}")
|
||||||
|
set(_JAVA_HOME "${_ENV_JAVA_HOME}")
|
||||||
|
set(_JAVA_HOME_EXPLICIT 1)
|
||||||
|
endif()
|
||||||
|
unset(_ENV_JAVA_HOME)
|
||||||
|
endif()
|
|
@ -6,7 +6,10 @@
|
||||||
#
|
#
|
||||||
# This module finds if Java is installed and determines where the
|
# This module finds if Java is installed and determines where the
|
||||||
# include files and libraries are. It also determines what the name of
|
# include files and libraries are. It also determines what the name of
|
||||||
# the library is. This code sets the following variables:
|
# the library is. The caller may set variable JAVA_HOME to specify a
|
||||||
|
# Java installation prefix explicitly.
|
||||||
|
#
|
||||||
|
# This module sets the following result variables:
|
||||||
#
|
#
|
||||||
# ::
|
# ::
|
||||||
#
|
#
|
||||||
|
@ -91,7 +94,7 @@ macro(java_append_library_directories _var)
|
||||||
endforeach()
|
endforeach()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
file(TO_CMAKE_PATH "$ENV{JAVA_HOME}" _JAVA_HOME)
|
include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake)
|
||||||
|
|
||||||
set(JAVA_AWT_LIBRARY_DIRECTORIES)
|
set(JAVA_AWT_LIBRARY_DIRECTORIES)
|
||||||
if(_JAVA_HOME)
|
if(_JAVA_HOME)
|
||||||
|
|
|
@ -5,8 +5,10 @@
|
||||||
# Find Java
|
# Find Java
|
||||||
#
|
#
|
||||||
# This module finds if Java is installed and determines where the
|
# This module finds if Java is installed and determines where the
|
||||||
# include files and libraries are. This code sets the following
|
# include files and libraries are. The caller may set variable JAVA_HOME
|
||||||
# variables:
|
# to specify a Java installation prefix explicitly.
|
||||||
|
#
|
||||||
|
# This module sets the following result variables:
|
||||||
#
|
#
|
||||||
# ::
|
# ::
|
||||||
#
|
#
|
||||||
|
@ -67,7 +69,7 @@
|
||||||
# (To distribute this file outside of CMake, substitute the full
|
# (To distribute this file outside of CMake, substitute the full
|
||||||
# License text for the above reference.)
|
# License text for the above reference.)
|
||||||
|
|
||||||
file(TO_CMAKE_PATH "$ENV{JAVA_HOME}" _JAVA_HOME)
|
include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake)
|
||||||
|
|
||||||
# The HINTS option should only be used for values computed from the system.
|
# The HINTS option should only be used for values computed from the system.
|
||||||
set(_JAVA_HINTS)
|
set(_JAVA_HINTS)
|
||||||
|
|
Loading…
Reference in New Issue