From: agrigora Date: Mon, 24 Nov 2014 14:58:39 +0000 (+0100) Subject: PHOS - Fixing circular dependecies + initial DA files X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=00d82de90b2b6855a05a67f9d00db020d7f55a53 PHOS - Fixing circular dependecies + initial DA files --- diff --git a/PHOS/DA/CMakeLists.txt b/PHOS/DA/CMakeLists.txt new file mode 100644 index 00000000000..9162f78e152 --- /dev/null +++ b/PHOS/DA/CMakeLists.txt @@ -0,0 +1,71 @@ +# ************************************************************************** +# * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. * +# * * +# * Author: The ALICE Off-line Project. * +# * Contributors are mentioned in the code where appropriate. * +# * * +# * Permission to use, copy, modify and distribute this software and its * +# * documentation strictly for non-commercial purposes is hereby granted * +# * without fee, provided that the above copyright notice appears in all * +# * copies and that both the copyright notice and this permission notice * +# * appear in the supporting documentation. The authors make no claims * +# * about the suitability of this software for any purpose. It is * +# * provided "as is" without express or implied warranty. * +# ************************************************************************** + +# Module include folder +include_directories(${AliRoot_SOURCE_DIR}/PHOS/DA) + +# Additional include folders in alphabetical order +include_directories( + ${AliRoot_SOURCE_DIR}/PHOS/PHOSbase + ${AliRoot_SOURCE_DIR}/PHOS/PHOSshuttle + ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase + ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec + ${AliRoot_SOURCE_DIR}/STEER/STEERBase + ) + + +# DIM +link_directories(${DIMDIR}/${ODIR}) + +#daqDA flags +include_directories(${daqDA}) +link_directories(${daqDA}) + +# AMORE definitions +add_definitions(${AMORE_DEFINITIONS}) +include_directories(${AMORE_INCLUDE_DIR}) + +# Generating the DA executable +add_executable(PHOSBCMda PHOSBCMda.cxx) # 1 +add_executable(PHOSGAINda PHOSGAINda.cxx) # 2 +add_executable(PHOSLEDda PHOSLEDda.cxx) # 3 +add_executable(PHOSPEDda PHOSPEDda.cxx) # 4 + +set(MODULE_COMPILE_FLAGS) +set(MODULE_LINK_FLAGS) + +target_link_libraries(PHOSBCMda PHOSbase-static PHOSshuttle-static RAWDatabase-static RAWDatarec-static STEERBase-static ${DATE_MONLIBRARIES} daqDA Root RootExtra ${DATE_RCPROXYLIBRARIES}) # 1 +target_link_libraries(PHOSGAINda PHOSbase-static PHOSshuttle-static RAWDatabase-static RAWDatarec-static STEERBase-static AmoreDA daqDA ${DATE_MONLIBRARIES} Root RootExtra ${DATE_RCPROXYLIBRARIES}) # 2 +target_link_libraries(PHOSLEDda PHOSbase-static PHOSshuttle-static RAWDatabase-static RAWDatarec-static STEERBase-static AmoreDA daqDA ${DATE_MONLIBRARIES} Root RootExtra ${DATE_RCPROXYLIBRARIES}) # 3 +target_link_libraries(PHOSPEDda RAWDatabase-static RAWDatarec-static STEERBase-static AmoreDA daqDA ${DATE_MONLIBRARIES} Root RootExtra ${DATE_RCPROXYLIBRARIES}) # 4 + +# different flags +set(MODULE_COMPILE_FLAGS "${DATE_CFLAGS} ${AMORE_CFLAGS}") +set(MODULE_LINK_FLAGS "${DATE_LDFLAGS} ${AMORE_STATICLIBS} ${AMORE_AUXLIBS}") + +set_target_properties(PHOSBCMda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) +set_target_properties(PHOSBCMda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") + +set_target_properties(PHOSGAINda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) +set_target_properties(PHOSGAINda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") + +set_target_properties(PHOSLEDda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) +set_target_properties(PHOSLEDda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") + +set_target_properties(PHOSPEDda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) +set_target_properties(PHOSPEDda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") + +# Installation +install(TARGETS PHOSBCMda PHOSGAINda PHOSLEDda PHOSPEDda RUNTIME DESTINATION bin) \ No newline at end of file diff --git a/PHOS/PHOSBCMda.cxx b/PHOS/DA/PHOSBCMda.cxx similarity index 100% rename from PHOS/PHOSBCMda.cxx rename to PHOS/DA/PHOSBCMda.cxx diff --git a/PHOS/PHOSGAINda.cxx b/PHOS/DA/PHOSGAINda.cxx similarity index 100% rename from PHOS/PHOSGAINda.cxx rename to PHOS/DA/PHOSGAINda.cxx diff --git a/PHOS/PHOSLEDda.cxx b/PHOS/DA/PHOSLEDda.cxx similarity index 100% rename from PHOS/PHOSLEDda.cxx rename to PHOS/DA/PHOSLEDda.cxx diff --git a/PHOS/PHOSPEDda.cxx b/PHOS/DA/PHOSPEDda.cxx similarity index 100% rename from PHOS/PHOSPEDda.cxx rename to PHOS/DA/PHOSPEDda.cxx diff --git a/PHOS/PHOSsim/AliPHOS.cxx b/PHOS/PHOSbase/AliPHOS.cxx similarity index 100% rename from PHOS/PHOSsim/AliPHOS.cxx rename to PHOS/PHOSbase/AliPHOS.cxx diff --git a/PHOS/PHOSsim/AliPHOS.h b/PHOS/PHOSbase/AliPHOS.h similarity index 100% rename from PHOS/PHOSsim/AliPHOS.h rename to PHOS/PHOSbase/AliPHOS.h diff --git a/PHOS/PHOSrec/AliPHOSClusterizerv1.cxx b/PHOS/PHOSbase/AliPHOSClusterizerv1.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSClusterizerv1.cxx rename to PHOS/PHOSbase/AliPHOSClusterizerv1.cxx diff --git a/PHOS/PHOSrec/AliPHOSClusterizerv1.h b/PHOS/PHOSbase/AliPHOSClusterizerv1.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSClusterizerv1.h rename to PHOS/PHOSbase/AliPHOSClusterizerv1.h diff --git a/PHOS/PHOSrec/AliPHOSLink.cxx b/PHOS/PHOSbase/AliPHOSLink.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSLink.cxx rename to PHOS/PHOSbase/AliPHOSLink.cxx diff --git a/PHOS/PHOSrec/AliPHOSLink.h b/PHOS/PHOSbase/AliPHOSLink.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSLink.h rename to PHOS/PHOSbase/AliPHOSLink.h diff --git a/PHOS/PHOSrec/AliPHOSPIDv1.cxx b/PHOS/PHOSbase/AliPHOSPIDv1.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSPIDv1.cxx rename to PHOS/PHOSbase/AliPHOSPIDv1.cxx diff --git a/PHOS/PHOSrec/AliPHOSPIDv1.h b/PHOS/PHOSbase/AliPHOSPIDv1.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSPIDv1.h rename to PHOS/PHOSbase/AliPHOSPIDv1.h diff --git a/PHOS/PHOSrec/AliPHOSReconstructor.cxx b/PHOS/PHOSbase/AliPHOSReconstructor.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSReconstructor.cxx rename to PHOS/PHOSbase/AliPHOSReconstructor.cxx diff --git a/PHOS/PHOSrec/AliPHOSReconstructor.h b/PHOS/PHOSbase/AliPHOSReconstructor.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSReconstructor.h rename to PHOS/PHOSbase/AliPHOSReconstructor.h diff --git a/PHOS/PHOSrec/AliPHOSTRURawReader.cxx b/PHOS/PHOSbase/AliPHOSTRURawReader.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSTRURawReader.cxx rename to PHOS/PHOSbase/AliPHOSTRURawReader.cxx diff --git a/PHOS/PHOSrec/AliPHOSTRURawReader.h b/PHOS/PHOSbase/AliPHOSTRURawReader.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSTRURawReader.h rename to PHOS/PHOSbase/AliPHOSTRURawReader.h diff --git a/PHOS/PHOSsim/AliPHOSTick.cxx b/PHOS/PHOSbase/AliPHOSTick.cxx similarity index 100% rename from PHOS/PHOSsim/AliPHOSTick.cxx rename to PHOS/PHOSbase/AliPHOSTick.cxx diff --git a/PHOS/PHOSsim/AliPHOSTick.h b/PHOS/PHOSbase/AliPHOSTick.h similarity index 100% rename from PHOS/PHOSsim/AliPHOSTick.h rename to PHOS/PHOSbase/AliPHOSTick.h diff --git a/PHOS/PHOSrec/AliPHOSTrackSegmentMakerv1.cxx b/PHOS/PHOSbase/AliPHOSTrackSegmentMakerv1.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSTrackSegmentMakerv1.cxx rename to PHOS/PHOSbase/AliPHOSTrackSegmentMakerv1.cxx diff --git a/PHOS/PHOSrec/AliPHOSTrackSegmentMakerv1.h b/PHOS/PHOSbase/AliPHOSTrackSegmentMakerv1.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSTrackSegmentMakerv1.h rename to PHOS/PHOSbase/AliPHOSTrackSegmentMakerv1.h diff --git a/PHOS/PHOSrec/AliPHOSTracker.cxx b/PHOS/PHOSbase/AliPHOSTracker.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSTracker.cxx rename to PHOS/PHOSbase/AliPHOSTracker.cxx diff --git a/PHOS/PHOSrec/AliPHOSTracker.h b/PHOS/PHOSbase/AliPHOSTracker.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSTracker.h rename to PHOS/PHOSbase/AliPHOSTracker.h diff --git a/PHOS/PHOSrec/AliPHOSTriggerRawDigiProducer.cxx b/PHOS/PHOSbase/AliPHOSTriggerRawDigiProducer.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSTriggerRawDigiProducer.cxx rename to PHOS/PHOSbase/AliPHOSTriggerRawDigiProducer.cxx diff --git a/PHOS/PHOSrec/AliPHOSTriggerRawDigiProducer.h b/PHOS/PHOSbase/AliPHOSTriggerRawDigiProducer.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSTriggerRawDigiProducer.h rename to PHOS/PHOSbase/AliPHOSTriggerRawDigiProducer.h diff --git a/PHOS/PHOSrec/AliPHOSTriggerRawDigit.cxx b/PHOS/PHOSbase/AliPHOSTriggerRawDigit.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSTriggerRawDigit.cxx rename to PHOS/PHOSbase/AliPHOSTriggerRawDigit.cxx diff --git a/PHOS/PHOSrec/AliPHOSTriggerRawDigit.h b/PHOS/PHOSbase/AliPHOSTriggerRawDigit.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSTriggerRawDigit.h rename to PHOS/PHOSbase/AliPHOSTriggerRawDigit.h diff --git a/PHOS/PHOSrec/AliPHOSTriggerRawReader.cxx b/PHOS/PHOSbase/AliPHOSTriggerRawReader.cxx similarity index 100% rename from PHOS/PHOSrec/AliPHOSTriggerRawReader.cxx rename to PHOS/PHOSbase/AliPHOSTriggerRawReader.cxx diff --git a/PHOS/PHOSrec/AliPHOSTriggerRawReader.h b/PHOS/PHOSbase/AliPHOSTriggerRawReader.h similarity index 100% rename from PHOS/PHOSrec/AliPHOSTriggerRawReader.h rename to PHOS/PHOSbase/AliPHOSTriggerRawReader.h diff --git a/PHOS/PHOSbase/CMakeLists.txt b/PHOS/PHOSbase/CMakeLists.txt index 1ffa01661cc..9118b10775e 100644 --- a/PHOS/PHOSbase/CMakeLists.txt +++ b/PHOS/PHOSbase/CMakeLists.txt @@ -23,8 +23,7 @@ include_directories(${AliRoot_SOURCE_DIR}/PHOS/${MODULE}) include_directories(${ROOT_INCLUDE_DIRS} ${AliRoot_SOURCE_DIR}/RAW/RAWDatabase ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec - ${AliRoot_SOURCE_DIR}/PHOS/PHOSrec - ${AliRoot_SOURCE_DIR}/PHOS/PHOSsim + ${AliRoot_SOURCE_DIR}/RAW/RAWDatasim ${AliRoot_SOURCE_DIR}/PHOS/PHOSUtils ${AliRoot_SOURCE_DIR}/STEER/CDB ${AliRoot_SOURCE_DIR}/STEER/ESD @@ -34,8 +33,10 @@ include_directories(${ROOT_INCLUDE_DIRS} # Sources in alphabetical order set(SRCS + AliPHOS.cxx AliPHOSCalibData.cxx AliPHOSClusterizer.cxx + AliPHOSClusterizerv1.cxx AliPHOSCpvCalibData.cxx AliPHOSCpvRecPoint.cxx AliPHOSDigit.cxx @@ -47,6 +48,7 @@ set(SRCS AliPHOSGeometry.cxx AliPHOSHit.cxx AliPHOSImpact.cxx + AliPHOSLink.cxx AliPHOSLoader.cxx AliPHOSModuleMisalignment.cxx AliPHOSPID.cxx @@ -59,16 +61,26 @@ set(SRCS AliPHOSRawFitterv3.cxx AliPHOSRawFitterv4.cxx AliPHOSRecoParam.cxx + AliPHOSReconstructor.cxx AliPHOSRecParticle.cxx AliPHOSRecPoint.cxx + AliPHOSPIDv1.cxx AliPHOSSDigitizer.cxx AliPHOSSimParam.cxx AliPHOSSurvey1.cxx AliPHOSSurvey.cxx + AliPHOSTick.cxx + AliPHOSTracker.cxx AliPHOSTrackSegment.cxx AliPHOSTrackSegmentMaker.cxx + AliPHOSTrackSegmentMakerv1.cxx AliPHOSTrigger.cxx AliPHOSTriggerParameters.cxx + AliPHOSTriggerRawDigit.cxx + AliPHOSTriggerRawDigiProducer.cxx + AliPHOSTriggerRawReader.cxx + AliPHOSTRURawReader.cxx + ) # Headers from sources @@ -79,17 +91,25 @@ string(REPLACE ".cxx" ".h" HDRS "${SRCS}") get_directory_property(incdirs INCLUDE_DIRECTORIES) generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}") +set(ROOT_DEPENDENCIES) +set(ALIROOT_DEPENDENCIES STEERBase STEER CDB ESD RAWDatabase RAWDatarec PHOSUtils) + # Generate the ROOT map # Dependecies -set(LIBDEPS STEERBase STEER CDB ESD RAWDatabase RAWDatarec PHOSUtils PHOSrec PHOSsim) +set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES}) generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h") +# Create an object to be reused in case of static libraries +# Otherwise the sources will be compiled twice +add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx) +# Add a library to the project using the object +add_library(${MODULE} SHARED $) -# Add a library to the project using the specified source files -add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx) +# Linking +target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ALIROOT_DEPENDENCIES}) # Additional compilation flags -set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "-O -g") +set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g -fPIC") # System dependent: Modify the way the library is build if(${CMAKE_SYSTEM} MATCHES Darwin) @@ -101,4 +121,20 @@ install(TARGETS ${MODULE} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) -install(FILES ${HDRS} DESTINATION include) \ No newline at end of file +install(FILES ${HDRS} DESTINATION include) + +# Static version if DA enabled +if(ALIROOT_STATIC) + add_library(${MODULE}-static STATIC $) + set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE}) + + # list of shared dependencies / the name of the variable containing the list of static ones + generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES") + target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root) + set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive") + + # Installation + install(TARGETS ${MODULE}-static + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib) +endif(ALIROOT_STATIC) diff --git a/PHOS/PHOSbase/PHOSbaseLinkDef.h b/PHOS/PHOSbase/PHOSbaseLinkDef.h index 0be36a2d74b..b03aa903574 100644 --- a/PHOS/PHOSbase/PHOSbaseLinkDef.h +++ b/PHOS/PHOSbase/PHOSbaseLinkDef.h @@ -43,4 +43,17 @@ #pragma link C++ class AliPHOSImpact+; #pragma link C++ class AliPHOSTrigger+; +#pragma link C++ class AliPHOSTick+; +#pragma link C++ class AliPHOSReconstructor+; +#pragma link C++ class AliPHOS+; +#pragma link C++ class AliPHOSClusterizerv1+; +#pragma link C++ class AliPHOSTrackSegmentMakerv1+; +#pragma link C++ class AliPHOSPIDv1+; +#pragma link C++ class AliPHOSTracker+; +#pragma link C++ class AliPHOSTriggerRawDigiProducer+; +#pragma link C++ class AliPHOSTriggerRawDigit+; +#pragma link C++ class AliPHOSLink+; +#pragma link C++ class AliPHOSTriggerRawReader+; +#pragma link C++ class AliPHOSTRURawReader+; + #endif diff --git a/PHOS/PHOSrec/CMakeLists.txt b/PHOS/PHOSrec/CMakeLists.txt index 27d52d2a6b4..109e4d1f28f 100644 --- a/PHOS/PHOSrec/CMakeLists.txt +++ b/PHOS/PHOSrec/CMakeLists.txt @@ -36,27 +36,17 @@ include_directories(${ROOT_INCLUDE_DIRS} # Sources in alphabetical order set(SRCS AliPHOSAodCluster.cxx - AliPHOSClusterizerv1.cxx AliPHOSClusterizerv2.cxx AliPHOSEsdCluster.cxx AliPHOSEvalRecPoint.cxx AliPHOSGridFile.cxx AliPHOSIhepAnalyze.cxx - AliPHOSLink.cxx AliPHOSPIDv0.cxx - AliPHOSPIDv1.cxx AliPHOSQADataMakerRec.cxx AliPHOSRecCpvManager.cxx AliPHOSRecEmcManager.cxx AliPHOSRecManager.cxx - AliPHOSReconstructor.cxx - AliPHOSTracker.cxx - AliPHOSTrackSegmentMakerv1.cxx AliPHOSTrackSegmentMakerv2.cxx - AliPHOSTriggerRawDigiProducer.cxx - AliPHOSTriggerRawDigit.cxx - AliPHOSTriggerRawReader.cxx - AliPHOSTRURawReader.cxx ) # Headers from sources diff --git a/PHOS/PHOSrec/PHOSrecLinkDef.h b/PHOS/PHOSrec/PHOSrecLinkDef.h index 1ac1a106df3..16a16e4eb5a 100644 --- a/PHOS/PHOSrec/PHOSrecLinkDef.h +++ b/PHOS/PHOSrec/PHOSrecLinkDef.h @@ -4,9 +4,6 @@ #pragma link off all classes; #pragma link off all functions; -#pragma link C++ class AliPHOSLink+; -#pragma link C++ class AliPHOSClusterizerv1+; -#pragma link C++ class AliPHOSTrackSegmentMakerv1+; #pragma link C++ class AliPHOSTrackSegmentMakerv2+; #pragma link C++ class AliPHOSPIDv0+; #pragma link C++ class AliPHOSIhepAnalyze+; @@ -15,16 +12,8 @@ #pragma link C++ class AliPHOSRecEmcManager+; #pragma link C++ class AliPHOSClusterizerv2+; #pragma link C++ class AliPHOSEvalRecPoint+; -#pragma link C++ class AliPHOSPIDv1+; #pragma link C++ class AliPHOSGridFile+; -#pragma link C++ class AliPHOSTracker+; #pragma link C++ class AliPHOSEsdCluster+; #pragma link C++ class AliPHOSAodCluster+; #pragma link C++ class AliPHOSQADataMakerRec+; -#pragma link C++ class AliPHOSTriggerRawReader+; -#pragma link C++ class AliPHOSTRURawReader+; -#pragma link C++ class AliPHOSTriggerRawDigiProducer+; -#pragma link C++ class AliPHOSTriggerRawDigit+; - -#pragma link C++ class AliPHOSReconstructor+; #endif diff --git a/PHOS/PHOSsim/CMakeLists.txt b/PHOS/PHOSsim/CMakeLists.txt index 7d5b20dcc1c..f1da3263613 100644 --- a/PHOS/PHOSsim/CMakeLists.txt +++ b/PHOS/PHOSsim/CMakeLists.txt @@ -35,9 +35,7 @@ include_directories(${ROOT_INCLUDE_DIRS} # Sources in alphabetical order set(SRCS AliPHOSCPVDigit.cxx - AliPHOS.cxx AliPHOSQADataMakerSim.cxx - AliPHOSTick.cxx AliPHOSv0.cxx AliPHOSv1.cxx AliPHOSv2.cxx diff --git a/PHOS/PHOSsim/PHOSsimLinkDef.h b/PHOS/PHOSsim/PHOSsimLinkDef.h index b328b8ec88f..9ea2494e82b 100644 --- a/PHOS/PHOSsim/PHOSsimLinkDef.h +++ b/PHOS/PHOSsim/PHOSsimLinkDef.h @@ -4,14 +4,12 @@ #pragma link off all classes; #pragma link off all functions; -#pragma link C++ class AliPHOS+; #pragma link C++ class AliPHOSv0+; #pragma link C++ class AliPHOSv1+; #pragma link C++ class AliPHOSv2+; #pragma link C++ class AliPHOSvFast+; #pragma link C++ class AliPHOSvImpacts+; #pragma link C++ class AliPHOSCPVDigit+; -#pragma link C++ class AliPHOSTick+; #pragma link C++ class AliPHOSQADataMakerSim+; #endif