diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt index f36d051fb762c9e8d140efec00244f2acd88ebe0..4734d006bc4053268d18ec23a357e8a6c08dc926 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt @@ -13,6 +13,8 @@ function( atlas_build_lvl1_trigger_menu menu ) return() endif() + cmake_parse_arguments( ARG "" "DEPENDS" "" ${ARGN} ) + # Command to build trigger menu. The idea is that ${menu}.stamp gets # created as the last command, should the menu generation succeed such that # after a successful menu generation it wouldn't be attempted again. @@ -21,7 +23,7 @@ function( atlas_build_lvl1_trigger_menu menu ) # stamp file, ${menu}.attempted.stamp is created as the first command. # The menu is then only generated as part of the installation step if # this ${menu}.attempted.stamp file doesn't even exist. - + add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${menu}.stamp COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${menu}.attempted.stamp @@ -43,6 +45,11 @@ function( atlas_build_lvl1_trigger_menu menu ) add_custom_target( build_menu_${menu} ALL SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${menu}.stamp ) + # Optional dependency on other menu + if ( ARG_DEPENDS ) + add_dependencies( build_menu_${menu} build_menu_${ARG_DEPENDS} ) + endif() + # In case the file generation failed, because it wasn't even attempted # (failure in another package), then try to run the generation as part # of the installation. Note that apparently chaining commands inside a @@ -79,6 +86,7 @@ function( atlas_build_lvl1_trigger_menu menu ) # menu targets be dependencies of the package target. if( NOT TARGET TriggerMenuMTMain ) add_custom_target( TriggerMenuMTMain ALL + COMMENT "Package build succeeded" COMMAND ${CMAKE_COMMAND} -E echo "TriggerMenuMT: Package build succeeded" ) endif() @@ -86,8 +94,6 @@ function( atlas_build_lvl1_trigger_menu menu ) endfunction ( atlas_build_lvl1_trigger_menu ) - - #---------------------------------- # Install files from the package: atlas_install_python_modules( python/*.py @@ -163,13 +169,15 @@ atlas_add_test( EventBuildingSequenceSetup #---------------------------------- # List of menus to be created: -atlas_build_lvl1_trigger_menu( LS2_v1 ) atlas_build_lvl1_trigger_menu( Physics_pp_run3_v1 ) atlas_build_lvl1_trigger_menu( PhysicsP1_pp_run3_v1 ) atlas_build_lvl1_trigger_menu( MC_pp_run3_v1 ) atlas_build_lvl1_trigger_menu( Cosmic_run3_v1 ) atlas_build_lvl1_trigger_menu( PhysicsP1_HI_run3_v1 ) atlas_build_lvl1_trigger_menu( Dev_HI_run3_v1 ) -atlas_build_lvl1_trigger_menu( LS2_v1_TriggerValidation_prescale ) -atlas_build_lvl1_trigger_menu( LS2_v1_BulkMCProd_prescale ) -atlas_build_lvl1_trigger_menu( LS2_v1_CPSampleProd_prescale ) + +# Build of different prescales for same menu need to be serialized (ATR-22387): +atlas_build_lvl1_trigger_menu( LS2_v1 ) +atlas_build_lvl1_trigger_menu( LS2_v1_TriggerValidation_prescale DEPENDS LS2_v1 ) +atlas_build_lvl1_trigger_menu( LS2_v1_BulkMCProd_prescale DEPENDS LS2_v1 ) +atlas_build_lvl1_trigger_menu( LS2_v1_CPSampleProd_prescale DEPENDS LS2_v1 ) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuMT.sh b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuMT.sh index 705824041c53a6ec3ae836f27e525773fd6e3757..11ee6f69850479562063843f2c7055e21daa4829 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuMT.sh +++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/generateL1MenuMT.sh @@ -71,8 +71,8 @@ generateLVL1MenuMT.py $menu 2>&1 >> $logfilelvl1 generateL1TopoMenuMT.py $menu 2>&1 >> $logfiletopo generateL1MenuRun3.py $menu 2>&1 >> $logfilel1r3 -cp -v L*.xml ${dest} -find . -maxdepth 1 -name 'L*.json' -exec cp -v {} ${dest} \; +cp L*.xml ${dest} +find . -maxdepth 1 -name 'L*.json' -exec cp {} ${dest} \; cp $logfilelvl1 ${dest} cp $logfiletopo ${dest} cp $logfilel1r3 ${dest}