Set of fixes for the DA + updated documentation (Johny)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 16:56:16 +0000 (16:56 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 16:56:16 +0000 (16:56 +0000)
CMakeLists.txt
ITS/ITSSPDFOda.cxx
ITS/ITSSPDPHYSda.cxx
ITS/ITSSPDSCANda.cxx
README_CMake
cmake/ALICE_CMake.cmake
cmake/CMakeDA.cmake
cmake/FindAMORE.cmake

index d20347e..932c987 100644 (file)
@@ -100,11 +100,19 @@ set(BINLIBDIRS "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 # Exclude Module from all target
 # ------------------------------
 
-set(EXCLUDEMODULES THydjet SHUTTLE)
+#set(EXCLUDEMODULES THydjet SHUTTLE)
 
 # Standard Modules
 # ------------------------------
-set(ALIROOTMODULES STEER PHOS TRD TPC ZDC MUON PMD FMD TOF ITS ACORDE HMPID T0 BCM STRUCT VZERO THijing THbtp EMCAL THerwig TEPEMGEN FASTSIM TPHIC RAW MONITOR ANALYSIS JETAN HLT LHC ESDCheck STAT TTherminator CORRFW DPMJET TDPMjet PWG0 PWG1 PWG2 PWG3 PWG4 TRIGGER THydjet PYTHIA8)
+set(ALIROOTMODULES STEER PHOS TRD TPC ZDC MUON PMD FMD TOF ITS ACORDE HMPID T0 BCM STRUCT VZERO THijing THbtp EMCAL THerwig TEPEMGEN FASTSIM TPHIC RAW MONITOR ANALYSIS JETAN HLT LHC ESDCheck STAT TTherminator CORRFW DPMJET TDPMjet PWG0 PWG1 PWG2 PWG3 PWG4 TRIGGER PYTHIA8 )
+
+if(THydjet)
+  list(APPEND ALIROOTMODULES THydjet)
+endif(THydjet)
+
+if(SHUTTLE)
+  list(APPEND ALIROOTMODULES SHUTTLE)
+endif(SHUTTLE)
 
 # Additional Modules
 # ------------------------------
@@ -126,7 +134,7 @@ if(EXISTS ${ROOTINCDIR}/TPythia6.h)
   set(PYTHIA6 TRUE)
   list(APPEND CERNMODULES PYTHIA6 RALICE EVGEN)
 else()
-  message(FATAL_ERROR "Pythia6 is required !")
+  message(FATAL_ERROR "ROOT must have Pythia6 enabled !")
 endif(EXISTS ${ROOTINCDIR}/TPythia6.h)
 
 # Set Final list of modules 
@@ -171,16 +179,16 @@ set(EXPORTFILES)
 
 add_custom_target(alilibs-static)
 add_custom_target(include-headers)
-
+add_custom_target(DA-all)
 # Add Modules
 # ------------------------------
 foreach(MODULE ${MODDIRS})
+  set(${MODULE}ALIBS)
   configure_file(${PROJECT_SOURCE_DIR}/cmake/Module.tmp ${PROJECT_SOURCE_DIR}/${MODULE}/CMakeLists.txt @ONLY)
   add_custom_target(${MODULE}-all ALL)
   add_custom_target(${MODULE}-static)
   add_dependencies(alilibs-static "${MODULE}-static")
   add_subdirectory(${MODULE})
-
 endforeach(MODULE)
 
 if(DATE_FOUND AND AMORE_FOUND)
index 48c60d3..e835347 100644 (file)
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
   
   // turn off annoying warning messages
   // NB: Should not be handled here 
-  AliLog logger = AliLog::GetRootLogger();
+  AliLog* logger = AliLog::GetRootLogger();
   logger->SetGlobalDebugLevel(-20);
   
 // ********* STEP 0: Get configuration files from db (if there are any) , then read parameters*********  
index a9792cc..2ed9a18 100644 (file)
@@ -98,7 +98,7 @@ int main(int argc, char **argv) {
 
   // turn off annoying warning messages
   // NB: Should not be handled here
-  AliLog logger = AliLog::GetRootLogger();
+  AliLog* logger = AliLog::GetRootLogger();
   logger->SetGlobalDebugLevel(-20);
 
   // ********* STEP 0: Get configuration files from db (if there are any) , then read parameters*********
index 85132e7..a57286a 100644 (file)
@@ -86,7 +86,7 @@ int main(int argc, char **argv) {
 
   // turn off annoying warning messages
   // NB: Should not be handled here
-  AliLog logger = AliLog::GetRootLogger();
+  AliLog* logger = AliLog::GetRootLogger();
   logger->SetGlobalDebugLevel(-20);
 
   // calib scan types
index fb0eec9..70b0985 100644 (file)
@@ -1,20 +1,28 @@
+
+Note: The CMake build of AliRoot builds out-of-source
+
 Steps to Build AliRoot with CMake :
 
-1. Define environment variable ALICE_INSTALL
-       export ALICE_INSTALL=$ALICE/AliRootInstall
+1. Check out Aliroot source into any folder
+       
+       svn co http://alisoft.cern.ch/AliRoot/trunk ~/trunk
 
-2. Set Path to point to binaries and libraries that will be built in ALICE_INSTALL
-       export PATH=$PATH:$ALICE_INSTALL/bin/tgt_${ALICE_TARGET}
-       export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ALICE_INSTALL/lib/tgt_${ALICE_TARGET}
+2. Create a new folder and set the environment variable ALICE_ROOT to point to it
+       
+       mkdir AliRoot
+       cd AliRoot
+       export ALICE_ROOT=`pwd`
 
 3. Execute the following commands to build AliRoot
-       cd $ALICE_INSTALL
-       cmake <path_to_source> 
+
+       cmake ~/trunk
        make
 
-4. In order to build addtional targets like TFluka, THydjet and SHUTTLE add the following options to the cmake command
-       cmake -DTFLUKA=ON -DTHYDJET=ON -DSHUTTLE=ON <path_to_source>
+4. In order to build addtional targets like THydjet and SHUTTLE add the following options to the cmake command
+
+       cmake -DTHydjet=ON -DSHUTTLE=ON <path_to_source>
+
 
-!IMPORTANT! : Make sure you delete all the files in your ALICE_INSTALL directory before you generate the Makefile again to clear the CMakeCache or the generated build system may not function properly.
+!IMPORTANT! - Make sure your source folder is clean. If you used the old make system to build aliroot run make clean in the source directory before you run cmake
  
 
index 0603fbc..de3286d 100644 (file)
@@ -306,15 +306,17 @@ macro(ALICE_BuildPackage)
   endif(CINTAUTOLINK)
 
   if(lib)
-    list(APPEND ${MODULE}LIBS ${PACKAGE})
+    list(APPEND PMLIBS ${PACKAGE})
     list(APPEND ALLLIBS ${PACKAGE})
-    list(APPEND ${MODULE}ALIBS ${PACKAGE}_a)
+    list(APPEND PMALIBS ${PACKAGE}_a)
     list(APPEND ALLALIBS ${PACKAGE}_a)
     list(APPEND BINLIBS ${PACKAGE})
   else()
     list(APPEND ALLEXECS ${PACKAGE})
   endif(lib)
-
+  set(${MODULE}ALIBS "${PMALIBS}" PARENT_SCOPE)
+  set(${MODULE}LIBS "${PMLIBS}" PARENT_SCOPE)
+  set(${MODULE}INC "${EINCLUDE}" PARENT_SCOPE)
   list(APPEND INCLUDEFILES ${PEXPORTDEST})
   ALICE_CopyHeaders()
   if(WITHDICT)  
index a93db6f..3350ef1 100644 (file)
@@ -5,6 +5,16 @@ cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR)
 #list of detectors 
 set(ONLINEDETECTORS SPD SDD SSD TPC TRD TOF HMP PHS CPV PMD MCH MTR FMD T00 V00 ZDC ACO TRI EMC HLT TST GRP)
 
+function(expand output input)
+    string(REGEX MATCH "\\\${[^}]*}" m "${input}")
+    while(m)
+        string(REGEX REPLACE "\\\${(.*)}" "\\1" v "${m}")
+        string(REPLACE "\${${v}}" "${${v}}" input "${input}")
+        string(REGEX MATCH "\\\${[^}]*}" m "${input}")
+    endwhile()
+    set("${output}" "${input}" PARENT_SCOPE)
+endfunction()
+
 #function to get module for detector
 function (detector_module _module detector)
   #Map of online detectors to DA in pairs of ONLINEDETECTORNAME DAMODULE
@@ -85,25 +95,33 @@ else()
 endif(DAQDALIB_PATH)
 set(DAQDALIB "${DAQDADIR}/libdaqDA.a")
 
-include_directories(${DAQDADIR} RAW include)
+include_directories(${DAQDADIR} RAW include STEER)
 include_directories(SYSTEM ${ROOTINCDIR})
 
 # ----------Create All Valid targets---------
          
 foreach(detector ${ONLINEDETECTORS} )
-  
-  #ALIROOTALIBS
-
-  set(ALIROOTALIBS)
-
-  list(APPEND ALIROOTALIBS RAWDatabase_a RAWDatarec_a RAWDatasim_a STEERBase_a STEER_a CDB_a ESD_a STAT_a AOD_a )
 
   set(ONLINEDETECTORNAME ${detector})
 
   detector_module(DAMODULE ${ONLINEDETECTORNAME})
 
   detector_subda(SUBDAMODULE ${ONLINEDETECTORNAME})
+  
+  #ALIROOTALIBS
 
+  set(ALIROOTALIBS)
+
+  list(APPEND ALIROOTALIBS RAWDatabase_a RAWDatarec_a RAWDatasim_a STEERBase_a STEER_a CDB_a ESD_a STAT_a AOD_a )
+
+  expand(ALIROOTALIBS2 "\${${DAMODULE}ALIBS}")
+  expand(DAINCDIRS "\${${DAMODULE}INC}")
+  list(APPEND ALIROOTALIBS ${ALIROOTALIBS2})
+  
+  message("Listing sub directories for ${DAMODULE}")
+  message("${DAINCDIRS}")
+  
+  include_directories(${DAMODULE} ${SUBDIR} ${DAINCDIRS})
 #Get detector algorithms for this detector
 
   foreach(dafile ${_dafiles})
@@ -124,7 +142,7 @@ foreach(detector ${ONLINEDETECTORS} )
 
          set(DASRC "${DAMODULE}/${DAMODULE}${SUBDAMODULE}${DANAME}da.cxx")
          set(DALIB "${DAMODULE}${SUBDAMODULE}${DANAME}DA")
-         set(DAEXE "${DAMODULE}${SUBDAMODULE}${DANAME}da")
+         set(DAEXE "${DAMODULE}${SUBDAMODULE}${DANAME}da.exe")
          
        # DAVERSION
          execute_process(COMMAND svn info $ENV{ALICE_ROOT}/${DASRC} OUTPUT_VARIABLE _daversion OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -144,16 +162,7 @@ foreach(detector ${ONLINEDETECTORS} )
          set(DAMAKEFILE "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.make")
 
 
-# Super Duper Hack :D
-         file(GLOB _damodule "$ENV{ALICE_ROOT}/${DAMODULE}/lib${DAMODULE}*.pkg" )
-         
-         foreach(_submodule ${_damodule})
-           string(REGEX REPLACE ".*lib(${DAMODULE}.*)" "\\1" _submodule ${_submodule})
-           string(REGEX REPLACE "\\.pkg" "_a" _submodule ${_submodule})
-           list(APPEND ALIROOTALIBS "${_submodule}")     
-         endforeach(_submodule)
-         
-         list(REMOVE_DUPLICATES ALIROOTALIBS)
+          
          if(EXTRADAMODULE)
            ##**set
          endif(EXTRADAMODULE)
@@ -175,34 +184,35 @@ foreach(detector ${ONLINEDETECTORS} )
 
 #----------- Targets ----------------------
 
-         set(CMAKE_CXX_FLAGS ${CXXFLAGS})
-         set(CMAKE_C_FLAGS ${CFLAGS})
+         set(CMAKE_CXX_FLAGS "${CXXFLAGS}")
+         set(CMAKE_C_FLAGS "${CFLAGS}")
          set(CMAKE_Fortran_FLAGS ${FFLAGS})
          set(CMAKE_SHARED_LINKER_FLAGS ${SOFLAGS}) 
          set(CMAKE_MODULE_LINKER_FLAGS ${LDFLAGS})
 
          set(ZIP)
+         message("${DAEXE}- ${DAMODULE} - ${ALIROOTALIBS}")
          foreach(_lib ${ALIROOTALIBS})
           string(REGEX REPLACE "-all" "_a" _lib ${_lib})
           list(APPEND ZIP && ar x "../lib${_lib}.a")
          endforeach(_lib)
-         list (APPEND ZIP && ar r "../${DALIB}.a" "*.o")
-         add_custom_target("${DALIB}_x" rm -rf junk && mkdir -p junk 
+         list (APPEND ZIP && ar r "../lib${DALIB}.a" "*.o")
+
+         add_custom_target( ${DALIB} COMMAND rm -rf junk && mkdir -p junk 
                                COMMAND cd junk ${ZIP}
                                COMMAND cd ../ && rm -rf junk
                                DEPENDS ${ALIROOTALIBS}
                                WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
 
-         add_custom_target(${DATARGETNAME} DEPENDS ${DAEXE} )
-         add_executable(${DAEXE} ${DASRC} )
+         add_custom_target(${DATARGETNAME})
+         add_executable(${DAEXE} ${DASRC})
          set_property(TARGET ${DAEXE} PROPERTY EXCLUDE_FROM_ALL TRUE)
-         add_dependencies(${DAEXE} ${DALIB}_x)
-         target_link_libraries(${DAEXE} "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DALIB}.a" ${EXTRAROOTLIB} "${ROOTLIBDIR}/libRoot.a" "${ROOTLIBDIR}/libfreetype.a" "${ROOTLIBDIR}/libpcre.a" ${SYSLIBS} ${DAQDALIB} ${MONITORLIBS} ${AMOREDALIBS})
+         add_dependencies(${DAEXE} ${DALIB})
+         add_dependencies(DA-all ${DATARGETNAME})
+         target_link_libraries(${DAEXE} "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${DALIB}.a" ${EXTRAROOTLIB} "${ROOTLIBDIR}/libRoot.a" "${ROOTLIBDIR}/libfreetype.a" "${ROOTLIBDIR}/libpcre.a" ${SYSLIBS} ${DAQDALIB} ${MONITORLIBS} ${AMOREDALIBS})
+         add_dependencies(${DATARGETNAME} ${DAEXE})
          
-#        add_custom_command(TARGET ${DAEXE} 
-#                      PRE_LINK
-#                      COMMAND ${CMAKE_AR} r ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${EXTRAROOTLIB} ${_extraroot})
+
        endif(match)
   endforeach(dafile)
 endforeach(detector)
index 5287bdd..fc6a55c 100644 (file)
@@ -10,7 +10,7 @@ if(AMORE_CONFIG)
   set(AMORE_FOUND TRUE)
   set(AMOREDEFINITIONS "-DALI_AMORE")
   execute_process(COMMAND ${AMORE_CONFIG} --cflags --includes OUTPUT_VARIABLE AMOREFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
-  execute_process(COMMAND ${AMORE_CONFIG} --ldflags-da-static OUTPUT_VARIABLE _lddaflags OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND ${AMORE_CONFIG} --ldflags --ldflags-da-static --libs OUTPUT_VARIABLE _lddaflags OUTPUT_STRIP_TRAILING_WHITESPACE)
   ALICE_CleanOutput(_lddaflags "${_lddaflags}")
   if(DATE_FOUND)
     execute_process(COMMAND ${DATE_CONFIG} --rcproxylibs OUTPUT_VARIABLE _rcproxylib OUTPUT_STRIP_TRAILING_WHITESPACE)