lcio
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
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 )