Commit in lcio on MAIN
BuildSetup.cmake+11.4 -> 1.5
CMakeLists.txt+69-351.23 -> 1.24
+70-35
2 modified files
added INSTALL_JAR option and check if java version >= 1.5.0 for enabling jar target and INSTALL_JAR

lcio
BuildSetup.cmake 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- BuildSetup.cmake	3 Jul 2007 09:00:12 -0000	1.4
+++ BuildSetup.cmake	3 Jul 2007 09:52:45 -0000	1.5
@@ -39,6 +39,7 @@
 
 #SET( BUILD_SHARED_LIBS OFF CACHE BOOL "Set to OFF to build static libraries" FORCE )
 #SET( INSTALL_DOC OFF CACHE BOOL "Set to OFF to skip build/install Documentation" FORCE )
+#SET( INSTALL_JAR OFF CACHE BOOL "Set to OFF to skip build/install lcio.jar" FORCE )
 #SET( BUILD_LCIO_TESTJOBS ON CACHE BOOL "Set to ON to build LCIO testjobs" FORCE )
 #SET( BUILD_F77_TESTJOBS ON CACHE BOOL "Set to ON to build LCIO F77 testjobs" FORCE )
 

lcio
CMakeLists.txt 1.23 -> 1.24
diff -u -r1.23 -r1.24
--- CMakeLists.txt	3 Jul 2007 09:00:12 -0000	1.23
+++ CMakeLists.txt	3 Jul 2007 09:52:45 -0000	1.24
@@ -26,6 +26,7 @@
 OPTION( BUILD_LCIO_TESTJOBS "Set to ON to build LCIO testjobs" OFF )
 OPTION( BUILD_F77_TESTJOBS "Set to ON to build LCIO F77 testjobs" OFF )
 OPTION( INSTALL_DOC "Set to OFF to skip build/install Documentation" ON )
+OPTION( INSTALL_JAR "Set to OFF to skip build/install lcio.jar" ON )
 
 # set default cmake build type to RelWithDebInfo
 IF( NOT CMAKE_BUILD_TYPE )
@@ -145,8 +146,15 @@
 IF( out_ret )
     MESSAGE( STATUS "Error executing java -version!!" )
 ENDIF()
-STRING( REGEX REPLACE ".* version \"([0-9]+\\.[0-9]+\\.[0-9]+).*"
-        "\\1" java_version "${out_tmp}" )
+# extract major/minor version and patch level from "java -version" output
+STRING( REGEX REPLACE ".* version \"([0-9]+)\\.[0-9]+\\.[0-9]+.*"
+        "\\1" java_major_ver "${out_tmp}" )
+STRING( REGEX REPLACE ".* version \"[0-9]+\\.([0-9]+)\\.[0-9]+.*"
+        "\\1" java_minor_ver "${out_tmp}" )
+STRING( REGEX REPLACE ".* version \"[0-9]+\\.[0-9]+\\.([0-9]+).*"
+        "\\1" java_patch_lev "${out_tmp}" )
+
+SET( java_version "${java_major_ver}.${java_minor_ver}.${java_patch_lev}" )
 
 # display info
 MESSAGE( STATUS "JDK_HOME and JAVA_HOME set to ${java_path}" )
@@ -176,16 +184,6 @@
     ENDIF()
 ENDIF()
 
-# generate shell script for setting environment
-# and calling ant aid
-MESSAGE( STATUS "Generating shell script for calling ant..." )
-FILE( WRITE "${CMAKE_BINARY_DIR}/script.sh"
-            "export LCIO=${CMAKE_SOURCE_DIR}\n"
-            "export JDK_HOME=${java_path}\n"
-            "export JAVA_HOME=${java_path}\n"
-            "export PATH=${java_bin_path}:${CMAKE_SOURCE_DIR}/tools:$PATH\n"
-            "ant $1" )
-
 # find shell
 FIND_PROGRAM( SH
   sh
@@ -198,11 +196,58 @@
 )
 MARK_AS_ADVANCED( SH )
 
-IF( SH-NOTFOUND )
-    MESSAGE( STATUS "Unix Shell not found - cannot enable jar target!!" )
-ELSE()
+IF( SH )
+    # create "always out-of-date" headers target
+    ADD_CUSTOM_TARGET( headers
+        COMMAND ${SH} "${CMAKE_BINARY_DIR}/script.sh" aid.generate
+        WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+        COMMENT "Generating header files with ant aid.generate..."
+        VERBATIM )
+    
+    #ADD_CUSTOM_COMMAND(
+    #    OUTPUT "${CMAKE_BINARY_DIR}/src/cpp/include/EVENT/LCIO.h"
+    #    COMMAND ${SH} ARGS "${CMAKE_BINARY_DIR}/script.sh" aid.generate
+    #    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+    #    COMMENT "Generating header files with ant aid.generate..."
+    #    VERBATIM )
+    #
+    #ADD_CUSTOM_TARGET( headers DEPENDS
+    #        "${CMAKE_BINARY_DIR}/src/cpp/include/EVENT/LCIO.h" )
+ENDIF()
+
+# check if everything is ok for building lcio.jar
+IF( INSTALL_JAR )
+    IF( java_major_ver LESS 1 )
+        MESSAGE( STATUS "For building lcio.jar you need at least java 1.5.0" )
+        MESSAGE( STATUS "INSTALL_JAR forced to OFF and jar target disabled!" )
+        SET( INSTALL_JAR OFF )
+    ELSE()
+        IF( java_minor_ver LESS 5 )
+            MESSAGE( STATUS "For building lcio.jar you need at least java 1.5.0" )
+            MESSAGE( STATUS "INSTALL_JAR forced to OFF and jar target disabled!" )
+            SET( INSTALL_JAR OFF )
+        ELSE()
+            IF( SH-NOTFOUND )
+                MESSAGE( STATUS "Unix Shell needed for lcio.jar build script not found!!" )
+                MESSAGE( STATUS "INSTALL_JAR forced to OFF and jar target disabled!" )
+                SET( INSTALL_JAR OFF )
+            ENDIF()
+        ENDIF()
+    ENDIF()
+ENDIF()
 
