Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • holau/Gaudi
  • dmagdali/Gaudi
  • pmunozpa/Gaudi
  • ssottoco/Gaudi
  • cvarni/Gaudi
  • mafila/Gaudi
  • admorris/Gaudi
  • staider/Gaudi
  • gunther/Gaudi
  • bstanisl/Gaudi
  • jtorasso/Gaudi
  • wochung/Gaudi
  • mveghel/Gaudi
  • averbyts/Gaudi
  • dguest/Gaudi
  • alboyer/Gaudi
  • dkonst/Gaudi
  • jcarcell/Gaudi
  • elmsheus/Gaudi
  • hpxgaudi/Gaudi
  • ganis/Gaudi
  • tadej/Gaudi
  • hahansen/Gaudi
  • juesseiv/Gaudi
  • imjelde/gaudida
  • jheuel/Gaudi
  • mimazure/Gaudi
  • masato/Gaudi
  • dcasperfaser/Gaudi
  • faser/offline/Gaudi
  • axu/Gaudi
  • sailer/Gaudi
  • amete/Gaudi
  • ponyisi/Gaudi
  • vavolkl/Gaudi
  • mstahl/Gaudi
  • wlampl/Gaudi
  • kreczko/Gaudi
  • emoyse/Gaudi
  • dhynds/Gaudi
  • sstahl/Gaudi
  • rcurrie/Gaudi
  • smh/Gaudi
  • valassi/Gaudi
  • bwynne/Gaudi_gaudi
  • abarton/Gaudi
  • tsulaia/gaudigaudi
  • mnowak/Gaudi
  • roiser/Gaudi
  • merrenst/Gaudi
  • mato/Gaudi
  • christos/Gaudi
  • goetz/Gaudi
  • goetz/AtlasGaudi
  • tsulaia/atlasgaudi
  • olupton/Gaudi
  • pseyfert/Gaudi
  • graemes/Gaudi
  • akraszna/AtlasGaudi
  • cattanem/Gaudi
  • skluth/Gaudi
  • will/Gaudi
  • ssnyder/Gaudi
  • agonzale/Gaudi
  • leggett/AtlasGaudi
  • apearce/Gaudi
  • mnowak/Gaudi-ORIG
  • fwinkl/AtlasGaudi
  • bwynne/Gaudi_atlas
  • chamont/Gaudi
  • rmatev/Gaudi
  • lhcb/Gaudi
  • atlas/Gaudi
  • akraszna/GaudiGaudi
  • fwinkl/Gaudi
  • jonrob/Gaudi
  • azaborow/Gaudi
  • clemenci/Gaudi
  • hgraslan/Gaudi
  • srimanob/Gaudi
  • graven/Gaudi
  • hegner/Gaudi
  • gaudi/Gaudi
