Commit in lcio on MAIN
CMakeLists.txt+92-301.77 -> 1.78
do not remove src/cpp/include/{IO,EVENT} with make jar / make clean

lcio
CMakeLists.txt 1.77 -> 1.78
diff -u -r1.77 -r1.78
--- CMakeLists.txt	28 Jun 2010 15:38:19 -0000	1.77
+++ CMakeLists.txt	29 Jun 2010 09:21:20 -0000	1.78
@@ -89,28 +89,35 @@
     MESSAGE( FATAL_ERROR "Please set JAVA_HOME correctly!!" )
 ENDIF()
 
+
+SET( LCIO_AID_HEADERS_DIR "${LCIO_SOURCE_DIR}/src/aid" )
+SET( LCIO_CXX_HEADERS_DIR "${LCIO_SOURCE_DIR}/src/cpp/include" )
+SET( LCIO_JAVA_HEADERS_DIR "${LCIO_SOURCE_DIR}/src/java/hep/lcio" )
+SET( AID_GEN_CXX_HEADERS_DIR "${LCIO_BINARY_DIR}/include" )
+
+
 # set environment variables to generate header files and jar library
-#SET( ENV{JDK_HOME} "${JAVA_HOME}" )
-#SET( ENV{JAVA_HOME} "${JAVA_HOME}" )
-#SET( ENV{LCIO} "${PROJECT_SOURCE_DIR}" )
-#SET( ENV{PATH} "${PROJECT_SOURCE_DIR}/tools:${JAVA_BIN_PATH}:$ENV{PATH}" )
+SET( ENV{JDK_HOME} "${JAVA_HOME}" )
+SET( ENV{JAVA_HOME} "${JAVA_HOME}" )
+SET( ENV{LCIO} "${PROJECT_SOURCE_DIR}" )
+SET( ENV{PATH} "${PROJECT_SOURCE_DIR}/tools:${JAVA_BIN_PATH}:$ENV{PATH}" )
 
 # generate header files ( ant aid.generate )
-#IF( NOT EXISTS "${PROJECT_SOURCE_DIR}/src/cpp/include/EVENT/LCIO.h" )
-#
-#    MESSAGE( STATUS "Generating header files with ant aid.generate..." )
-#    EXEC_PROGRAM( ant "${PROJECT_SOURCE_DIR}"
-#        ARGS aid.generate
-#        OUTPUT_VARIABLE out_tmp
-#        RETURN_VALUE out_ret )
-#    # check if everything went ok
-#    IF( NOT out_ret )
-#        MESSAGE( STATUS "Header files successfully generated..." )
-#    ELSE()
-#        MESSAGE( STATUS "Error generating header files!!" )
-#        MESSAGE( FATAL_ERROR "${out_tmp}" )
-#    ENDIF()
-#ENDIF()
+IF( NOT EXISTS "${LCIO_CXX_HEADERS_DIR}/EVENT/LCIO.h" )
+
+    MESSAGE( STATUS "Generating header files with ant aid.generate..." )
+    EXEC_PROGRAM( ant "${PROJECT_SOURCE_DIR}"
+        ARGS aid.generate
+        OUTPUT_VARIABLE out_tmp
+        RETURN_VALUE out_ret )
+    # check if everything went ok
+    IF( NOT out_ret )
+        MESSAGE( STATUS "Header files successfully generated..." )
+    ELSE()
+        MESSAGE( STATUS "Error generating header files!!" )
+        MESSAGE( FATAL_ERROR "${out_tmp}" )
+    ENDIF()
+ENDIF()
 
 # generate lcio jar library ( ant aid )
 #IF( NOT EXISTS "${PROJECT_SOURCE_DIR}/lib/lcio.jar" )
@@ -129,14 +136,6 @@
 #    ENDIF()
 #ENDIF()
 
-SET( LCIO_AID_HEADERS_DIR "${LCIO_SOURCE_DIR}/src/aid" )
-SET( LCIO_CXX_HEADERS_DIR "${LCIO_SOURCE_DIR}/src/cpp/include" )
-SET( LCIO_JAVA_HEADERS_DIR "${LCIO_SOURCE_DIR}/src/java/hep/lcio" )
-SET( AID_GEN_CXX_HEADERS_DIR "${LCIO_BINARY_DIR}/include" )
-
-# add custom target for building all documentation
-ADD_CUSTOM_TARGET( doc )
-
 # code for *nix only!
 IF( UNIX )
 
