1 from init_env import init_environment
3 # adding ccdb as temporary dependency
4 # will be removed once the hit process routines are plugins
5 env = init_environment("qt5 geant4 clhep evio xercesc ccdb")
7 # env.Replace(CXX = "/apps/gcc/4.7.2/bin/g++")
8 # env.Replace(CXX = "/usr/bin/clang++")
9 #env.Append(CXXFLAGS='-Wno-shorten-64-to-32')
10 #env.Append(CXXFLAGS='-Wno-sign-conversion')
12 # added because clhep is still behind clang (5/2015)
13 if env['PLATFORM'] == 'darwin':
14 env.Append(CXXFLAGS='-Wno-absolute-value')
17 env.Append(CPPPATH = 'materials')
18 materials_sources = Split("""
19 materials/material_factory.cc
20 materials/cpp_materials.cc
21 materials/mysql_materials.cc
22 materials/text_materials.cc
23 materials/gdml_materials.cc""")
24 env.Library(source = materials_sources, target = "lib/materials")
27 env.Append(CPPPATH = 'mirrors')
28 mirrors_sources = Split("""
29 mirrors/mirrors_factory.cc
30 mirrors/mysql_mirrors.cc
31 mirrors/text_mirrors.cc""")
32 env.Library(source = mirrors_sources, target = "lib/mirrors")
36 env.Append(CPPPATH = 'parameters')
37 parameters_sources = Split("""
38 parameters/parameter_factory.cc
39 parameters/mysql_parameters.cc
40 parameters/text_parameters.cc""")
41 env.Library(source = parameters_sources, target = "lib/parameters")
45 env.Append(CPPPATH = 'utilities')
46 util_sources = Split("""
47 utilities/string_utilities.cc
51 utilities/options.cc""")
52 env.Library(source = util_sources, target = "lib/utilities")
56 env.Append(CPPPATH = 'detector')
57 det_sources = Split("""
59 detector/detector_factory.cc
60 detector/mysql_det_factory.cc
61 detector/gdml_det_factory.cc
62 detector/clara_det_factory.cc
63 detector/gdml_solids.cc
64 detector/text_det_factory.cc""")
65 env.Library(source = det_sources, target = "lib/detector")
69 env.Append(CPPPATH = 'sensitivity')
70 sensi_sources = Split("""
71 sensitivity/sensitiveDetector.cc
72 sensitivity/identifier.cc
74 sensitivity/HitProcess.cc
75 sensitivity/sensitiveID.cc""")
76 env.Library(source = sensi_sources, target = "lib/sensitivity")
80 env.Append(CPPPATH = 'physics')
81 phys_sources = Split("""
82 physics/PhysicsList.cc
83 physics/PhysicsListMessenger.cc""")
84 env.Library(source = phys_sources, target = "lib/physics")
87 env.Append(CPPPATH = 'fields')
88 field_sources = Split("""
90 fields/fieldFactory.cc
93 fields/multipoleField.cc
94 fields/symmetries/dipole.cc
95 fields/symmetries/cylindrical.cc
96 fields/symmetries/phi-segmented.cc""")
97 env.Library(source = field_sources, target = "lib/fields")
101 env.Append(CPPPATH = ['hitprocess', 'hitprocess/clas12', 'hitprocess/clas12/svt', 'hitprocess/clas12/micromegas'])
102 env.Append(CPPPATH = ['hitprocess/Aprime', 'hitprocess/GlueX', 'hitprocess/solid'])
103 hitp_sources = Split("""
104 hitprocess/HitProcess_MapRegister.cc
105 hitprocess/flux_hitprocess.cc
106 hitprocess/clas12/micromegas/FMT_hitprocess.cc
107 hitprocess/clas12/micromegas/fmt_strip.cc
108 hitprocess/clas12/micromegas/BMT_hitprocess.cc
109 hitprocess/clas12/micromegas/bmt_strip.cc
110 hitprocess/clas12/micromegas/ftm_hitprocess.cc
111 hitprocess/clas12/micromegas/ftm_strip.cc
112 hitprocess/clas12/bonus_hitprocess.cc
113 hitprocess/clas12/svt/bst_hitprocess.cc
114 hitprocess/clas12/svt/bst_strip.cc
115 hitprocess/clas12/ctof_hitprocess.cc
116 hitprocess/clas12/cnd_hitprocess.cc
117 hitprocess/clas12/dc_hitprocess.cc
118 hitprocess/clas12/ec_hitprocess.cc
119 hitprocess/clas12/ecs_hitprocess.cc
120 hitprocess/clas12/ftof_hitprocess.cc
121 hitprocess/clas12/ft_cal_hitprocess.cc
122 hitprocess/clas12/ft_hodo_hitprocess.cc
123 hitprocess/clas12/htcc_hitprocess.cc
124 hitprocess/clas12/ltcc_hitprocess.cc
125 hitprocess/clas12/pcal_hitprocess.cc
126 hitprocess/clas12/rich_hitprocess.cc
127 hitprocess/bdx/cormo_hitprocess.cc
128 hitprocess/bdx/veto_hitprocess.cc
129 hitprocess/bdx/crs_hitprocess.cc
130 hitprocess/injector/bubble_hitprocess.cc
131 hitprocess/HPS/ECAL_hitprocess.cc
132 hitprocess/HPS/SVT_hitprocess.cc
133 hitprocess/HPS/muon_hodo_hitprocess.cc""")
134 env.Library(source = hitp_sources, target = "lib/hitprocess")
138 env.Append(CPPPATH = 'output')
139 output_sources = Split("""
140 output/outputFactory.cc
141 output/evio_output.cc
144 env.Library(source = output_sources, target = "lib/output")
147 env.Append(CPPPATH = 'gui/src')
148 gui_sources = Split("""
149 gui/src/gemc_MainGui.cc
150 gui/src/detector_editor.cc
151 gui/src/runControl/run_control.cc
152 gui/src/runControl/primaryTab.cc
153 gui/src/runControl/momControls.cc
154 gui/src/runControl/vtxControls.cc
155 gui/src/camera_control.cc
156 gui/src/detector_tree.cc
160 gui/src/physicsListGui.cc
162 utilities/graph.cc""")
163 env.Library(source = gui_sources, target = "lib/gui")
167 env.Append(CPPPATH = 'src')
168 gemc_sources = Split("""
171 src/run_conditions.cc
173 src/MDetectorConstruction.cc
174 src/MDetectorMessenger.cc
176 src/MPrimaryGeneratorAction.cc
177 src/ActionInitialization.cc
178 src/MSteppingAction.cc""")
180 env.Append(LIBPATH = ['lib'])
181 env.Prepend(LIBS = ['materials', 'mirrors', 'parameters', 'utilities', 'detector', 'sensitivity', 'physics', 'fields', 'hitprocess', 'output', 'gui'])
182 env.Program(source = gemc_sources, target = "gemc")
185 if env['LIBRARY'] == "static":
186 env.Library(source = gemc_sources, target = "gemc")
189 if env['LIBRARY'] == "shared":
190 env.SharedLibrary(source = gemc_sources, target = "gemc")