diff --git a/containers/jug/setup_detectors.py b/containers/jug/setup_detectors.py index 11beda56786014fa02fdfe0cc29d096145aee4e6..c9389cc0de789eb4d751478c030c5e935bc9810c 100755 --- a/containers/jug/setup_detectors.py +++ b/containers/jug/setup_detectors.py @@ -84,22 +84,43 @@ if __name__ == '__main__': data_dir = '{}/share/{}'.format(prefix, det) ## build and install print(' - {}-{}'.format(det, cfg['version'])) - ## clone/build/install detector libraries - cmd = ['rm -rf /tmp/build /tmp/det', - '&&', - 'git clone --depth 1 -b {version} {repo_grp}/{detector}.git /tmp/det'.format( - version=cfg['version'], - repo_grp=DETECTOR_REPO_GROUP, - detector=det), - '&&', - 'cmake -B /tmp/build -S /tmp/det -DCMAKE_CXX_STANDARD=17', - '-DCMAKE_CXX_FLAGS="-Wno-psabi"', - '-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache', - '-DCMAKE_INSTALL_PREFIX={prefix}'.format(prefix=prefix), - '&&', - 'cmake --build /tmp/build -j$(($(($(nproc)/4))+1)) -- install'] + ## cleanup + cmd = ['rm -rf /tmp/build /tmp/det'] + print(' '.join(cmd)) + subprocess.check_call(' '.join(cmd), shell=True) + ## clone + cmd = [ + 'git clone --depth 1 -b {version} {repo_grp}/{detector}.git /tmp/det'.format( + version=cfg['version'], + repo_grp=DETECTOR_REPO_GROUP, + detector=det) + ] print(' '.join(cmd)) subprocess.check_call(' '.join(cmd), shell=True) + ## patches + if cfg.get('patches'): + for patch in cfg['patches']: + cmd = [f'curl -L {patch} | patch -p1 -d/tmp/det'] + print(' '.join(cmd)) + subprocess.check_call(' '.join(cmd), shell=True) + ## build + cxxflags = '' + if cfg.get('cxxflags'): + cxxflags = cfg['cxxflags'] + cmd = [ + f'cmake -B /tmp/build -S /tmp/det -DCMAKE_CXX_STANDARD=17', + f'-DCMAKE_CXX_FLAGS="-Wno-psabi {cxxflags}"', + f'-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache', + f'-DCMAKE_INSTALL_PREFIX={prefix}' + ] + print(' '.join(cmd)) + subprocess.check_call(' '.join(cmd), shell=True) + ## install + cmd = [ + 'cmake --build /tmp/build -j$(($(($(nproc)/4))+1)) -- install' + ] + print(' '.join(cmd)) + subprocess.check_output(' '.join(cmd), shell=True) ## write version info to jug_info if available if os.path.exists('/etc/jug_info'): cmd = ['cd /tmp/det', diff --git a/detectors.yaml b/detectors.yaml index 460193d8941b4f320f61ea2ad13fe83fac5b3554..c9082d961469d350ddb4a957b76593f9cee980dc 100644 --- a/detectors.yaml +++ b/detectors.yaml @@ -3,21 +3,47 @@ detectors: nightly: default: true version: main + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type main: version: main + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 22.12.0: version: 22.12.0 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 23.01.0: version: 23.01.0 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 23.03.0: version: 23.03.0 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 23.05.0: version: 23.05.0 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 23.05.1: version: 23.05.1 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 23.05.2: version: 23.05.2 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 23.06.0: version: 23.06.0 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type 23.06.1: version: 23.06.1 + patches: + - https://github.com/eic/epic/pull/449.patch + cxxflags: -DDD4HEP_FIELD_TYPE_OVERRIDE=field_type diff --git a/eic-spack.sh b/eic-spack.sh index 587b52fec82eed12bc62eb4e3da92cc11fa99925..5408667dfe9397bbf8c3eccddd17f6b53af6ae3c 100644 --- a/eic-spack.sh +++ b/eic-spack.sh @@ -3,7 +3,7 @@ EICSPACK_ORGREPO="eic/eic-spack" ## EIC spack github version, e.g. v0.19.7 or commit hash ## note: nightly builds will use e.g. releases/v0.19 -EICSPACK_VERSION="v0.20.3" +EICSPACK_VERSION="v0.20.4" ## Space-separated list of eic-spack cherry-picks read -r -d '' EICSPACK_CHERRYPICKS <<- \