ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tools
PyUtils
python
scripts
cmake_newskeleton.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
# @file PyUtils.scripts.cmt_newanalysisalg
4
# @purpose streamline and ease the creation of new athena algs
5
# @author Will Buttinger
6
# @date February 2017
7
8
#Note - this code could use a serious rewrite, I just hacked it together to get something working
9
10
__version__ =
"$Revision: 795362 $"
11
__author__ =
"Will Buttinger"
12
__doc__ =
"streamline and ease the creation of new AthAnalysisAlgorithm in a new package"
13
14
15
import
os
16
import
textwrap
17
import
subprocess
18
import
PyUtils.acmdlib
as
acmdlib
19
20
21
22
23
@acmdlib.command
(
24
name=
'cmake.new-skeleton'
25
)
26
@acmdlib.argument
(
27
'pkgname'
,
28
help=
"name of the new pkg"
29
)
30
31
32
def
main(args):
33
"""create a new skeleton package
34
35
ex:
36
$ acmd cmake new-skeleton MyPackage
37
"""
38
sc = 0
39
40
full_pkg_name = args.pkgname
41
42
#make new package
43
res = subprocess.getstatusoutput(
'acmd cmake new-pkg %s'
% full_pkg_name)
44
if
res[0]!=0:
45
print
(
"::: ERROR could not create new package"
)
46
return
-1
47
48
49
#add algorithm
50
res = subprocess.getstatusoutput(
'cd %s;acmd cmake new-analysisalg %sAlg'
% (full_pkg_name,full_pkg_name))
51
if
res[0]!=0:
52
print
(
"::: ERROR could not create new alg"
)
53
return
-1
54
55
pkg_name = full_pkg_name
56
57
# overwrite CMakeLists with our skeleton
58
with
open(os.path.join(full_pkg_name,
'CMakeLists.txt'
),
'w'
)
as
req:
59
print
(textwrap.dedent(
"""\
60
## automatically generated CMakeLists.txt file
61
62
# Declare the package
63
atlas_subdir( %(pkg_name)s )
64
65
# Declare external dependencies ... default here is to include ROOT
66
find_package( ROOT COMPONENTS MathCore RIO Core Tree Hist )
67
68
# Declare package as a library
69
# Note the convention that library names get "Lib" suffix
70
# Any package you depend on you should add
71
# to LINK_LIBRARIES line below (see the example)
72
atlas_add_library( %(pkg_name)sLib src/*.cxx
73
PUBLIC_HEADERS %(pkg_name)s
74
INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
75
LINK_LIBRARIES ${ROOT_LIBRARIES}
76
AthAnalysisBaseCompsLib
77
)
78
79
# if you add athena components (tools, algorithms) to this package
80
# these lines are needed so you can configure them in joboptions
81
atlas_add_component( %(pkg_name)s src/components/*.cxx
82
NOCLIDDB
83
LINK_LIBRARIES %(pkg_name)sLib
84
)
85
86
# if you add an application (exe) to this package
87
# declare it like this (note convention that apps go in the util dir)
88
# atlas_add_executable( MyApp util/myApp.cxx
89
# LINK_LIBRARIES %(pkg_name)sLib
90
# )
91
92
# Install python modules, joboptions, and share content
93
atlas_install_python_modules( python/*.py )
94
atlas_install_joboptions( share/*.py )
95
atlas_install_data( data/* )
96
atlas_install_scripts( scripts/* )
97
# You can access your data from code using path resolver, e.g.
98
# PathResolverFindCalibFile("%(pkg_name)s/file.txt")
99
100
101
"""
%locals()), file=req)
102
103
104
105
106
#need to reconfigure cmake so it knows about the new files
107
#rely on the WorkDir_DIR env var for this
108
# workDir = os.environ.get("WorkDir_DIR")
109
# if workDir == None:
110
# print("::: ERROR No WorkDir_DIR env var, did you forget to source the setup.sh script?")
111
# print("::: ERROR Please do this and reconfigure cmake manually!")
112
# else:
113
# print("::: INFO Reconfiguring cmake %s/../." % workDir)
114
# res = subprocess.getstatusoutput('cmake %s/../.' % workDir)
115
# if res[0]!=0:
116
# print ("::: WARNING reconfigure unsuccessful. Please reconfigure manually!")
117
118
print
void print(char *figname, TCanvas *c1)
Definition
TRTCalib_StrawStatusPlots.cxx:26
Generated on
for ATLAS Offline Software by
1.17.0