-    # LCIO - JAVA
+IF( INSTALL_JAR )
+    # generate shell script for setting environment
+    # and calling ant aid
+    MESSAGE( STATUS "Generating shell script for calling ant..." )
+    FILE( WRITE "${CMAKE_BINARY_DIR}/script.sh"
+        "export LCIO=${CMAKE_SOURCE_DIR}\n"
+        "export JDK_HOME=${java_path}\n"
+        "export JAVA_HOME=${java_path}\n"
+        "export PATH=${java_bin_path}:${CMAKE_SOURCE_DIR}/tools:$PATH\n"
+        "ant $1" )
+
+   # LCIO - JAVA
     ADD_CUSTOM_COMMAND(
         OUTPUT "${CMAKE_SOURCE_DIR}/lib/lcio.jar"
         COMMAND ${SH} ARGS "${CMAKE_BINARY_DIR}/script.sh" aid
@@ -211,34 +256,20 @@
         VERBATIM )
 
     # create java target
-    ADD_CUSTOM_TARGET( jar ALL DEPENDS "${CMAKE_SOURCE_DIR}/lib/lcio.jar" )
+    ADD_CUSTOM_TARGET( jar DEPENDS "${CMAKE_SOURCE_DIR}/lib/lcio.jar" )
 
     # tell make clean to also erase lcio.jar
     SET_DIRECTORY_PROPERTIES( PROPERTIES
         ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_SOURCE_DIR}/lib/lcio.jar" )
 
+    # make sure jar is built before calling make install
+    INSTALL( CODE "EXEC_PROGRAM(${CMAKE_BUILD_TOOL} ${CMAKE_BINARY_DIR} ARGS jar)" )
+    
     # install jar
     INSTALL( FILES "${CMAKE_SOURCE_DIR}/lib/lcio.jar" DESTINATION lib )
-    
-    #ADD_CUSTOM_COMMAND(
-    #    OUTPUT "${CMAKE_BINARY_DIR}/src/cpp/include/EVENT/LCIO.h"
-    #    COMMAND ${SH} ARGS "${CMAKE_BINARY_DIR}/script.sh" aid.generate
-    #    WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
-    #    COMMENT "Generating header files with ant aid.generate..."
-    #    VERBATIM )
-    #
-    #ADD_CUSTOM_TARGET( headers DEPENDS
-    #        "${CMAKE_BINARY_DIR}/src/cpp/include/EVENT/LCIO.h" )
-    
-    # create "always out-of-date" headers target
-    ADD_CUSTOM_TARGET( headers
-        COMMAND ${SH} "${CMAKE_BINARY_DIR}/script.sh" aid.generate
-        WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
-        COMMENT "Generating header files with ant aid.generate..."
-        VERBATIM )
-
 ENDIF()
 
+
 # DOCUMENTATION
 FIND_PACKAGE( Doxygen )
 FIND_PACKAGE( LATEX )
@@ -407,6 +438,7 @@
 MESSAGE( STATUS "BUILD_LCIO_TESTJOBS = ${BUILD_LCIO_TESTJOBS}" )
 MESSAGE( STATUS "BUILD_F77_TESTJOBS = ${BUILD_F77_TESTJOBS}" )
 MESSAGE( STATUS "INSTALL_DOC = ${INSTALL_DOC}" )
+MESSAGE( STATUS "INSTALL_JAR = ${INSTALL_JAR}" )
 MESSAGE( STATUS "Change a value with: cmake -D<Variable>=<Value>" )
 MESSAGE( STATUS "-------------------------------------------------------------------------------" )
 MESSAGE( STATUS )
@@ -427,6 +459,8 @@
     "Set to ON to build LCIO F77 testbobs" FORCE )
 SET( INSTALL_DOC "${INSTALL_DOC}" CACHE BOOL
     "Set to OFF to skip build/install Documentation" FORCE )
+SET( INSTALL_JAR "${INSTALL_JAR}" CACHE BOOL
+    "Set to OFF to skip build/install lcio.jar" FORCE )
 
 # export build settings
 INCLUDE( CMakeExportBuildSettings )
CVSspam 0.2.8