]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - cmake/CMakeDA.cmake
Matching with a TPC track for clean-up (Jochen)
[u/mrichter/AliRoot.git] / cmake / CMakeDA.cmake
index 26adc11dedbcaa4cda0cebc92e6cc6d67ba373f0..937d716daa05cd6832ab43769a086cb1da6d4d0b 100644 (file)
@@ -66,13 +66,15 @@ endfunction()
 
 foreach(oldetect ${ONLINEDETECTORS})
 detector_module(h_module ${oldetect})
-list(APPEND mod "-I${ALICE_ROOT}/${h_module}")
+  list(APPEND mod "-I${CMAKE_SOURCE_DIR}/${h_module}")
 endforeach(oldetect ${ONLINEDETECTORS})
-list(APPEND mod "-I${ALICE_ROOT}/include" "-I${ALICE_ROOT}/STEER" "-I${ALICE_ROOT}/ANALYSIS" "-I${ALICE_ROOT}/RAW" "-I${ALICE_ROOT}/STEER/STEER" "-I${ALICE_ROOT}/STEER/CDB" "-I${ROOTSYS}/include" "-I${ALICE_ROOT}/STEER/STEERBase" "-I${ALICE_ROOT}/STEER/AOD" "-I${ALICE_ROOT}/STEER/ESD" "-I${ALICE_ROOT}/MUON/mapping" "-I$ENV{AMORE}/include/amore")
+list(APPEND mod "-I${CMAKE_SOURCE_DIR}/include" "-I${CMAKE_SOURCE_DIR}/STEER" "-I${CMAKE_SOURCE_DIR}/ANALYSIS" "-I${CMAKE_SOURCE_DIR}/RAW" "-I${CMAKE_SOURCE_DIR}/STEER/STEER" "-I${CMAKE_SOURCE_DIR}/STEER/CDB" "-I${ROOTINCDIR}" "-I${CMAKE_SOURCE_DIR}/STEER/STEERBase" "-I${CMAKE_SOURCE_DIR}/STEER/AOD" "-I${CMAKE_SOURCE_DIR}/STEER/ESD" "-I${CMAKE_SOURCE_DIR}/MUON/mapping" "-I$ENV{AMORE}/include/amore")
 
 # ----------Common stuff-------------------
 
