[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