Print

Print


Commit in lcio on rio_v00-00
CMakeLists.txt+41.51 -> 1.51.2.1
src/cpp/CMakeLists.txt+1511.22 -> 1.22.2.1
+155
2 modified files
added code to build rootio example - w/ BUILD_ROOTIO variable 

lcio
CMakeLists.txt 1.51 -> 1.51.2.1
diff -u -r1.51 -r1.51.2.1
--- CMakeLists.txt	13 Dec 2008 13:13:49 -0000	1.51
+++ CMakeLists.txt	7 Jul 2009 12:48:42 -0000	1.51.2.1
@@ -29,6 +29,7 @@
 OPTION( BUILD_LCIO_TESTS "Set to ON to build LCIO tests under src/cpp/src/TESTS" OFF )
 OPTION( BUILD_LCIO_EXAMPLES "Set to ON to build LCIO examples under src/cpp/src/EXAMPLES" OFF )
 OPTION( BUILD_F77_TESTJOBS "Set to ON to build LCIO F77 testjobs" OFF )
+OPTION( BUILD_ROOTIO "Set to ON to build ROOT I/O" OFF )
 OPTION( BUILD_WITH_DCAP "Set to ON to build LCIO with dcap (dCache) support" 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 )
@@ -377,6 +378,7 @@
 MESSAGE( STATUS "BUILD_LCIO_TESTS = ${BUILD_LCIO_TESTS}" )
 MESSAGE( STATUS "BUILD_LCIO_EXAMPLES = ${BUILD_LCIO_EXAMPLES}" )
 MESSAGE( STATUS "BUILD_F77_TESTJOBS = ${BUILD_F77_TESTJOBS}" )
+MESSAGE( STATUS "BUILD_ROOTIO = ${BUILD_ROOTIO}" )
 MESSAGE( STATUS "BUILD_WITH_DCAP = ${BUILD_WITH_DCAP}" )
 MESSAGE( STATUS "INSTALL_DOC = ${INSTALL_DOC}" )
 MESSAGE( STATUS "INSTALL_JAR = ${INSTALL_JAR}" )
@@ -398,6 +400,8 @@
     "Set to ON to build LCIO examples under src/cpp/src/EXAMPLES" FORCE )
 SET( BUILD_F77_TESTJOBS "${BUILD_F77_TESTJOBS}" CACHE BOOL
     "Set to ON to build LCIO F77 testbobs" FORCE )
+SET( BUILD_ROOTIO "${BUILD_ROOTIO}" CACHE BOOL
+    "Set to ON to build LCIO ROOT I/O" FORCE )
 SET( BUILD_WITH_DCAP "${BUILD_WITH_DCAP}" CACHE BOOL
     "Set to ON to build LCIO with dcap support (dCache)" FORCE )
 SET( DCAP_HOME "${DCAP_HOME}" CACHE PATH

lcio/src/cpp
CMakeLists.txt 1.22 -> 1.22.2.1
diff -u -r1.22 -r1.22.2.1
--- CMakeLists.txt	27 Nov 2008 16:48:54 -0000	1.22
+++ CMakeLists.txt	7 Jul 2009 12:48:43 -0000	1.22.2.1
@@ -116,6 +116,144 @@
   ./src/UTIL/PIDHandler.cc
 )
 