@@ -170,6 +169,47 @@
         )
      ENDIF()
 
+
+    # c++ headers are needed for documentation
+    #ADD_CUSTOM_COMMAND(
+    #    OUTPUT  "${LCIO_CXX_HEADERS_DIR}/EVENT" # "${LCIO_CXX_HEADERS_DIR}/IO"
+    #    COMMAND ${SH} "${LCIO_ENV_INIT}" ant aid.generate
+    #    WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
+    #    COMMENT "Generating header files with ant aid.generate..."
+    #    VERBATIM
+    #)
+
+    # generate cmake script for calling ant aid.generate
+    #SET( DOC_GEN_HEADERS "${PROJECT_BINARY_DIR}/doc_gen_headers.cmake" )
+    #IF( NOT EXISTS "${DOC_GEN_HEADERS}" )
+    #    MESSAGE( STATUS "Generating ${DOC_GEN_HEADERS}" )
+    #    FILE( WRITE "${DOC_GEN_HEADERS}"
+    #        "IF( NOT EXISTS ${LCIO_CXX_HEADERS_DIR}/EVENT )\n"
+    #        "EXEC_PROGRAM( ${SH} ${PROJECT_SOURCE_DIR} ARGS ${LCIO_ENV_INIT} ant aid.generate )\n"
+    #        "ENDIF( NOT EXISTS ${LCIO_CXX_HEADERS_DIR}/EVENT )\n"
+    #    )
+    #ENDIF()
+
+
+    #ADD_CUSTOM_TARGET( doc
+    #    COMMAND ${SH} "${LCIO_ENV_INIT}" ant aid.generate
+    #    WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
+    #    COMMENT "Generating header files for documentation..."
+    #    VERBATIM
+    #)
+
+    #ADD_CUSTOM_TARGET( doc
+    #    COMMAND ${CMAKE_COMMAND} -P "${DOC_GEN_HEADERS}"
+    #    WORKING_DIRECTORY "${PROJECT_BINARY_DIR}"
+    #    COMMENT "Generating header files for documentation..."
+    #    VERBATIM
+    #)
+
+    # add custom target for building all documentation
+    #ADD_CUSTOM_TARGET( doc DEPENDS "${LCIO_CXX_HEADERS_DIR}/EVENT" )
+
+    ADD_CUSTOM_TARGET( doc )
+
     # create "always out-of-date" headers target
     ADD_CUSTOM_TARGET( headers
         COMMAND ${SH} "${LCIO_ENV_INIT}" ant aid.generate
@@ -183,8 +223,9 @@
         # cmake 2.4 does not know remove_directory
         #COMMAND ${CMAKE_COMMAND} -E remove_directory "${LCIO_CXX_HEADERS_DIR}/EVENT"
         #COMMAND ${CMAKE_COMMAND} -E remove_directory "${LCIO_CXX_HEADERS_DIR}/IO"
-        COMMAND rm -rf "${LCIO_CXX_HEADERS_DIR}/EVENT"
-        COMMAND rm -rf "${LCIO_CXX_HEADERS_DIR}/IO"
+        # cannot be removed due to documentation
+        #COMMAND rm -rf "${LCIO_CXX_HEADERS_DIR}/EVENT"
+        #COMMAND rm -rf "${LCIO_CXX_HEADERS_DIR}/IO"
         WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
         COMMENT "Building lcio jar library..."
         VERBATIM )