83 results
Show changes
Commits on Source (117)
Showing
with 392 additions and 216 deletions
......@@ -113,6 +113,13 @@ Standard: Cpp11
TabWidth: 8
UseTab: Never
---
Language: Json
IndentWidth: 4
ColumnLimit: 120
---
Language: JavaScript
ColumnLimit: 120
---
Language: ObjC
# Don't format Objective-C, Objective-C++ files.
DisableFormat: true
......
[flake8]
select = F,E101,E7,E9,W6
extend-ignore = E741
exclude = */options/*
\ No newline at end of file
exclude = */options/*
#####################################################################################
# (c) Copyright 1998-2020 CERN for the benefit of the LHCb and ATLAS collaborations #
# (c) Copyright 1998-2023 CERN for the benefit of the LHCb and ATLAS collaborations #
# #
# This software is distributed under the terms of the Apache version 2 licence, #
# copied verbatim in the file "LICENSE". #
......@@ -9,30 +9,26 @@
# or submit itself to any jurisdiction. #
#####################################################################################
variables:
LCG_VERSION: "101"
CMAKE_GENERATOR: 'Ninja' # default build system
NO_LBLOGIN: "1" # prevent lbdocker containers to start LbLogin/LbEnv
TARGET_BRANCH: master
# All the configuration
default:
image: gitlab-registry.cern.ch/lhcb-core/lbdocker/centos7-build
before_script:
# Add Ninja and CMake to the PATH
- export PATH="/cvmfs/sft.cern.ch/lcg/contrib/CMake/3.18.3/Linux-x86_64/bin:/cvmfs/sft.cern.ch/lcg/contrib/ninja/1.10.0/Linux-x86_64:$PATH"
- export CCACHE_DIR=$PWD/.ccache
- export PRESET=full
# Job templates
.build: &template_build
tags:
- cvmfs
image: gitlab-registry.cern.ch/lhcb-docker/os-base/centos7-devel:latest
before_script:
# Add Ninja and CMake to the PATH
- export PATH="/cvmfs/sft.cern.ch/lcg/contrib/CMake/3.20.0/Linux-$(uname -m)/bin:/cvmfs/sft.cern.ch/lcg/contrib/ninja/1.11.1/Linux-$(uname -m)/bin:$PATH"
- export CCACHE_DIR=$PWD/.ccache
- "export LCG_VERSION=$(cut -d: -f2 <<< $CI_JOB_NAME)"
- "export platform=$(cut -d: -f3 <<< $CI_JOB_NAME)"
- "export PRESET=$(cut -d: -f4 <<< $CI_JOB_NAME)"
- if [ -z "$PRESET" ] ; then PRESET=full ; fi
script:
- platform=${CI_JOB_NAME%/*}
- if [[ "${CI_JOB_NAME}" = */* ]] ; then PRESET=${CI_JOB_NAME#*/} ; fi
- git clone https://gitlab.cern.ch/lhcb-core/lcg-toolchains.git
- cmake --version
- cmake -S . -B build -Wno-dev -DCMAKE_TOOLCHAIN_FILE=lcg-toolchains/LCG_${LCG_VERSION}/${platform}.cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -C ci-utils/preset-${PRESET}.cmake
- cmake -S . -B build -Wno-dev -DCMAKE_TOOLCHAIN_FILE=lcg-toolchains/LCG_${LCG_VERSION}/${platform}.cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DGAUDI_TEST_PUBLIC_HEADERS_BUILD=yes -C ci-utils/preset-${PRESET}.cmake
- ccache -z
# pre-heat ccache cache for GaudiKernel
- jobs=$(nproc)
......@@ -42,104 +38,78 @@ default:
- done
# build from scratch
- cmake --build build --target clean
- cmake --build build 2>&1 | tee build/build.log
- cmake --build build 2>&1 | tee build.log
- ccache -s
artifacts:
paths:
- build
- lcg-toolchains
expire_in: 1 week
cache:
key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths:
- .ccache
.build-check: &template_build_check
variables:
LOG: build/build.log
script:
- ci-utils/build-check ${LOG}
allow_failure: true
.test: &template_test
tags:
- cvmfs
script:
- find build -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake
- cp build/compile_commands.json .
# run the tests
- cd build
- if ctest -T test -j $(nproc) --repeat until-pass:3 --no-compress-output ; then result=success ; else result=failure ; fi
- cp Testing/$(head -1 Testing/TAG)/Test.xml ..
- cd ..
- xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml
- echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml"
- test "$result" = "success"
# FIXME: Many tests require AIDA, so we ignore them in that case
- test "$PRESET" = "no-AIDA" -o "$result" = "success"
artifacts:
paths:
- build.log
- compile_commands.json
- Test.xml
reports:
junit:
- results.xml
when: always
expire_in: 1 week
.test_headers: &template_test_headers
tags:
- cvmfs
script:
- export CCACHE_DIR=$PWD/.ccache_headers
- find build -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake
- ccache -z
- cmake --build build --target test_public_headers_build 2>&1 | tee build/test_public_headers_build.log
- ccache -s
artifacts:
paths:
- build/test_public_headers_build.log
when: always
expire_in: 1 week
cache:
key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths:
- .ccache_headers
- .ccache
- build/Testing
.warnings-check: &template_warnings_check
image: gitlab-registry.cern.ch/linuxsupport/alma9-base:latest
variables:
LOG: build.log
script:
- ci-utils/build-check ${LOG}
allow_failure: true
### Build
x86_64-centos7-gcc11-opt:
lcg:103:x86_64-centos7-gcc12-opt:
<<: *template_build
x86_64-centos7-gcc11-dbg:
lcg:103:x86_64-centos7-gcc12-dbg:
<<: *template_build
x86_64-centos7-gcc11-opt/minimal:
lcg:103:x86_64-centos9-gcc12-opt:
<<: *template_build
image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
view-gcc8:
lcg:103:x86_64-centos9-gcc12-dbg:
<<: *template_build
script:
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/x86_64-centos7-gcc8-opt/setup.sh
- cmake --version
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- ccache -z
# pre-heat ccache cache for GaudiKernel
- jobs=$(nproc)
- while [[ $jobs -ge 1 ]] ; do
- cmake --build build -j $jobs --target GaudiKernel && break || true
- jobs=$(( $jobs / 2 ))
- done
# build from scratch
- cmake --build build --target clean
- cmake --build build 2>&1 | tee build/build.log
- ccache -s
image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
lhcb-gcc11:
lcg:103:x86_64-centos7-gcc11-opt:minimal:
<<: *template_build
variables:
BINARY_TAG: x86_64_v2-centos7-gcc11-opt
lcg:103:x86_64-centos7-gcc11-opt:no-AIDA:
<<: *template_build
lcg:103:x86_64-centos7-gcc12-opt:no-GaudiAlg:
<<: *template_build
lhcb:103:x86_64_v2-el9-gcc12-opt:
<<: *template_build
image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
script:
- shopt -s expand_aliases
- . /cvmfs/lhcb.cern.ch/lib/LbEnv
- cmake --version
- lb-set-platform $platform
- lb-project-init --overwrite
- ccache -z
- mkdir build.${BINARY_TAG}
- if [ -e build/Testing ] ; then mv build/Testing build.${BINARY_TAG} ; fi
# pre-heat ccache cache for GaudiKernel
- jobs=$(nproc)
- while [[ $jobs -ge 1 ]] ; do
......@@ -148,129 +118,118 @@ lhcb-gcc11:
- done
# build from scratch
- make clean
- make 2>&1 | tee build.${BINARY_TAG}/build.log
- make 2>&1 | tee build.log
- ccache -s
artifacts:
paths:
- build.${BINARY_TAG}
expire_in: 1 week
### Tests
x86_64-centos7-gcc11-opt:test:
<<: *template_test
needs:
- job: "x86_64-centos7-gcc11-opt"
artifacts: true
x86_64-centos7-gcc11-opt:test_headers:
<<: *template_test_headers
needs:
- job: "x86_64-centos7-gcc11-opt"
artifacts: true
x86_64-centos7-gcc11-dbg:test:
<<: *template_test
needs:
- job: "x86_64-centos7-gcc11-dbg"
artifacts: true
x86_64-centos7-gcc11-dbg:test_headers:
<<: *template_test_headers
needs:
- job: "x86_64-centos7-gcc11-dbg"
artifacts: true
view-gcc8:test:
<<: *template_test
needs:
- job: "view-gcc8"
artifacts: true
before_script:
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/x86_64-centos7-gcc8-opt/setup.sh
lhcb-gcc11:test:
<<: *template_test
needs:
- job: "lhcb-gcc11"
artifacts: true
variables:
BINARY_TAG: x86_64_v2-centos7-gcc11-opt
script:
- . /cvmfs/lhcb.cern.ch/lib/LbEnv
- lb-project-init --overwrite
- find build.${BINARY_TAG} -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake
# run the tests
- if make test ARGS="-j $(nproc) --repeat until-pass:3 --no-compress-output" ; then result=success ; else result=failure ; fi
- cp build.${BINARY_TAG}/Testing/$(head -1 build.${BINARY_TAG}/Testing/TAG)/Test.xml .
- mkdir -p build && mv build.${BINARY_TAG}/Testing build
- cp build.${BINARY_TAG}/compile_commands.json .
- mv build.${BINARY_TAG}/html .
- xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml
- echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml"
- test "$result" = "success"
artifacts:
paths:
- build.log
- compile_commands.json
- Test.xml
- html
reports:
junit:
- results.xml
when: always
expire_in: 1 day
expire_in: 1 week
lcg-view:102b:x86_64-centos7-gcc11-opt:
<<: *template_build
script:
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/${platform}/setup.sh
- export CONFIGURABLE_DB_IGNORE=/cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/${platform}/lib/Gaudi.confdb
- cmake --version
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- ccache -z
# pre-heat ccache cache for GaudiKernel
- jobs=$(nproc)
- while [[ $jobs -ge 1 ]] ; do
- cmake --build build -j $jobs --target GaudiKernel && break || true
- jobs=$(( $jobs / 2 ))
- done
# build from scratch
- cmake --build build --target clean
- cmake --build build 2>&1 | tee build.log
- ccache -s
- cp build/compile_commands.json .
# run the tests
- cd build
- if ctest -T test -j $(nproc) --repeat until-pass:3 --no-compress-output ; then result=success ; else result=failure ; fi
- cp Testing/$(head -1 Testing/TAG)/Test.xml ..
- cd ..
- xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml
- echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml"
- test "$result" = "success"
### Check build outputs
x86_64-centos7-gcc11-opt:build-check:
<<: *template_build_check
warnings-check:lcg:103:x86_64-centos7-gcc12-opt:
<<: *template_warnings_check
needs:
- job: "x86_64-centos7-gcc11-opt"
- job: "lcg:103:x86_64-centos7-gcc12-opt"
artifacts: true
x86_64-centos7-gcc11-dbg:build-check:
<<: *template_build_check
warnings-check:lcg:103:x86_64-centos7-gcc12-dbg:
<<: *template_warnings_check
needs:
- job: "x86_64-centos7-gcc11-dbg"
- job: "lcg:103:x86_64-centos7-gcc12-dbg"
artifacts: true
x86_64-centos7-gcc11-opt:build-headers-check:
<<: *template_build_check
variables:
LOG: build/test_public_headers_build.log
warnings-check:lcg:103:x86_64-centos9-gcc12-opt:
<<: *template_warnings_check
needs:
- job: "x86_64-centos7-gcc11-opt:test_headers"
- job: "lcg:103:x86_64-centos9-gcc12-opt"
artifacts: true
x86_64-centos7-gcc11-dbg:build-headers-check:
<<: *template_build_check
variables:
LOG: build/test_public_headers_build.log
warnings-check:lcg:103:x86_64-centos9-gcc12-dbg:
<<: *template_warnings_check
needs:
- job: "x86_64-centos7-gcc11-dbg:test_headers"
- job: "lcg:103:x86_64-centos9-gcc12-dbg"
artifacts: true
view-gcc8:build-check:
<<: *template_build_check
warnings-check:lcg:103:x86_64-centos7-gcc11-opt:minimal:
<<: *template_warnings_check
needs:
- job: "view-gcc8"
- job: "lcg:103:x86_64-centos7-gcc11-opt:minimal"
artifacts: true
lhcb-gcc11:build-check:
<<: *template_build_check
warnings-check:lcg:103:x86_64-centos7-gcc12-opt:no-GaudiAlg:
<<: *template_warnings_check
needs:
- job: "lhcb-gcc11"
- job: "lcg:103:x86_64-centos7-gcc12-opt:no-GaudiAlg"
artifacts: true
warnings-check:lhcb:103:x86_64_v2-el9-gcc12-opt:
<<: *template_warnings_check
needs:
- job: "lhcb:103:x86_64_v2-el9-gcc12-opt"
artifacts: true
warnings-check:lcg-view:102b:x86_64-centos7-gcc11-opt:
<<: *template_warnings_check
needs:
- job: "lcg-view:102b:x86_64-centos7-gcc11-opt"
artifacts: true
variables:
BINARY_TAG: x86_64_v2-centos7-gcc11-opt
script:
- ci-utils/build-check build.${BINARY_TAG}/build.log
### Misc checks
x86_64-centos7-gcc11-opt:check-unused:
lcg:103:x86_64-centos7-gcc12-opt:check-unused:
image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
needs:
- job: "x86_64-centos7-gcc11-opt"
- job: "lcg:103:x86_64-centos7-gcc12-opt"
artifacts: true
script:
- ci-utils/check-sources build/build.ninja
- ci-utils/check-sources compile_commands.json
allow_failure: true
pre-commit-checks:
image: registry.cern.ch/docker.io/library/python:3.8
image: registry.cern.ch/docker.io/library/python:3.9
variables:
PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
cache:
......@@ -290,7 +249,7 @@ pre-commit-checks:
echo ""
echo "Generating patch file..."
git commit -a -m "pre-commit fixes
patch generated by ${CI_JOB_URL}" > /dev/null
git format-patch HEAD~
cat <<EOF
......@@ -310,13 +269,23 @@ pre-commit-checks:
expire_in: 1 week
check-copyright:
image: gitlab-registry.cern.ch/ci-tools/ci-worker:cc7
image: registry.cern.ch/docker.io/library/python:3.9
script:
- curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/-/raw/master/LbDevTools/SourceTools.py?inline=false"
- python lb-check-copyright --exclude lhcbproject.yml --exclude ci-utils/preset-default.cmake --exclude ci-utils/preset-full.cmake --exclude ci-utils/preset-minimal.cmake --exclude ci-utils/preset-no-test.cmake origin/${TARGET_BRANCH}
- |
curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/-/raw/master/LbDevTools/SourceTools.py?inline=false"
python lb-check-copyright \
--exclude lhcbproject.yml \
--exclude ci-utils/preset-default.cmake \
--exclude ci-utils/preset-full.cmake \
--exclude ci-utils/preset-minimal.cmake \
--exclude ci-utils/preset-no-AIDA.cmake \
--exclude ci-utils/preset-no-GaudiAlg.cmake \
--exclude ci-utils/preset-no-test.cmake \
origin/${TARGET_BRANCH}
website:
image: python
image: registry.cern.ch/docker.io/library/python:3.9
script:
- rm -rf public
- mkdir -p public
......@@ -329,35 +298,29 @@ website:
- public
expire_in: 1 day
doxygen:
tags:
- cvmfs
needs:
- job: "view-gcc8"
artifacts: true
doxygen:103:x86_64-centos7-gcc12-opt:
<<: *template_build
script:
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/x86_64-centos7-gcc8-opt/setup.sh
- find build -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/${platform}/setup.sh
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
- cmake --build build --target doc
- rm -rf public
- mkdir -p public/doxygen
- cp -r GaudiRelease/web_helpers/. public/doxygen/.
- mv build/doxygen/html ${CI_COMMIT_REF_SLUG}
- zip -r -q public/doxygen/${CI_COMMIT_REF_SLUG}.zip ${CI_COMMIT_REF_SLUG}
artifacts:
paths:
- public
expire_in: 1 day
# see https://gitlab.cern.ch/gitlabci-examples/deploy_eos for the details
# of the configuration
deploy-website:
needs:
- job: "website"
artifacts: true
- job: "doxygen"
- job: "doxygen:103:x86_64-centos7-gcc12-opt"
artifacts: true
rules:
- if: $CI_COMMIT_BRANCH == "master"
......@@ -372,4 +335,3 @@ deploy-website:
# do not run any globally defined before_script or after_script for this step
before_script: []
after_script: []
repos:
- repo: https://github.com/ssciwr/clang-format-precommit
rev: v13.0.0
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: "\\.clang-format$"
- id: check-added-large-files
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v16.0.6
hooks:
- id: clang-format
- id: clang-format
......@@ -8,7 +16,7 @@ repos:
types_or: [file]
files: \.(icc|icpp)$
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 23.9.1
hooks:
- id: black
- repo: https://github.com/pycqa/isort
......@@ -16,6 +24,6 @@ repos:
hooks:
- id: isort
- repo: https://github.com/pycqa/flake8
rev: 6.0.0
rev: 6.1.0
hooks:
- id: flake8
......@@ -5,6 +5,70 @@ Project Coordinators: Marco Clemencic @clemenci, Charles Leggett @leggett
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
## [v37r0](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v37r0) - 2023-09-14
This is the first major release of Gaudi in a while. This was made necessary to be able to incorporate
a number of backward incompatible changes that have been kept in the backburner until now.
The main (backward incompatible) changes are:
- clean up and improvements to the new monitoring infrastructure
- custom sinks have to be adapted
- drop of `LIKELY` and `UNLIKELY` preprocessor macros
- they have been deprecated for long, but waiting for a major release to effectively
remove the implementation
- make the subdirectory `GaudiAlg` optional
- still enabled by default, it's not really backward incompatible, but the refactoring
implies that some minor adaptations might be needed in downstream code
Since this a major release we took the occasion to update the versions of the hooks in
`pre-commit-config.yaml` and that caused some minor changes in the formatting.
In addition we have the usual batch of fixes and some new features.
### Changed
- Update versions in `pre-commit` hooks (gaudi/Gaudi!1415)
- Remove old warning message referring to `CMT` (gaudi/Gaudi!1486)
- Cleanup, fixes and new features around monitoring sinks (gaudi/Gaudi!1439)
- Reorganize files and refactor code to make GaudiAlg optional (gaudi/Gaudi!1444)
- Dropped (UN)LIKELY macro (gaudi/Gaudi!1227)
- Update and simplify gitlab-ci (gaudi/Gaudi!1476)
### Added
- Added support for the HepPDT vesion 3 (gaudi/Gaudi!1488)
- Implement helper class for arrays of counters (gaudi/Gaudi!1484)
- Fire ContextIncident `CONNECTED_NTUPLE_OUTPUT` when opening a ntuple file in RFileCnv (gaudi/Gaudi!1478)
- Check errors in histograms unit tests on top of bin content (gaudi/Gaudi!1480)
- Add `GAUDI_PGO` CMake options to enable builds with Profile Guided Optimizations (gaudi/Gaudi!1472)
### Fixed
- Fix missing Property name in error messages (gaudi/Gaudi#265 gaudi/Gaudi!1468)
- Fix TTree output reading in tests (gaudi/Gaudi#273 gaudi/Gaudi!1489)
- Use `inspect.signature` (if possible) instead of the deprecated `getargspec` (gaudi/Gaudi!1485)
- Never rely on default Gitlab Docker image in gitlab-ci (gaudi/Gaudi!1491)
- Fix performance of Counter destructor by using appropriate containers in Sink (gaudi/Gaudi!1477)
- Hide `RdtscClock.h` to non x86_64 builds, needed for aarch64 (gaudi/Gaudi!1479)
- Minor fix in a CMake error message (gaudi/Gaudi!1481)
- GaudiMP: few minor fixes for Python3 (gaudi/Gaudi!1473)
- Fixed clang12 warnings (gaudi/Gaudi!1471)
- Fix finally helper with C++20 (gaudi/Gaudi!1475)
- Fix build with GAUDI_USE_AIDA=OFF (gaudi/Gaudi!1474)
## [v36r16](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r16) - 2023-07-28
Release requested by LHCb to backport gaudi/Gaudi!1478
### Added
- Fire ContextIncident `CONNECTED_NTUPLE_OUTPUT` when opening a ntuple file in
RFileCnv (gaudi/Gaudi!1482)
## [v36r15](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r15) - 2023-07-24
This release is needed so that LHCb can pick up a backward compatible version
of gaudi/Gaudi!1477.
### Fixed
- Fix performance of Counter destructor by using appropriate containers in Sink
(adaptation of gaudi/Gaudi!1477)
## [v36r14](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r14) - 2023-06-19
This release features a number of minor fixes to help downstream projects
......
cff-version: 1.2.0
title: Gaudi
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- name: LHCb Collaboration
- name: ATLAS Collaboration
identifiers:
- type: doi
value: 10.5281/zenodo.3660963
repository-code: 'https://gitlab.cern.ch/gaudi/Gaudi'
url: 'https://cern.ch/gaudi'
abstract: >-
Gaudi is a software architecture and framework that can be
used to facilitate the development of data processing
applications for High Energy Physics experiments.
keywords:
- Gaudi
- LHCb
- ATLAS
- CERN
- HEP
- Software Framework
license: Apache-2.0
version: v37r0
date-released: '2023-09-14'
......@@ -55,6 +55,7 @@ after the configuration or use ccmake or cmake-gui.
* For sanitized build
* GAUDI_GENCONF_NO_FAIL
* Compile options
* GAUDI_ENABLE_GAUDIALG
* GAUDI_REFLEX_COMPONENT_ALIASES
* Doxygen
* DOXYGEN_WITH_LOCAL_MATHJAX
......@@ -80,7 +81,7 @@ Maintainer's guide: `<https://twiki.cern.ch/twiki/bin/view/LHCb/MaintainGaudiCMa
cmake_minimum_required(VERSION 3.15)
project(Gaudi VERSION 36.14
project(Gaudi VERSION 37.0
LANGUAGES CXX
DESCRIPTION "Gaudi Software Framework"
HOMEPAGE_URL "https://cern.ch/gaudi")
......@@ -103,12 +104,14 @@ include(cmake/GaudiToolbox.cmake)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable/Disable output of compile_commands.json" FORCE)
set(GAUDI_USE_PYTHON_MAJOR 3 CACHE STRING "Major version of Python to use")
set(GAUDI_OPTIONAL_DEPENDENCIES "${GAUDI_OPTIONAL_DEPENDENCIES}set(GAUDI_USE_PYTHON_MAJOR ${GAUDI_USE_PYTHON_MAJOR})\n")
string(APPEND GAUDI_OPTIONAL_DEPENDENCIES "set(GAUDI_USE_PYTHON_MAJOR ${GAUDI_USE_PYTHON_MAJOR})\n")
# Find all the dependencies of the project
list(PREPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules") # (Find*.cmake)
include(cmake/GaudiDependencies.cmake)
string(APPEND GAUDI_OPTIONAL_DEPENDENCIES "set(GAUDI_ENABLE_GAUDIALG ${GAUDI_ENABLE_GAUDIALG})\n")
# The C++ standard used must be the same as ROOT's
if(NOT GAUDI_CXX_STANDARD)
# FIXME: the day ROOT_CXX_STANDARD is provided by ROOTConfig.cmake, remove this lookup
......@@ -145,6 +148,7 @@ add_subdirectory(GaudiCoreSvc)
add_subdirectory(GaudiUtils)
add_subdirectory(Gaudi)
add_subdirectory(GaudiAlg)
add_subdirectory(GaudiFunctional)
add_subdirectory(GaudiAud)
add_subdirectory(GaudiCommonSvc)
add_subdirectory(GaudiHive)
......
......@@ -35,4 +35,3 @@ gaudi_add_pytest(python/Gaudi/Main.py
gaudi_install(PYTHON)
# Install other scripts
gaudi_install(SCRIPTS)
......@@ -3,7 +3,7 @@
# Address sanitizer specific suppressions
# http://clang.llvm.org/docs/AddressSanitizer.html
#
# Note the leak sanitizer options in Gaudi-LSan.supp
# Note the leak sanitizer options in Gaudi-LSan.supp
# are also used by the address sanitizer.
# --------------------------------------------------
......
......@@ -4,8 +4,8 @@
# http://clang.llvm.org/docs/LeakSanitizer.html
# --------------------------------------------------
# Gaudi leaks -- Should really be looked into, but proving difficult to
# isolate and these errors cause a lot of noise downstream so mask
# Gaudi leaks -- Should really be looked into, but proving difficult to
# isolate and these errors cause a lot of noise downstream so mask
# until properly fixed.
#Indirect leak of 1528 byte(s) in 1 object(s) allocated from:
......@@ -24,7 +24,7 @@ leak:Gaudi::PluginService::v2::Details::DefaultFactory*
# #0 0x7fe26d832da8 in operator new(unsigned long) /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/build/contrib/gcc-8.2.0/src/gcc/8.2.0/libsanitizer/lsan/lsan_interceptors.cc:229
# #1 0x41082b in Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::ReturnType Gaudi::PluginService::v1::Details::Factory<Component2>::create<Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&&) ../GaudiPluginService/Gaudi/Details/PluginServiceDetailsV1.h:40
# #2 0x40505a in Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) ../GaudiPluginService/Gaudi/PluginServiceV1.h:62
# #3 0x40505a in Base2* Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::create<char [11]>(char const (&) [11], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) ../GaudiPluginService/Gaudi/PluginServiceV1.h:69
# #3 0x40505a in Base2* Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::create<char [11]>(char const (&) [11], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) ../GaudiPluginService/Gaudi/PluginServiceV1.h:69
leak:Gaudi::PluginService::v1::Factory*
# Direct leak of 48 byte(s) in 2 object(s) allocated from:
......
......@@ -39,10 +39,10 @@ vptr:bits/shared_ptr_base.h
vptr:include/tbb/task.h
# Gaudi - listcomponents
#/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid'
# #0 0x7f1847675979 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181
#/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid'
# #0 0x7f1847675979 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181
# #1 0x7f1847675b21 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_const_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:196
# #2 0x7f1847675b21 in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116
# #2 0x7f1847675b21 in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116
# #3 0x7f1847675b21 in boost::serialization::detail::singleton_wrapper<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::singleton_wrapper() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:147
# #4 0x7f1847675b21 in boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:171
# #5 0x7f184754d477 in __static_initialization_and_destruction_0 /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:207
......@@ -60,15 +60,15 @@ vptr:include/tbb/task.h
# #17 0x403348 (Gaudi/InstallArea/x86_64-centos7-gcc9-dbg+ubsan/bin/listcomponents.exe+0x403348)
vptr:Gaudi/GaudiPluginService/src/listcomponents.cpp
#/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid'
# #0 0x7f1b07822066 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181
# #1 0x7f1b0782220e in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_const_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:196
# #2 0x7f1b0782220e in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116
# #3 0x7f1b0782220e in boost::serialization::detail::singleton_wrapper<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::singleton_wrapper() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:147
# #4 0x7f1b0782220e in boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:171
# #5 0x7f1b076f14c3 in __static_initialization_and_destruction_0 /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:207
# #6 0x7f1b076f2f44 in _GLOBAL__sub_I_TestSerializationAlgo.cpp Online/ZeroMQ/component/TestSerializationAlgo.cpp:99
# #7 0x7f1b141079b2 in _dl_init_internal (/lib64/ld-linux-x86-64.so.2+0xf9b2)
#/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid'
# #0 0x7f1b07822066 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181
# #1 0x7f1b0782220e in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_const_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:196
# #2 0x7f1b0782220e in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116
# #3 0x7f1b0782220e in boost::serialization::detail::singleton_wrapper<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::singleton_wrapper() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:147
# #4 0x7f1b0782220e in boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:171
# #5 0x7f1b076f14c3 in __static_initialization_and_destruction_0 /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:207
# #6 0x7f1b076f2f44 in _GLOBAL__sub_I_TestSerializationAlgo.cpp Online/ZeroMQ/component/TestSerializationAlgo.cpp:99
# #7 0x7f1b141079b2 in _dl_init_internal (/lib64/ld-linux-x86-64.so.2+0xf9b2)
# #8 0x7f1b1410c58d in dl_open_worker (/lib64/ld-linux-x86-64.so.2+0x1458d)
# #9 0x7f1b141077c3 in _dl_catch_error (/lib64/ld-linux-x86-64.so.2+0xf7c3)
# #10 0x7f1b1410bb7a in _dl_open (/lib64/ld-linux-x86-64.so.2+0x13b7a)
......
......@@ -63,7 +63,6 @@ def _fillConfDict():
)
pass
del dups
log.warning("Fix your cmt/requirements file !!")
pass
else:
log.debug("No duplicates have been found: that's good !")
......
......@@ -213,9 +213,8 @@ def _getAllOpts_old(explicit_defaults=False):
)
for p, v in items:
# Note: AthenaCommon.Configurable does not have Configurable.PropertyReference
if (
hasattr(Configurable, "PropertyReference")
and type(v) == Configurable.PropertyReference
if hasattr(Configurable, "PropertyReference") and isinstance(
v, Configurable.PropertyReference
):
# this is done in "getFullName", but the exception is ignored,
# so we do it again to get it
......
......@@ -14,16 +14,16 @@ def test():
allConfigurables = GaudiKernel.Configurable.Configurable.allConfigurables
allConfigurables.clear()
from Configurables import MyGaudiAlgorithm
from Configurables import MyAlgorithm
assert not allConfigurables
alg = MyGaudiAlgorithm()
alg = MyAlgorithm()
assert len(allConfigurables) == 1
assert "MyGaudiAlgorithm.PrivToolHandle" not in allConfigurables
assert "MyAlgorithm.PrivToolHandle" not in allConfigurables
_ = alg.PrivToolHandle
assert "MyGaudiAlgorithm.PrivToolHandle" in allConfigurables
assert "MyAlgorithm.PrivToolHandle" in allConfigurables
assert "ToolSvc.PrivToolHandle" not in allConfigurables
print(list(allConfigurables))
......
......@@ -12,4 +12,4 @@ from Gaudi.Configuration import AuditorSvc, importOptions
importOptions("test_purge2.opts")
AuditorSvc().Auditors += ["TimingAuditor/TIMER"]
AuditorSvc().Auditors += ["AlgTimingAuditor/TIMER"]
AuditorSvc.Auditors = {"ChronoAuditor"};
AuditorSvc.Auditors = {"ChronoAuditor"};
......@@ -19,7 +19,7 @@
from pprint import PrettyPrinter
pp = PrettyPrinter()
expected = {'AuditorSvc': {'Auditors': ['ChronoAuditor', 'TimingAuditor/TIMER']}}
expected = {'AuditorSvc': {'Auditors': ['ChronoAuditor', 'AlgTimingAuditor/TIMER']}}
exec("\n".join(stdout.splitlines())) # stdout needs to be sanitized for windows
result["GaudiTest.expected_config"] = result.Quote(pp.pformat(expected))
......
......@@ -30,7 +30,6 @@ def which(file, path=None):
retcode = 0
try:
if len(sys.argv) > 1:
optfiles = sys.argv[1:]
else:
......
#####################################################################################
# (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations #
# (c) Copyright 1998-2023 CERN for the benefit of the LHCb and ATLAS collaborations #
# #
# This software is distributed under the terms of the Apache version 2 licence, #
# copied verbatim in the file "LICENSE". #
......@@ -10,6 +10,10 @@
#####################################################################################
# Gaudi subdirectory
if(NOT GAUDI_ENABLE_GAUDIALG)
return()
endif()
# Build the library
gaudi_add_library(GaudiAlgLib
SOURCES src/lib/EventCounter.cpp
......@@ -21,12 +25,14 @@ gaudi_add_library(GaudiAlgLib
src/lib/GaudiTool.cpp
src/lib/GetAlg.cpp
src/lib/Prescaler.cpp
src/lib/Sequencer.cpp
src/lib/Tuple.cpp
src/lib/TupleObj.cpp
src/lib/AlgDecorators.cpp
LINK
PUBLIC
GaudiUtilsLib
Gaudi::GaudiUtilsLib
Gaudi::GaudiPythonLib
Gaudi::Functional
Boost::headers
Boost::regex
Rangev3::rangev3)
......@@ -37,8 +43,13 @@ if(GAUDI_USE_AIDA)
src/lib/GaudiHistoTool.cpp
src/lib/GetAlgs.cpp
src/lib/GaudiTupleAlg.cpp
src/lib/GaudiTupleTool.cpp)
src/lib/GaudiTupleTool.cpp
src/lib/HistoDecorator.cpp)
target_link_libraries(GaudiAlgLib PUBLIC AIDA::aida)
if(GAUDI_USE_CLHEP)
target_sources(GaudiAlgLib PRIVATE src/lib/TupleDecorator.cpp)
target_link_libraries(GaudiAlgLib PUBLIC CLHEP::CLHEP)
endif()
endif()
# Build the plugin
......@@ -60,3 +71,55 @@ if(GAUDI_USE_AIDA)
src/components/SequencerTimerTool.cpp)
target_link_libraries(GaudiAlg PRIVATE AIDA::aida)
endif()
gaudi_add_dictionary(GaudiAlgDict
HEADERFILES dict/dictionary.h
SELECTION dict/selection.xml
LINK GaudiAlgLib)
if(GAUDI_USE_AIDA)
target_compile_definitions(GaudiAlgDict PRIVATE AIDA_FOUND)
endif()
if(GAUDI_USE_CLHEP)
target_compile_definitions(GaudiAlgDict PRIVATE CLHEP_FOUND)
endif()
gaudi_install(PYTHON)
if(BUILD_TESTING)
# Ignore examples if not building tests
# see https://gitlab.cern.ch/atlas/atlasexternals/-/merge_requests/664#note_3395313
gaudi_add_module(GaudiAlgExamples
SOURCES
src/examples/GaudiCommonTests.cpp
src/examples/MyGaudiAlgorithm.cpp
src/examples/MyGaudiTool.cpp
src/examples/SelCreate.cpp
src/examples/SelFilter.cpp
LINK
GaudiAlgLib
Gaudi::GaudiExamplesLib
)
if(GAUDI_USE_AIDA)
target_sources(GaudiAlgExamples PRIVATE
src/examples/Aida2Root.cpp
src/examples/GaudiHistoAlgorithm.cpp
src/examples/HistoTimingAlg.cpp
src/examples/EvtColAlg.cpp
src/examples/ExtendedEvtCol.cpp
)
target_link_libraries(GaudiAlgExamples PRIVATE AIDA::aida)
if(GAUDI_USE_CLHEP)
target_sources(GaudiAlgExamples PRIVATE
src/examples/TupleAlg2.cpp
src/examples/TupleAlg3.cpp
src/examples/TupleAlg.cpp
src/examples/TupleDef.cpp
)
target_link_libraries(GaudiAlgExamples PRIVATE CLHEP::CLHEP)
endif()
endif()
endif()
gaudi_add_tests(QMTest)
/***********************************************************************************\
* (c) Copyright 1998-2023 CERN for the benefit of the LHCb and ATLAS collaborations *
* *
* This software is distributed under the terms of the Apache version 2 licence, *
* copied verbatim in the file "LICENSE". *
* *
* In applying this licence, CERN does not waive the privileges and immunities *
* granted to it by virtue of its status as an Intergovernmental Organization *
* or submit itself to any jurisdiction. *
\***********************************************************************************/
// redefined anyway in features.h by _GNU_SOURCE
#undef _XOPEN_SOURCE
#undef _POSIX_C_SOURCE
// ============================================================================
// Python must always be the first.
#ifndef __APPLE__
# include <Python.h>
#endif // not __APPLE__
#include <GaudiPython/AlgDecorators.h>
#include <GaudiPython/PyAlg.h>
#ifdef AIDA_FOUND
# include <GaudiPython/HistoDecorator.h>
# ifdef CLHEP_FOUND
# include <GaudiPython/TupleDecorator.h>
# endif // CLHEP_FOUND
#endif // AIDA_FOUND
#ifdef AIDA_FOUND
# include <GaudiAlg/GaudiHistoAlg.h>
# include <GaudiAlg/GaudiTupleAlg.h>
# include <GaudiAlg/Print.h>
// Added to avoid warnings about inlined functions never implemented.
# include <GaudiAlg/GaudiHistos.icpp>
#endif // AIDA_FOUND
#include <GaudiAlg/GaudiAlgorithm.h>
#include <GaudiAlg/GaudiCommon.h>
#include <GaudiAlg/GaudiHistoID.h>
#include <GaudiAlg/IErrorTool.h>
#include <GaudiAlg/IGenericTool.h>
#include <GaudiAlg/IHistoTool.h>
#include <GaudiAlg/ISequencerTimerTool.h>
#include <GaudiAlg/ITupleTool.h>
#include <GaudiAlg/Tuple.h>