[Cmake-commits] [cmake-commits] malaterre committed FindJava.cmake 1.18 1.19
cmake-commits at cmake.org
cmake-commits at cmake.org
Fri Oct 30 10:49:16 EDT 2009
Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv26125
Modified Files:
FindJava.cmake
Log Message:
ENH: Update code: 1. In version 1.6.0_17, 17 is now the TWEAK version as per cmake convention. 2. Use VERSION_LESS to compare version, which simplify code 3. Enhance testing, see: https://gdcm.svn.sourceforge.net/svnroot/gdcm/Sandbox/CMakeBug/8/CMakeLists.txt
Index: FindJava.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindJava.cmake,v
retrieving revision 1.18
retrieving revision 1.19
diff -C 2 -d -r1.18 -r1.19
*** FindJava.cmake 30 Oct 2009 08:05:59 -0000 1.18
--- FindJava.cmake 30 Oct 2009 14:49:12 -0000 1.19
***************
*** 11,15 ****
# Java_VERSION_MINOR = The minor version of the package found.
# Java_VERSION_PATCH = The patch version of the package found.
! # The patch version may contains underscore '_'
#
--- 11,15 ----
# Java_VERSION_MINOR = The minor version of the package found.
# Java_VERSION_PATCH = The patch version of the package found.
! # Java_VERSION_TWEAK = The tweak version of the package found (after '_')
#
***************
*** 66,119 ****
MESSAGE( FATAL_ERROR "Error executing java -version" )
ELSE()
! # extract major/minor version and patch level from "java -version" output
! # Tested on linux using
! # 1. Sun
! # 2. OpenJDK 1.6
! # 3. GCJ 1.5
STRING( REGEX REPLACE ".* version \"([0-9]+\\.[0-9]+\\.[0-9_]+).*"
"\\1" Java_VERSION_STRING "${var}" )
! STRING( REGEX REPLACE ".* version \"([0-9]+)\\.[0-9]+\\.[0-9_]+.*"
! "\\1" Java_VERSION_MAJOR "${var}" )
! STRING( REGEX REPLACE ".* version \"[0-9]+\\.([0-9]+)\\.[0-9_]+.*"
! "\\1" Java_VERSION_MINOR "${var}" )
! STRING( REGEX REPLACE ".* version \"[0-9]+\\.[0-9]+\\.([0-9_]+).*"
! "\\1" Java_VERSION_PATCH "${var}" )
! # display info
! MESSAGE( STATUS "Java version ${Java_VERSION_STRING} configured successfully!" )
! MESSAGE( STATUS "Java version ${Java_VERSION_MAJOR}.${Java_VERSION_MINOR} configured successfully!" )
ENDIF()
! # If any version numbers are given to the command it will set the
! # following variables before loading the module:
! #
! # XXX_FIND_VERSION = full requested version string
! # XXX_FIND_VERSION_MAJOR = major version if requested, else 0
! # XXX_FIND_VERSION_MINOR = minor version if requested, else 0
! # XXX_FIND_VERSION_PATCH = patch version if requested, else 0
! # XXX_FIND_VERSION_TWEAK = tweak version if requested, else 0
! # XXX_FIND_VERSION_COUNT = number of version components, 0 to 4
! # XXX_FIND_VERSION_EXACT = true if EXACT option was given
set(_java_version_acceptable TRUE)
if( Java_FIND_VERSION )
! if( Java_FIND_VERSION_MAJOR GREATER Java_VERSION_MAJOR )
! set(_java_version_acceptable FALSE)
! endif( Java_FIND_VERSION_MAJOR GREATER Java_VERSION_MAJOR )
! if( Java_FIND_VERSION_MINOR GREATER Java_VERSION_MINOR )
set(_java_version_acceptable FALSE)
! endif( Java_FIND_VERSION_MINOR GREATER Java_VERSION_MINOR )
! # Is it exact ?
if( Java_FIND_VERSION_EXACT )
! # since GREATER operation worked ok, simply check LESS operation
! if( Java_FIND_VERSION_MAJOR LESS Java_VERSION_MAJOR )
! set(_java_version_acceptable FALSE)
! endif( Java_FIND_VERSION_MAJOR LESS Java_VERSION_MAJOR )
! if( Java_FIND_VERSION_MINOR LESS Java_VERSION_MINOR )
set(_java_version_acceptable FALSE)
! endif( Java_FIND_VERSION_MINOR LESS Java_VERSION_MINOR )
endif( Java_FIND_VERSION_EXACT )
- else( Java_FIND_VERSION )
- # no version requested we are all set
endif( Java_FIND_VERSION )
-
ENDIF(Java_JAVA_EXECUTABLE)
--- 66,113 ----
MESSAGE( FATAL_ERROR "Error executing java -version" )
ELSE()
! # extract major/minor version and patch level from "java -version" output
! # Tested on linux using
! # 1. Sun
! # 2. OpenJDK 1.6
! # 3. GCJ 1.5
! # 4. Kaffe 1.4.2
! IF(var MATCHES "java version \"[0-9]+\\.[0-9]+\\.[0-9_]+\".*")
! # This is most likely Sun / OpenJDK, or maybe GCJ-java compat layer
STRING( REGEX REPLACE ".* version \"([0-9]+\\.[0-9]+\\.[0-9_]+).*"
"\\1" Java_VERSION_STRING "${var}" )
! ELSEIF(var MATCHES "java full version \"kaffe-[0-9]+\\.[0-9]+\\.[0-9_]+\".*")
! # Kaffe style
! STRING( REGEX REPLACE "java full version \"kaffe-([0-9]+\\.[0-9]+\\.[0-9_]+).*"
! "\\1" Java_VERSION_STRING "${var}" )
! ELSE()
! message(FATAL_ERROR "regex not supported: ${var}. Please report")
! ENDIF()
! STRING( REGEX REPLACE "([0-9]+).*" "\\1" Java_VERSION_MAJOR "${Java_VERSION_STRING}" )
! STRING( REGEX REPLACE "[0-9]+\\.([0-9]+).*" "\\1" Java_VERSION_MINOR "${Java_VERSION_STRING}" )
! STRING( REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" Java_VERSION_PATCH "${Java_VERSION_STRING}" )
! # warning tweak version can be empty:
! STRING( REGEX REPLACE "[0-9]+\\.[0-9]+\\.[0-9]+\\_?([0-9]*)$" "\\1" Java_VERSION_TWEAK "${Java_VERSION_STRING}" )
! if( Java_VERSION_TWEAK STREQUAL "" ) # check case where tweak is not defined
! set(Java_VERSION ${Java_VERSION_MAJOR}.${Java_VERSION_MINOR}.${Java_VERSION_PATCH})
! else( )
! set(Java_VERSION ${Java_VERSION_MAJOR}.${Java_VERSION_MINOR}.${Java_VERSION_PATCH}.${Java_VERSION_TWEAK})
! endif( )
! # display info
! #MESSAGE( STATUS "Java version ${Java_VERSION_STRING} configured successfully!" ) # keep me, used for debug
! MESSAGE( STATUS "Java version ${Java_VERSION} configured successfully!" )
ENDIF()
! # check version if requested:
set(_java_version_acceptable TRUE)
if( Java_FIND_VERSION )
! if("${Java_VERSION}" VERSION_LESS "${Java_FIND_VERSION}")
set(_java_version_acceptable FALSE)
! endif("${Java_VERSION}" VERSION_LESS "${Java_FIND_VERSION}")
if( Java_FIND_VERSION_EXACT )
! if("${Java_VERSION}" VERSION_GREATER "${Java_FIND_VERSION}")
set(_java_version_acceptable FALSE)
! endif("${Java_VERSION}" VERSION_GREATER "${Java_FIND_VERSION}")
endif( Java_FIND_VERSION_EXACT )
endif( Java_FIND_VERSION )
ENDIF(Java_JAVA_EXECUTABLE)
More information about the Cmake-commits
mailing list