-file(GLOB_RECURSE _dafiles $ENV{ALICE_ROOT}/*da.cxx)
+#file(GLOB_RECURSE _dafiles $ENV{ALICE_ROOT}/*da.cxx)
+file(GLOB_RECURSE _dafiles ${CMAKE_SOURCE_DIR}/*da.cxx)
+
 set (DAINSTALL "$ENV{ALICE_INSTALL}/DA")
 if(DAINSTALL STREQUAL "/DA") 
   set(DAINSTALL "$ENV{ALICE_ROOT}/DA")
@@ -96,17 +98,22 @@ endif(AMORE_FOUND)
 
 execute_process(COMMAND ${XML2} --libs OUTPUT_VARIABLE _xml2libs OUTPUT_STRIP_TRAILING_WHITESPACE)
 execute_process(COMMAND ${DATE_CONFIG} --monitorlibs=noshift OUTPUT_VARIABLE MONITORLIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
-execute_process(COMMAND $ENV{AMORE}/amore-config --ldflags-da-static OUTPUT_VARIABLE _amore1 OUTPUT_STRIP_TRAILING_WHITESPACE)
+execute_process(COMMAND $ENV{AMORE}/bin/amore-config --ldflags-da-static OUTPUT_VARIABLE _amore1 OUTPUT_STRIP_TRAILING_WHITESPACE)
+execute_process(COMMAND $ENV{AMORE}/bin/amore-config --auxlibs  OUTPUT_VARIABLE _amore3 OUTPUT_STRIP_TRAILING_WHITESPACE)
 execute_process(COMMAND date-config --rcproxylibs OUTPUT_VARIABLE _amore2 OUTPUT_STRIP_TRAILING_WHITESPACE)
 execute_process(COMMAND date-config --monitorlibs=noshift OUTPUT_VARIABLE _monitor1 OUTPUT_STRIP_TRAILING_WHITESPACE)
 string(REPLACE "\n" " " _amore1 "${_amore1}") 
-set(AMOREDALIBS "-static ${_amore1} ${_amore2}")
-set(MONITORLIBS "${_monitor1}")
-
+set(AMOREDALIBS " ${_amore1} ${_amore2}")
+set(AMOREDADLIBS " ${_amore3} ${_amore2}")
+set(MONITORLIBS "${_monitor1} -lssl")
 separate_arguments(MONITORLIBS)
 separate_arguments(AMOREDALIBS)
+separate_arguments(AMOREDADLIBS)
 set(SYSLIBS -ldl -lpthread ${_xml2libs})
-
+set(DATE_CFLAGS "${DATEFLAGS}")
+separate_arguments(DATE_CFLAGS)
+set(ROOTDLIBS "${ROOTCLIBS} -lRMySQL")
+separate_arguments(ROOTDLIBS)
 
 set(EXTRAROOTLIB "libRootExtra.a")
 set(ROOTLIB "RootExtra")
@@ -123,7 +130,7 @@ else()
 endif(DAQDALIB_PATH)
 set(DAQDALIB "${DAQDADIR}/libdaqDA.a")
 
-include_directories(${DAQDADIR} ${ALICE_ROOT}/RAW ${ALICE_ROOT}/include ${ALICE_ROOT}/STEER)
+include_directories(${DAQDADIR} ${CMAKE_SOURCE_DIR}/RAW ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/STEER)
 include_directories(SYSTEM ${ROOTINCDIR})
 
 # ----------Create All Valid targets---------
@@ -139,6 +146,7 @@ foreach(detector ${ONLINEDETECTORS} )
   #ALIROOTALIBS
 
   set(ALIROOTALIBS)
+  set(ALIROOTDLIBS)
        set(BASIC_TARGET "daqDA-${ONLINEDETECTORNAME}-all")
        add_custom_target(${BASIC_TARGET}
        WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
@@ -148,20 +156,25 @@ foreach(detector ${ONLINEDETECTORS} )
        WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
         )
  list(APPEND ALIROOTALIBS RAWDatabase-static RAWDatarec-static RAWDatasim-static STEERBase-static STEER-static CDB-static ESD-static STAT-static AOD-static ANALYSIS-static ANALYSISalice-static )
+  list(APPEND ALIROOTDLIBS -lRAWDatabase -lRAWDatarec -lRAWDatasim -lSTEERBase -lSTEER -lCDB -lESD -lSTAT -lAOD -lANALYSIS -lANALYSISalice )
 
   expand(ALIROOTALIBS2 "\${${DAMODULE}ALIBS}")
+  expand(ALIROOTDLIBS2 "\${${DAMODULE}LIBS}")
   expand(DAINCDIRS "\${${DAMODULE}INC}")
   list(APPEND ALIROOTALIBS ${ALIROOTALIBS2})
+  foreach (detlib ${ALIROOTDLIBS2}) 
+    list(APPEND ALIROOTDLIBS "-l${detlib}")
+  endforeach(detlib ${ALIROOTDLIBS2})  
+  # list(APPEND ALIROOTDLIBS ${ALIROOTDLIBS2})
   
   include_directories(${DAMODULE} ${SUBDIR} ${DAINCDIRS})
 #Get detector algorithms for this detector
-
   foreach(dafile ${_dafiles})
 
-       string(REGEX MATCH "$ENV{ALICE_ROOT}/${DAMODULE}/${DAMODULE}${SUBDAMODULE}" match ${dafile})
+    string(REGEX MATCH "${CMAKE_SOURCE_DIR}/${DAMODULE}/${DAMODULE}${SUBDAMODULE}" match ${dafile})
 #Found a valid target name
        if(match)
-          string(REGEX REPLACE "$ENV{ALICE_ROOT}/${DAMODULE}/${DAMODULE}${SUBDAMODULE}(.*)da\\.cxx" "\\1" DANAME ${dafile})
+      string(REGEX REPLACE "${CMAKE_SOURCE_DIR}/${DAMODULE}/${DAMODULE}${SUBDAMODULE}(.*)da\\.cxx" "\\1" DANAME ${dafile})
 #Check for default DA 
          if(DANAME)
            set(DATARGETNAME "daqDA-${ONLINEDETECTORNAME}-${DANAME}")
@@ -177,10 +190,14 @@ foreach(detector ${ONLINEDETECTORS} )
          set(DALIB "${DAMODULE}${SUBDAMODULE}${DANAME}DA")
          set(DAEXE "${DAMODULE}${SUBDAMODULE}${DANAME}da.exe")
          set(DADEP "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.d") 
+
        # DAVERSION
-         execute_process(COMMAND svn info $ENV{ALICE_ROOT}/${DASRC} OUTPUT_VARIABLE _daversion OUTPUT_STRIP_TRAILING_WHITESPACE)
+      execute_process(COMMAND svn info ${CMAKE_SOURCE_DIR}/${DASRC} OUTPUT_VARIABLE _daversion OUTPUT_STRIP_TRAILING_WHITESPACE)
          string(REGEX REPLACE ".*Last Changed Rev: ([^\n]+)\n.*" "\\1" DAVERSION ${_daversion})
 
+       #DAREVISION
+         execute_process(COMMAND svn info ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE _darevision OUTPUT_STRIP_TRAILING_WHITESPACE)
+          string(REGEX REPLACE ".*Revision: ([^\n]+)\n.*" "\\1" DAREVISION ${_darevision})
        # DAROOTRELEASE 
          execute_process(COMMAND root-config --version OUTPUT_VARIABLE _darootrelease OUTPUT_STRIP_TRAILING_WHITESPACE)
          string(REGEX REPLACE "/" "." DAROOTRELEASE ${_darootrelease})
@@ -190,14 +207,14 @@ foreach(detector ${ONLINEDETECTORS} )
           string (REPLACE "-" "." DAALIROOTRELEASE "${DAALIROOTRELEASE}")
        
          set(DAARCNAME "${DATARGETNAME}")
-         string(REPLACE "-" "" DAARCNAME "${DAARCNAME}")
+         #string(REPLACE "-" "" DAARCNAME "${DAARCNAME}")
          set(DAARC "${DAARCNAME}-${DAVERSION}")
          set(DATAR "${DATARGETDIR}/${DAARC}.src.tar.gz")
          set(DASPECFILE "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.spec")
          set(DAMAKEFILE "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.make")
 
   
-         file(READ "$ENV{ALICE_ROOT}/${DASRC}" _dasrc)
+      file(READ "${CMAKE_SOURCE_DIR}/${DASRC}" _dasrc)
          getinfo(DACONTACT "Contact" ${_dasrc})
          getinfo(DALINKPAGE "Link" ${_dasrc})
          getinfo(DAREFRUN "Reference Run" ${_dasrc})
@@ -296,7 +313,7 @@ COMMAND @echo 'DAQDALIB=$$(DAQDADIR)/libdaqDA.a' >> ${DAMAKEFILE}
 #COMMAND @echo 'MONITORLIBS=${monitor1}' >> ${DAMAKEFILE}
 COMMAND @echo "" >> ${DAMAKEFILE}
 COMMAND @echo "${DAMODULE}${SUBDAMODULE}${DANAME}da.exe: ${DAMODULE}${SUBDAMODULE}${DANAME}da.o" >> ${DAMAKEFILE}
-COMMAND @echo -e '\t$$(LD) $$(LDFLAGS) -o ''$$''@ ''$$''< ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${DALIB}.a ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${EXTRAROOTLIB} $$(ROOTSYS)/lib/libRoot.a $$(ROOTSYS)/lib/libfreetype.a $$(ROOTSYS)/lib/libpcre.a ${SYSLIBS} $$(DAQDALIB) ${AMOREDALIBS} ${MONITORLIBS}' >> ${DAMAKEFILE}
+COMMAND @echo -e '\t$$(LD) $$(LDFLAGS) -o ''$$''@ ''$$''< ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${DALIB}.a ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${EXTRAROOTLIB} $$(ROOTSYS)/lib/libRoot.a $$(ROOTSYS)/lib/liblzma.a $$(ROOTSYS)/lib/libfreetype.a $$(ROOTSYS)/lib/libpcre.a ${SYSLIBS} $$(DAQDALIB) ${AMOREDALIBS} ${MONITORLIBS}' >> ${DAMAKEFILE}
 COMMAND @echo "" >> ${DAMAKEFILE}
 COMMAND @echo "${DAMODULE}${SUBDAMODULE}${DANAME}da.o: ${DAMODULE}${SUBDAMODULE}${DANAME}da.cxx" >> ${DAMAKEFILE}
 COMMAND @echo -e '\t$$(CXX) -c $$(CXXFLAGS) -I$$(DAQDADIR) ${mod} ''$$''< -o ''$$''@' >> ${DAMAKEFILE}
@@ -319,7 +336,7 @@ COMMAND @echo "***** Making archive ${DATAR} *****"
 COMMAND rm -rf ${DATAR}
 COMMAND rm -rf junk
 COMMAND mkdir junk && mkdir junk/${DAARC} 
-COMMAND cp -a ${ALICE_ROOT}/${DASRC} junk/${DAARC} 
+       COMMAND cp -a ${CMAKE_SOURCE_DIR}/${DASRC} junk/${DAARC} 
 COMMAND cp -a ${DAMAKEFILE} junk/${DAARC}/Makefile 
 COMMAND cp -a ${DASPECFILE} junk/${DAARC}/${DAMODULE}${SUBDAMODULE}${DANAME}da.spec
 COMMAND cd junk && tar czf ${DATAR} * 
@@ -337,7 +354,7 @@ COMMAND @echo '\# RPM specfile for $(DAMODULE)${SUBDAMODULE}$(DANAME) Detector A
 COMMAND @echo "Summary: ${ONLINEDETECTORNAME} Detector Algorithm" >> ${DASPECFILE}
 COMMAND @echo "Name: ${DAARCNAME}" >> ${DASPECFILE}
 COMMAND @echo "Version: ${DAVERSION}" >> ${DASPECFILE}
-COMMAND @echo "Release: ${DAALIROOTRELEASE}" >> ${DASPECFILE}
+COMMAND @echo "Release: ${DAALIROOTRELEASE}.${DAREVISION}" >> ${DASPECFILE}
 COMMAND @echo "License: CERN Alice DAQ/Offine" >> ${DASPECFILE}
 COMMAND @echo "Source: %{name}-%{version}.src.tar.gz" >> ${DASPECFILE}
 COMMAND @echo "Group: Applications/Alice" >> ${DASPECFILE}
@@ -434,7 +451,7 @@ add_custom_command(TARGET ${DATARGETNAME}-rpm
 COMMAND mkdir -p ${CMAKE_BINARY_DIR}/junk/SOURCES ${CMAKE_BINARY_DIR}/junk/SPECS ${CMAKE_BINARY_DIR}/junk/BUILD ${CMAKE_BINARY_DIR}/junk/RPMS ${CMAKE_BINARY_DIR}/junk/SRPMS
 COMMAND cp ${DATAR} ${CMAKE_BINARY_DIR}/junk/SOURCES
 COMMAND rpmbuild --verbose --define "_topdir ${CMAKE_BINARY_DIR}/junk" --nodeps -bb ${DASPECFILE}
-COMMAND cp -p `find ${CMAKE_BINARY_DIR}/junk/ -name "${DAARC}-*.rpm"` . ;
+COMMAND cp `find './junk/' -name '${DAARC}*.rpm'` ./ 
 COMMAND rm -rf junk
 COMMAND echo "***** RPMS created and put ${CMAKE_BINARY_DIR} folder *****"
 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}  
@@ -443,13 +460,11 @@ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
 
 add_custom_target(${DAEXE}
 COMMAND echo "***** Making executable ${DAEXE} *****"
-COMMAND g++ ${LDFLAGS} ${DAOBJ} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${DALIB}.a ${EXTRAROOTLIB} ${ROOTSYS}/lib/libRoot.a ${ROOTSYS}/lib/libfreetype.a ${ROOTSYS}/lib/libpcre.a ${SYSLIBS} ${DAQDALIB} ${AMOREDALIBS} ${MONITORLIBS} -o ${DAEXE}
+COMMAND g++ ${LDFLAGS} ${DAOBJ} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${DALIB}.a ${EXTRAROOTLIB} ${ROOTSYS}/lib/libRoot.a ${ROOTSYS}/lib/liblzma.a ${ROOTSYS}/lib/libfreetype.a ${ROOTSYS}/lib/libpcre.a  ${SYSLIBS} ${DAQDALIB} ${AMOREDALIBS} ${MONITORLIBS} -o ${DAEXE}
 WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
 )
 
 
-#target_link_libraries(${DAEXE} "-L" "lib${DALIB}.a" ${DAOBJ} ${EXTRAROOTLIB} "${ROOTALIBDIR}/libRoot.a" "${ROOTALIBDIR}/libfreetype.a" "${ROOTALIBDIR}/libpcre.a" ${SYSLIBS} ${DAQDALIB} ${MONITORLIBS} ${AMOREDALIBS})
-
 add_dependencies(${DAEXE} ${DASRC} DAOBJ_${DAEXE}_ ${BINPATH} ${LIBPATH} ${DALIB}.a ${DAQDALIB} ${ROOTLIB})
 
 add_custom_target(DAOBJ_${DAEXE}_
@@ -457,19 +472,19 @@ add_custom_target(DAOBJ_${DAEXE}_
 add_custom_command(
 TARGET DAOBJ_${DAEXE}_
 COMMAND echo "***** Compiling ${DASRC} *****"
-COMMAND g++ -c -DLinux -DDATE_SYS=Linux -Dlong32="int" -Dlong64="long long" -DdatePointer="long" -I/date/rorc -I/date/runControl -I/date/readList -I/date/eventBuilder -I/date/banksManager -I/date/bufferManager -I/date/db -I/date/commonDefs -I/date/monitoring -I/date/infoLogger -I/date/logbook -I${DAQDADIR} -I${ALICE_ROOT}/RAW -I${CMAKE_BINARY_DIR}/include -I$ENV{ROOTSYS}/include ${mod} ${date_head} ${ALICE_ROOT}/${DASRC} -o ${DAOBJ}
-WORKING_DIRECTORY ${ALICE_ROOT} 
+COMMAND echo "${DFLAGS}"
+       COMMAND g++ -c ${AMOREDEFINITIONS} -D${CMAKE_SYSTEM_NAME} ${DATE_CFLAGS} -I${DATE_ROOT}/infoLogger -I${DATE_ROOT}/logbook -I${DAQDADIR} -I${CMAKE_SOURCE_DIR}/RAW -I${CMAKE_BINARY_DIR}/include -I${ROOTINCDIR} ${mod} ${date_head} ${CMAKE_SOURCE_DIR}/${DASRC} -o ${DAOBJ}
+       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}  
 )
 add_dependencies(DAOBJ_${DAEXE}_ DADEP_${DAEXE}_ )
 
 
-
 add_custom_target(DADEP_${DAEXE}_)
 add_custom_command(
 TARGET DADEP_${DAEXE}_
 COMMAND echo "***** Making detector-algorithm dependencies ${DADEP} *****"
-COMMAND g++ -MM -DLinux -DDATE_SYS=Linux -Dlong32="int" -Dlong64="long long" -DdatePointer="long" -I/date/rorc -I/date/runControl -I/date/readList -I/date/eventBuilder -I/date/banksManager -I/date/bufferManager -I/date/db -I/date/commonDefs -I/date/monitoring -I/date/infoLogger -I/date/logbook -I${DAQDADIR} -I${ALICE_ROOT}/RAW -I${CMAKE_BINARY_DIR}/include -I$ENV{ROOTSYS}/include ${mod} ${date_head} ${ALICE_ROOT}/${DASRC} > ${DADEP}
-WORKING_DIRECTORY ${ALICE_ROOT}
+       COMMAND g++ -MM ${DATE_CFLAGS} -I${DAQDADIR} -I${CMAKE_SOURCE_DIR}/RAW -I${CMAKE_BINARY_DIR}/include -I${ROOTINCDIR} ${mod} ${date_head} ${CMAKE_SOURCE_DIR}/${DASRC} > ${DADEP}
+       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}  
 )