@@ -192,13 +233,14 @@
     # tell make clean to also erase lcio.jar
     # unfortunately ADDITIONAL_MAKE_CLEAN_FILES does not work with regexp, e.g. ${LCIO_JAVA_HEADERS_DIR}/event/*.java
     SET_DIRECTORY_PROPERTIES( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
-        "${PROJECT_SOURCE_DIR}/lib/lcio.jar;${PROJECT_SOURCE_DIR}/src/cpp/include/EVENT;${PROJECT_SOURCE_DIR}/src/cpp/include/IO"
+        "${PROJECT_SOURCE_DIR}/lib/lcio.jar;" # ${LCIO_CXX_HEADERS_DIR}/EVENT;${LCIO_CXX_HEADERS_DIR}/IO"
     )
 
     #JAVADOC
     IF( JAVA_DOC )
         ADD_CUSTOM_COMMAND(
             OUTPUT "${PROJECT_SOURCE_DIR}/doc/api/index.html"
+            #COMMAND ${CMAKE_COMMAND} -P "${DOC_GEN_HEADERS}"
             COMMAND ${SH} ARGS "${LCIO_ENV_INIT}" ant doc
             WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
             COMMENT "Building Java API Documentation..."
@@ -225,6 +267,7 @@
     # c++ documentation
     ADD_CUSTOM_COMMAND(
         OUTPUT  "${PROJECT_SOURCE_DIR}/doc/doxygen_api/html"
+        #COMMAND ${CMAKE_COMMAND} -P "${DOC_GEN_HEADERS}"
         COMMAND "${DOXYGEN_EXECUTABLE}"
         WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/doc/doxygen_api"
         COMMENT "Building C++ API Documentation..."
@@ -242,8 +285,13 @@
             "${PROJECT_BINARY_DIR}/manual"
         VERBATIM )
 
+    SET_DIRECTORY_PROPERTIES( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
+        "${PROJECT_BINARY_DIR}/manual"
+    )
+
     ADD_CUSTOM_COMMAND(
         OUTPUT  "${PROJECT_SOURCE_DIR}/doc/manual.pdf"
+        #COMMAND ${CMAKE_COMMAND} -P "${DOC_GEN_HEADERS}"
         COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode manual.tex
         COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode manual.tex
         COMMAND "${DVIPS_CONVERTER}" ARGS -q -o manual.ps manual.dvi
@@ -268,6 +316,7 @@
     ADD_CUSTOM_COMMAND(
         #OUTPUT  "${PROJECT_SOURCE_DIR}/doc/doxygen_api/latex/refman.dvi"
         OUTPUT  "${PROJECT_SOURCE_DIR}/doc/lciorefman.ps" "${PROJECT_SOURCE_DIR}/doc/lciorefman.pdf"
+        #COMMAND ${CMAKE_COMMAND} -P "${DOC_GEN_HEADERS}"
         # FIXME: latex returns error, using | xargs at the end ignores the exit code error
         COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode refman.tex | xargs
         COMMAND "${LATEX_COMPILER}" ARGS -interaction=batchmode refman.tex | xargs
@@ -387,15 +436,28 @@
     COMMAND "${CMAKE_COMMAND}" -E remove "${PROJECT_SOURCE_DIR}/doc/manual.pdf"
     COMMAND "${CMAKE_COMMAND}" -E remove "${PROJECT_SOURCE_DIR}/doc/lciorefman.ps"
     COMMAND "${CMAKE_COMMAND}" -E remove "${PROJECT_SOURCE_DIR}/doc/lciorefman.pdf"
+
+    # cmake 2.4 does not know remove_directory
+    #COMMAND "${CMAKE_COMMAND}" -E remove_directory "${LCIO_CXX_HEADERS_DIR}/EVENT"
+    #COMMAND "${CMAKE_COMMAND}" -E remove_directory "${LCIO_CXX_HEADERS_DIR}/IO"
+    
     # cmake 2.4 does not know remove_directory
     #COMMAND "${CMAKE_COMMAND}" -E remove_directory "${PROJECT_SOURCE_DIR}/doc/api"
     #COMMAND "${CMAKE_COMMAND}" -E remove_directory "${PROJECT_SOURCE_DIR}/doc/manual_html"
     #COMMAND "${CMAKE_COMMAND}" -E remove_directory "${PROJECT_SOURCE_DIR}/doc/doxygen_api/html"
     #COMMAND "${CMAKE_COMMAND}" -E remove_directory "${PROJECT_SOURCE_DIR}/doc/doxygen_api/latex"
+
+    #COMMAND rm -rf "${LCIO_CXX_HEADERS_DIR}/{EVENT,IO}
+    COMMAND rm -rf "${LCIO_CXX_HEADERS_DIR}/EVENT"
+    COMMAND rm -rf "${LCIO_CXX_HEADERS_DIR}/IO"
+
+    COMMAND rm -rf "${PROJECT_BINARY_DIR}/manual"
+
     COMMAND rm -rf "${PROJECT_SOURCE_DIR}/doc/api"
     COMMAND rm -rf "${PROJECT_SOURCE_DIR}/doc/manual_html"
     COMMAND rm -rf "${PROJECT_SOURCE_DIR}/doc/doxygen_api/html"
     COMMAND rm -rf "${PROJECT_SOURCE_DIR}/doc/doxygen_api/latex"
+    
     COMMAND ${SH} "${LCIO_ENV_INIT}" ant clean
     WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
 )
CVSspam 0.2.8