ATLAS Offline Software
Loading...
Searching...
No Matches
make_hlt_rep.py
Go to the documentation of this file.
1#!/usr/bin/env python
2# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
4import optparse
5import os
6
7import pm.project
8import pm.common
9
10from HLTUtils import hltOksUtils
11from pm.dal import dal
12
13prefix = 'HLT'
14modifier = ''
15
16parser = optparse.OptionParser(description="Create HLT S/W respository")
17
18parser.add_option("-p", "--prefix", action="store",
19 help="Prefix used for all objects (default: 'HLT')")
20
21parser.add_option("-m", "--modifier", action="store",
22 help="Modifier for objects in S/W repository (default: '')")
23
24(opt, args) = parser.parse_args()
25
26if opt.prefix is not None:
27 prefix = opt.prefix
28
29if opt.modifier is not None and len(opt.modifier)>0:
30 modifier = '_' + opt.modifier
31
32rep = pm.project.Project('daq/sw/repository.data.xml')
33onlineRep = rep.getObject('SW_Repository', 'Online')
34common_env = pm.project.Project('daq/segments/common-environment.data.xml')
35
36atlas_project = os.environ.get('AtlasProject')
37
38if not os.environ.get('AtlasReleaseType')=='stable':
39 # nightly
40 atlas_version='%s,r%s' % (os.environ.get('AtlasBuildBranch'),
41 os.environ.get('AtlasBuildStamp'))
42else:
43 # numbered releases
44 atlas_version = os.environ.get('AtlasVersion')
45
46platform = hltOksUtils.platform()
47
48swvars = [
49 dal.SW_PackageVariable('XMLPATH',
50 Name='XMLPATH',
51 Suffix=os.path.join(platform,"XML")),
52 dal.SW_PackageVariable('DATAPATH',
53 Name='DATAPATH',
54 Suffix=os.path.join(platform,"share")),
55 dal.SW_PackageVariable('CALIBPATH',
56 Name='CALIBPATH',
57 Suffix=os.path.join(platform,"share")),
58 dal.SW_PackageVariable('JOBOPTSEARCHPATH',
59 Name='JOBOPTSEARCHPATH',
60 Suffix=os.path.join(platform,"jobOptions")),
61 dal.SW_PackageVariable('PYTHONPATH',
62 Name='PYTHONPATH',
63 Suffix=os.path.join(platform,"python"))
64]
65
66puvars = [
67 dal.Variable('%s_ASETUP_ARGS' % prefix,
68 Name='ASETUP_ARGS',
69 Value=('%s,%s' % (atlas_project, '${%s_VERSION}' % prefix)),
70 Description='asetup arguments'),
71
72 dal.Variable('%s_PRELOAD' % prefix,
73 Name='ASETUP_PRELOAD',
74 Value='libtcmalloc_minimal.so:libimf.so:libintlc.so.5',
75 Description='Preload libraries'),
76
77 dal.Variable('%s_VERBOSE' % prefix,
78 Name='ASETUP_VERBOSE',
79 Value='0',
80 Description='Verbosity for asetup_wrapper'),
81
82 dal.Variable('%s_EXTRA_SW_PATH' % prefix,
83 Name='ASETUP_EXTRA_SW_PATH',
84 Value='',
85 Description='Patch area (e.g. /my/path/InstallArea)'),
86
87 common_env.getObject('Variable','AtlasSetup')
88]
89
90pars = dal.VariableSet('%s-Parameters' % prefix,
91 Description='Parameters to expand for executables',
92 Contains = [ dal.Variable('%s_VERSION' % prefix,
93 Name='%s_VERSION' % prefix,
94 Value=atlas_version,
95 Description='%s release version' % prefix) ])
96
97apps = [
98 dal.Binary('HLTMPPU_asetup',
99 BinaryName='asetup_wrapper',
100 Description='HLTMPPU_main with asetup environment',
101 DefaultParameters='HLTMPPU_main',
102 ProcessEnvironment=puvars)
103]
104
105
106# Workaround for clang build (ATR-22849)
107try:
108 tag = pm.common.tdaqRepository.getObject('Tag',hltOksUtils.platform())
109except RuntimeError:
110 tag = pm.common.tdaqRepository.getObject('Tag')[0]
111 print('Cannot find tag %s in OKS. Using %s instead. Please fix manually.' %
112 (hltOksUtils.platform(), tag.id))
113
114hltRep = dal.SW_Repository('%s-Repository' % prefix,
115 Name=('%s-Repository' % prefix),
116 InstallationPath="%s/InstallArea" % os.environ.get('AtlasArea'),
117 SW_Objects=apps,
118 Tags=[tag],
119 ISInfoDescriptionFiles=[os.path.join(platform,'share/data/daq/schema/is_trigconf_hlt.schema.xml')],
120 AddProcessEnvironment = swvars
121 )
122
123for app in apps:
124 app.BelongsTo = hltRep
125
126proj = pm.project.Project('%s_SW_Repository.data.xml' % prefix,
127 ['daq/schema/core.schema.xml',
128 'daq/sw/repository.data.xml'])
129
130proj.addObjects([hltRep])
131proj.addObjects([pars])
132
void print(char *figname, TCanvas *c1)