From 01dfd1f98e6006447049f23be853acdf94e07a50 Mon Sep 17 00:00:00 2001 From: Vincenzo Eduardo Padulano Date: Fri, 11 Jul 2025 13:55:56 +0200 Subject: [PATCH 1/2] [build] Simplify CMake in ATLAS DataVector test directory Using the `NO_CXXMODULE` option of `ROOTTEST_GENERATE_DICTIONARY` produces dictionary artifacts that correctly reproduce the ATLAS environment (i.e. there are no C++ module neither modulemap produced in the test build directory). --- .../ntuple/atlas-datavector/CMakeLists.txt | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/roottest/root/ntuple/atlas-datavector/CMakeLists.txt b/roottest/root/ntuple/atlas-datavector/CMakeLists.txt index baabe5ce7241d..9db7124163fed 100644 --- a/roottest/root/ntuple/atlas-datavector/CMakeLists.txt +++ b/roottest/root/ntuple/atlas-datavector/CMakeLists.txt @@ -15,28 +15,13 @@ endif() # the ATLAS Athena build. Contributors # - It always builds the C++ module from the dictionary (in a module build of ROOT) # - It changes names of artifacts (e.g. removes the "lib" prefix from the shared library) -set(CMAKE_ROOTTEST_DICT OFF) -set(ATLASLIKEDATAVECTOR_DICTNAME AtlasLikeDataVectorDict) -ROOT_GENERATE_DICTIONARY( - ${ATLASLIKEDATAVECTOR_DICTNAME} - ${CMAKE_CURRENT_SOURCE_DIR}/AtlasLikeDataVector.hxx - LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/selection.xml +ROOTTEST_GENERATE_DICTIONARY( + AtlasLikeDataVectorDict + NO_CXXMODULE + ${CMAKE_CURRENT_SOURCE_DIR}/AtlasLikeDataVector.hxx + LINKDEF ${CMAKE_CURRENT_SOURCE_DIR}/selection.xml + FIXTURES_SETUP atlas_datavector_dict_setup ) -ROOTTEST_TARGETNAME_FROM_FILE(GENERATE_DICTIONARY_TEST ${ATLASLIKEDATAVECTOR_DICTNAME}) -set(GENERATE_DICTIONARY_TEST ${GENERATE_DICTIONARY_TEST}-build) - -# Generate a shared library from the dictionary sources -set(ATLASLIKEDATAVECTOR_LIB ${ATLASLIKEDATAVECTOR_DICTNAME}libgen) -add_library(${ATLASLIKEDATAVECTOR_LIB} SHARED ${ATLASLIKEDATAVECTOR_DICTNAME}.cxx) -set_target_properties(${ATLASLIKEDATAVECTOR_LIB} PROPERTIES ${ROOT_LIBRARY_PROPERTIES}) -set_target_properties(${ATLASLIKEDATAVECTOR_LIB} PROPERTIES OUTPUT_NAME ${ATLASLIKEDATAVECTOR_DICTNAME}) -target_link_libraries(${ATLASLIKEDATAVECTOR_LIB} Core RIO ROOTNTuple) -add_dependencies(${ATLASLIKEDATAVECTOR_LIB} ${ATLASLIKEDATAVECTOR_DICTNAME}) - -add_test(NAME ${GENERATE_DICTIONARY_TEST} - COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} - --target ${ATLASLIKEDATAVECTOR_DICTNAME} ${ATLASLIKEDATAVECTOR_LIB}) -set_property(TEST ${GENERATE_DICTIONARY_TEST} PROPERTY FIXTURES_SETUP atlas_datavector_dict_setup) # Generate an executable to write an RNTuple with a field of type # AtlasLikeDataVector. Note that we don't link explicitly From 2b806417502ed84ab304ca2dfa8e36c2d8fd15d6 Mon Sep 17 00:00:00 2001 From: Vincenzo Eduardo Padulano Date: Mon, 12 Jan 2026 12:33:04 +0100 Subject: [PATCH 2/2] [build] Specify dictionary dependency of Python unittest --- roottest/root/ntuple/atlas-datavector/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roottest/root/ntuple/atlas-datavector/CMakeLists.txt b/roottest/root/ntuple/atlas-datavector/CMakeLists.txt index 9db7124163fed..6a7f0fe42da8b 100644 --- a/roottest/root/ntuple/atlas-datavector/CMakeLists.txt +++ b/roottest/root/ntuple/atlas-datavector/CMakeLists.txt @@ -75,5 +75,6 @@ if(ROOT_pyroot_FOUND) template_instantiation template_instantiation.py GENERIC - PYTHON_DEPS pytest) + PYTHON_DEPS pytest + FIXTURES_REQUIRED atlas_datavector_dict_setup) endif()