+
+#------ root dict -----------------------------
+IF( BUILD_ROOTIO )
+
+#-----------------------------------------------------------------
+
+
+#SET( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} ) 
+#FIND_PACKAGE( ROOT )
+
+  INCLUDE( ${PROJECT_SOURCE_DIR}/FindROOT.cmake )
+
+
+  IF( ROOT_FOUND )
+    
+    
+    SET( ENV{ROOTSYS} "${ROOT_HOME}" )
+    SET( ENV{PATH} $ENV{ROOTSYS}/bin:$ENV{PATH} )
+    SET( ENV{LD_LIBRARY_PATH} $ENV{ROOTSYS}/lib:$ENV{LD_LIBRARY_PATH} )
+    
+    
+    #TODO test ROOT_FOUND and ${ROOT_HOME}/bin/rootcint
+    
+    # list of headers
+    FILE( GLOB_RECURSE lcio_headers include/*.h )
+    
+    # list of headers to exclude
+    FILE( GLOB_RECURSE exclude_headers include/empty_ignore.h include/SIO/*.h include/CPPFORT/*.h )
+    
+    # remove items to exclude
+    LIST( REMOVE_ITEM lcio_headers ${exclude_headers} )
+    
+    SET( DICT_OUTPUT_DIR "${PROJECT_BINARY_DIR}/dict" )
+    
+    # create output directory
+#    ADD_CUSTOM_COMMAND(
+#      OUTPUT  "${DICT_OUTPUT_DIR}"
+#      COMMAND "${CMAKE_COMMAND}"
+#      ARGS -E make_directory "${DICT_OUTPUT_DIR}"
+#      COMMENT "create directory ${DICT_OUTPUT_DIR}"
+#      )
+    file(MAKE_DIRECTORY ${DICT_OUTPUT_DIR})
+
+
+
+    SET( dict_lib_srcs )
+    
+    # FIXME variables must be set by FindROOT.cmake
+    #SET( cint_script "${PROJECT_BINARY_DIR}/rootcint.cmake" )
+    #FILE( WRITE "${cint_script}" "# little script to run rootcint\n" )
+    #FILE( APPEND "${cint_script}" "SET( ENV{ROOTSYS} ${ROOT_HOME} )\n" )
+    #FILE( APPEND "${cint_script}" "SET( ENV{PATH} \$ENV{ROOTSYS}/bin:\$ENV{PATH} )\n" )
+    #FILE( APPEND "${cint_script}" "SET( ENV{LD_LIBRARY_PATH} \$ENV{ROOTSYS}/lib:\$ENV{LD_LIBRARY_PATH} )\n" )
+    #FILE( APPEND "${cint_script}" "EXEC_PROGRAM( rootcint -f \${dict_src_file} -c -DHANDLE_LCIO_EXCEPTIONS=IGNORED_FOR_CINT -Iinclude \${lcio_hdr_rel_path} \${dict_hdr_file} )\n" )
+    
+    
+    FOREACH( lcio_hdr ${lcio_headers} )
+      
+      # get the relative path
+      #FILE( RELATIVE_PATH lcio_hdr_rel_path "${PROJECT_SOURCE_DIR}" ${lcio_hdr} )
+      #STRING( REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" lcio_hdr_rel_path ${lcio_hdr} )
+      FILE( RELATIVE_PATH lcio_hdr_rel_path "${CMAKE_CURRENT_SOURCE_DIR}" ${lcio_hdr} )
+      
+      # generate a basename from the header + relative path, e.g.:
+      # include/EVENT/TrackerPulse.h  -->>  include_EVENT_TrackerPulse
+      STRING( REPLACE "/" "_" dict_basename ${lcio_hdr_rel_path} )
+      STRING( REPLACE ".h" "" dict_basename ${dict_basename} )
+      
+      
+      SET( dict_hdr "${dict_basename}_Linkdef.h" )
+      SET( dict_hdr_file "${DICT_OUTPUT_DIR}/${dict_hdr}" )
+      
+      SET( dict_src "${dict_basename}_dict.cxx" )
+      SET( dict_src_file "${DICT_OUTPUT_DIR}/${dict_src}" )
+      
+      # generate dict header file
+      ADD_CUSTOM_COMMAND(
+	OUTPUT  ${dict_hdr_file}
+	COMMAND ${CMAKE_COMMAND}
+	ARGS -E echo "\\#pragma link C++ defined_in \\\"${lcio_hdr_rel_path}\\\"\; >${dict_hdr}"
+	#ARGS -E echo "\\#pragma link C++ defined_in ${lcio_hdr_rel_path}\; >${dict_hdr}"
+	WORKING_DIRECTORY "${DICT_OUTPUT_DIR}"
+	DEPENDS ${lcio_hdr}  # ${DICT_OUTPUT_DIR}
+	COMMENT "generating ${dict_hdr}"
+	)
+      
+      # generate dict source file
+      ADD_CUSTOM_COMMAND(
+	OUTPUT  ${dict_src_file}
+	#COMMAND ${ROOT_HOME}/bin/rootcint
+	#COMMAND $ENV{ROOTSYS}/bin/rootcint
+	COMMAND rootcint
+	ARGS -f ${dict_src_file} -c -DHANDLE_LCIO_EXCEPTIONS=IGNORED_FOR_CINT -Iinclude ${lcio_hdr_rel_path} ${dict_hdr_file}
+	WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+	DEPENDS ${dict_hdr_file}
+	COMMENT "generating ${dict_src}"
+	)
+      
+      LIST( APPEND dict_lib_srcs ${dict_src_file} )
+    ENDFOREACH()
+    
+    INCLUDE_DIRECTORIES( "${DICT_OUTPUT_DIR}" )
+    INCLUDE_DIRECTORIES( "${ROOT_INCLUDE_DIRS}" )
+    # FIXME next line should not be needed
+    # xxx_dict.h files should have:
+    # #include "IOIMPL/TrackerRawDataIOImpl.h"
+    # instead of:
+    # #include "include/IOIMPL/TrackerRawDataIOImpl.h"
+    INCLUDE_DIRECTORIES( "${CMAKE_CURRENT_SOURCE_DIR}" )
+    
+    ADD_LIBRARY( lib_LCIODICT ${dict_lib_srcs} )
+    
+    SET_TARGET_PROPERTIES( lib_LCIODICT PROPERTIES
+      # create *nix style library versions + symbolic links
+      VERSION ${LCIO_VERSION}
+      SOVERSION ${LCIO_SOVERSION}
+      # allow creating static and shared libs without conflicts
+      CLEAN_DIRECT_OUTPUT 1
+      # avoid conflicts between library and binary target names
+      OUTPUT_NAME lcioDict
+      )
+    
+    ADD_CUSTOM_TARGET( dict DEPENDS  lib_LCIODICT )
+        
+
+  ELSE( ROOT_FOUND ) 
+
+     MESSAGE( STATUS " NO ROOT found :-( " ) 
+
+     
+  ENDIF( ROOT_FOUND )
+ENDIF( BUILD_ROOTIO )
+#----------------------------------------------
+
+
+
+
+
 #------ require proper C++ -------
 ADD_DEFINITIONS( "-Wall -ansi -pedantic" )
 #----- need long long for int64 for now ------
@@ -208,8 +346,21 @@
   ELSE()
     MESSAGE( STATUS "Warning: didn't find curses and/or readline libraries. Cannot build lsh" )
   ENDIF()
+
+
+
+#	INCLUDE( ${PROJECT_SOURCE_DIR}/FindROOT.cmake )
+#	INCLUDE( ${PROJECT_SOURCE_DIR}/MacroLoadPackage.cmake )
+#	SET( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} ) 
+#  LOAD_PACKAGE( ROOT REQUIRED )
+
 ENDIF()
 
+IF( BUILD_ROOTIO ) 
+  ADD_LCIO_BIN( rootio )
+  TARGET_LINK_LIBRARIES( bin_rootio lib_LCIODICT ) 
+  TARGET_LINK_LIBRARIES( bin_rootio ${ROOT_LIBRARIES} )
+ENDIF( BUILD_ROOTIO )
 
 
 
CVSspam 0.2.8