diff --git a/Analysis/Tutorials/CMakeLists.txt b/Analysis/Tutorials/CMakeLists.txt index c9333bf941327..67c8753593d7c 100644 --- a/Analysis/Tutorials/CMakeLists.txt +++ b/Analysis/Tutorials/CMakeLists.txt @@ -18,120 +18,145 @@ o2_add_dpl_workflow(histogram-track-selection SOURCES src/histogramTrackSelection.cxx PUBLIC_LINK_LIBRARIES O2::AnalysisDataModel O2::AnalysisCore + JOB_POOL analysis COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(track-collection-iteration SOURCES src/trackCollectionIteration.cxx + JOB_POOL analysis COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(track-iteration SOURCES src/trackIteration.cxx + JOB_POOL analysis COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(full-track-iteration SOURCES src/fullTrackIteration.cxx + JOB_POOL analysis COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(collision-tracks-iteration SOURCES src/collisionTracksIteration.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(new-collections SOURCES src/newCollections.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(associated-derived SOURCES src/associatedExample.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(dynamic-columns SOURCES src/dynamicColumns.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(histograms SOURCES src/histograms.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(histograms-full-tracks SOURCES src/histogramsFullTracks.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(filters SOURCES src/filters.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(partitions SOURCES src/partitions.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(aodwriter SOURCES src/aodwriter.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(aodreader SOURCES src/aodreader.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(outputs SOURCES src/outputs.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(jet-analysis SOURCES src/jetAnalysis.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(tracks-combinations SOURCES src/tracksCombinations.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(event-mixing SOURCES src/eventMixing.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(mc-histograms SOURCES src/mcHistograms.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisDataModel O2::AnalysisCore COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(ccdbaccess SOURCES src/ccdbaccess.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::AnalysisCore O2::CCDB O2::Framework O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(weak-decay-iteration + JOB_POOL analysis SOURCES src/weakDecayIteration.cxx COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(extended-columns SOURCES src/extendedColumns.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(zdc-vzero-iteration SOURCES src/ZDCVZeroIteration.cxx + JOB_POOL analysis COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(hist-helpers-test SOURCES src/histHelpersTest.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::AnalysisDataModel O2::AnalysisCore COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(histogram-registry SOURCES src/histogramRegistry.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) @@ -145,35 +170,42 @@ o2_target_root_dictionary(ConfigurableCut o2_add_dpl_workflow(configurable-objects SOURCES src/configurableObjects.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::ConfigurableCut COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(muon-iteration SOURCES src/muonIteration.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(schema-evolution SOURCES src/schemaEvolution.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(efficiency-per-run SOURCES src/efficiencyPerRun.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(efficiency-global SOURCES src/efficiencyGlobal.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(compatible-bcs SOURCES src/compatibleBCs.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) o2_add_dpl_workflow(multiplicity-event-track-selection SOURCES src/multiplicityEventTrackSelection.cxx + JOB_POOL analysis PUBLIC_LINK_LIBRARIES O2::Framework O2::AnalysisCore O2::AnalysisDataModel COMPONENT_NAME AnalysisTutorial) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c134cb451e9b..9ec0931680f07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,10 @@ set(ALIGPU_BUILD_TYPE "O2") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) set_property(GLOBAL PROPERTY REPORT_UNDEFINED_PROPERTIES) + +set(ANALYSIS_COMPILE_POOL 1 CACHE STRING "How many parallel analysis compilation jobs") +set_property(GLOBAL PROPERTY JOB_POOLS analysis=${ANALYSIS_COMPILE_POOL}) + include(O2BuildSanityChecks) o2_build_sanity_checks() set(CMAKE_CXX_STANDARD 17) diff --git a/cmake/O2AddExecutable.cmake b/cmake/O2AddExecutable.cmake index 59b6ff3d184a7..36353b6647799 100644 --- a/cmake/O2AddExecutable.cmake +++ b/cmake/O2AddExecutable.cmake @@ -49,7 +49,7 @@ function(o2_add_executable baseTargetName) A "IS_TEST;NO_INSTALL;IS_BENCHMARK" "COMPONENT_NAME;TARGETVARNAME" - "SOURCES;PUBLIC_LINK_LIBRARIES") + "SOURCES;PUBLIC_LINK_LIBRARIES;JOB_POOL") if(A_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Got trailing arguments ${A_UNPARSED_ARGUMENTS}") @@ -95,6 +95,9 @@ function(o2_add_executable baseTargetName) # set the executable output name set_property(TARGET ${target} PROPERTY OUTPUT_NAME ${exeName}) + if(A_JOB_POOL) + set_property(TARGET ${target} PROPERTY JOB_POOL_COMPILE ${A_JOB_POOL}) + endif() if(A_IS_TEST) # tests go in a separate directory diff --git a/cmake/O2AddWorkflow.cmake b/cmake/O2AddWorkflow.cmake index 93e3e056f9b73..7b58dc13397e1 100644 --- a/cmake/O2AddWorkflow.cmake +++ b/cmake/O2AddWorkflow.cmake @@ -28,7 +28,7 @@ include_guard() function(o2_add_dpl_workflow baseTargetName) cmake_parse_arguments(PARSE_ARGV 1 A "" "COMPONENT_NAME;TARGETVARNAME" - "SOURCES;PUBLIC_LINK_LIBRARIES") + "SOURCES;PUBLIC_LINK_LIBRARIES;JOB_POOL") if(A_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Got trailing arguments ${A_UNPARSED_ARGUMENTS}") @@ -44,6 +44,9 @@ function(o2_add_dpl_workflow baseTargetName) ${targetExeName} PARENT_SCOPE) endif() + if(A_JOB_POOL) + set_property(TARGET ${targetExeName} PROPERTY JOB_POOL_COMPILE ${A_JOB_POOL}) + endif() set(jsonFile $.json)