mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-23 07:28:51 -06:00
Merge branch 'backport-java-new-packaging' into java-new-packaging
Fix conflicts by combining the changes from both sides.
This commit is contained in:
@@ -120,14 +120,39 @@ if(_JAVA_HOME)
|
||||
${_JAVA_HOME}
|
||||
)
|
||||
endif()
|
||||
get_filename_component(java_install_version
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit;CurrentVersion]" NAME)
|
||||
|
||||
list(APPEND JAVA_AWT_LIBRARY_DIRECTORIES
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/lib"
|
||||
)
|
||||
if (WIN32)
|
||||
set (_JNI_HINTS)
|
||||
execute_process(COMMAND REG QUERY HKLM\\SOFTWARE\\JavaSoft\\JDK /f "." /k
|
||||
RESULT_VARIABLE _JNI_RESULT
|
||||
OUTPUT_VARIABLE _JNI_VERSIONS
|
||||
ERROR_QUIET)
|
||||
if (NOT _JNI_RESULT)
|
||||
string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\JDK\\\\[0-9\.]+" _JNI_VERSIONS "${_JNI_VERSIONS}")
|
||||
foreach (_JNI_HINT IN LISTS _JNI_VERSIONS)
|
||||
list(APPEND _JNI_HINTS "[${_JNI_HINT}\\MSI;INSTALLDIR]")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
foreach (_JNI_HINT IN LISTS _JNI_HINTS)
|
||||
list(APPEND JAVA_AWT_LIBRARY_DIRECTORIES "${_JNI_HINT}/lib")
|
||||
endforeach()
|
||||
|
||||
get_filename_component(java_install_version
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit;CurrentVersion]" NAME)
|
||||
|
||||
list(APPEND JAVA_AWT_LIBRARY_DIRECTORIES
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/lib"
|
||||
)
|
||||
endif()
|
||||
|
||||
JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_LIBRARY_DIRECTORIES
|
||||
/usr/lib/jvm/java/lib
|
||||
/usr/lib/java/jre/lib/{libarch}
|
||||
@@ -179,11 +204,21 @@ set(JAVA_AWT_INCLUDE_DIRECTORIES)
|
||||
if(_JAVA_HOME)
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES ${_JAVA_HOME}/include)
|
||||
endif()
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/include"
|
||||
)
|
||||
if (WIN32)
|
||||
foreach (_JNI_HINT IN LISTS _JNI_HINTS)
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES "${_JNI_HINT}/include")
|
||||
endforeach()
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/include"
|
||||
)
|
||||
endif()
|
||||
|
||||
JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_INCLUDE_DIRECTORIES
|
||||
/usr/lib/java/include
|
||||
@@ -330,4 +365,3 @@ set(JNI_INCLUDE_DIRS
|
||||
${JAVA_INCLUDE_PATH2}
|
||||
${JAVA_AWT_INCLUDE_PATH}
|
||||
)
|
||||
|
||||
|
||||
@@ -77,8 +77,25 @@ set(_JAVA_HINTS)
|
||||
if(_JAVA_HOME)
|
||||
list(APPEND _JAVA_HINTS ${_JAVA_HOME}/bin)
|
||||
endif()
|
||||
list(APPEND _JAVA_HINTS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\2.0;JavaHome]/bin"
|
||||
if (WIN32)
|
||||
macro (_JAVA_GET_INSTALLED_VERSIONS _KIND)
|
||||
execute_process(COMMAND REG QUERY HKLM\\SOFTWARE\\JavaSoft\\${_KIND} /f "." /k
|
||||
RESULT_VARIABLE _JAVA_RESULT
|
||||
OUTPUT_VARIABLE _JAVA_VERSIONS
|
||||
ERROR_QUIET)
|
||||
if (NOT _JAVA_RESULT)
|
||||
string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9\.]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
|
||||
foreach (_JAVA_HINT IN LISTS _JAVA_VERSIONS)
|
||||
list(APPEND _JAVA_HINTS "[${_JAVA_HINT}\\MSI;INSTALLDIR]/bin")
|
||||
endforeach()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# search for installed versions for version 9 and upper
|
||||
_JAVA_GET_INSTALLED_VERSIONS("JDK")
|
||||
_JAVA_GET_INSTALLED_VERSIONS("JRE")
|
||||
|
||||
list(APPEND _JAVA_HINTS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin"
|
||||
@@ -86,7 +103,6 @@ list(APPEND _JAVA_HINTS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\2.0;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.9;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.8;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.7;JavaHome]/bin"
|
||||
@@ -95,6 +111,8 @@ list(APPEND _JAVA_HINTS
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.4;JavaHome]/bin"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.3;JavaHome]/bin"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Hard-coded guesses should still go in PATHS. This ensures that the user
|
||||
# environment can always override hard guesses.
|
||||
set(_JAVA_PATHS
|
||||
@@ -139,15 +157,31 @@ if(Java_JAVA_EXECUTABLE)
|
||||
# Sun, GCJ, older OpenJDK
|
||||
set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
|
||||
set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
|
||||
if (CMAKE_MATCH_4)
|
||||
set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
|
||||
else()
|
||||
set(Java_VERSION_MINOR 0)
|
||||
endif()
|
||||
if (CMAKE_MATCH_6)
|
||||
set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
|
||||
else()
|
||||
set(Java_VERSION_PATCH 0)
|
||||
endif()
|
||||
set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
|
||||
elseif(var MATCHES "openjdk version \"${_java_version_regex}\"")
|
||||
# OpenJDK
|
||||
set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
|
||||
set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
|
||||
if (CMAKE_MATCH_4)
|
||||
set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
|
||||
else()
|
||||
set(Java_VERSION_MINOR 0)
|
||||
endif()
|
||||
if (CMAKE_MATCH_6)
|
||||
set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
|
||||
else()
|
||||
set(Java_VERSION_PATCH 0)
|
||||
endif()
|
||||
set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
|
||||
elseif(var MATCHES "openjdk version \"([0-9]+)-[A-Za-z]+\"")
|
||||
# OpenJDK 9 early access builds or locally built
|
||||
@@ -238,7 +272,7 @@ if(Java_FIND_COMPONENTS)
|
||||
elseif(component STREQUAL "Development")
|
||||
list(APPEND _JAVA_REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAVAC_EXECUTABLE
|
||||
Java_JAR_EXECUTABLE Java_JAVADOC_EXECUTABLE)
|
||||
if(Java_VERSION VERSION_LESS "1.10")
|
||||
if(Java_VERSION VERSION_LESS "10")
|
||||
list(APPEND _JAVA_REQUIRED_VARS Java_JAVAH_EXECUTABLE)
|
||||
if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE
|
||||
AND Java_JAVAH_EXECUTABLE AND Java_JAR_EXECUTABLE AND Java_JAVADOC_EXECUTABLE)
|
||||
@@ -276,7 +310,7 @@ if(Java_FIND_COMPONENTS)
|
||||
endif()
|
||||
else()
|
||||
# Check for Development
|
||||
if(Java_VERSION VERSION_LESS "1.10")
|
||||
if(Java_VERSION VERSION_LESS "10")
|
||||
find_package_handle_standard_args(Java
|
||||
REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
|
||||
Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
# Create C header files from java classes. These files provide the connective glue
|
||||
# that allow your Java and C code to interact.
|
||||
#
|
||||
# This command will no longer be supported starting with version 1.10 of the JDK due
|
||||
# This command will no longer be supported starting with version 10 of the JDK due
|
||||
# to the `suppression of javah tool <http://openjdk.java.net/jeps/313>`_.
|
||||
# Command ``add_jar(GENERATE_NATIVE_HEADERS)`` must be used instead.
|
||||
#
|
||||
@@ -527,7 +527,7 @@ function(add_jar _TARGET_NAME)
|
||||
if (_add_jar_GENERATE_NATIVE_HEADERS)
|
||||
# Raise an error if JDK version is less than 1.8 because javac -h is not supported
|
||||
# by earlier versions.
|
||||
if ("${Java_VERSION}" VERSION_LESS 1.8)
|
||||
if (Java_VERSION VERSION_LESS 1.8)
|
||||
message (FATAL_ERROR "ADD_JAR: GENERATE_NATIVE_HEADERS is not supported with this version of Java.")
|
||||
endif()
|
||||
cmake_parse_arguments (_add_jar_GENERATE_NATIVE_HEADERS "" "DESTINATION" "" ${_add_jar_GENERATE_NATIVE_HEADERS})
|
||||
@@ -1312,10 +1312,10 @@ function(create_javadoc _target)
|
||||
endfunction()
|
||||
|
||||
function (create_javah)
|
||||
if ("${Java_VERSION}" VERSION_GREATER_EQUAL 1.10)
|
||||
if (Java_VERSION VERSION_GREATER_EQUAL 10)
|
||||
message (FATAL_ERROR "create_javah: not supported with this Java version. Use add_jar(GENERATE_NATIVE_HEADERS) instead.")
|
||||
elseif ("${Java_VERSION}" VERSION_GREATER_EQUAL 1.8)
|
||||
message (DEPRECATION "create_javah: this command will no longer be supported starting with version 1.10 of JDK. Update your project by using command add_jar(GENERATE_NATIVE_HEADERS) instead.")
|
||||
elseif (Java_VERSION VERSION_GREATER_EQUAL 1.8)
|
||||
message (DEPRECATION "create_javah: this command will no longer be supported starting with version 10 of JDK. Update your project by using command add_jar(GENERATE_NATIVE_HEADERS) instead.")
|
||||
endif()
|
||||
|
||||
cmake_parse_arguments(_create_javah
|
||||
|
||||
Reference in New Issue
Block a user