Skip to content
Snippets Groups Projects
Commit 3840ef25 authored by Edward Brash's avatar Edward Brash Committed by Stephen A. Wood
Browse files

Updates to allow autodetection of *.h and *.cpp files, and

autogeneration of src/HallC_LinkDef.h - all using SCons
parent 766ca92e
No related branches found
No related tags found
No related merge requests found
......@@ -10,23 +10,40 @@ Import ('pbaseenv')
roothcdict = pbaseenv.subst('$HC_DIR')+'/HallCDict.C'
roothcobj = pbaseenv.subst('$HC_SRC')+'/HallCDict.so'
hcheaders = Split("""
src/THcInterface.h src/THcParmList.h src/THcAnalyzer.h src/THcHallCSpectrometer.h
src/THcDetectorMap.h src/THcRawHit.h src/THcHitList.h src/THcSignalHit.h src/THcHodoscope.h
src/THcScintillatorPlane.h src/THcRawHodoHit.h src/THcHodoHit.h
src/THcDC.h src/THcDriftChamberPlane.h
src/THcDriftChamber.h src/THcRawDCHit.h src/THcDCHit.h src/THcDCWire.h src/THcSpacePoint.h
src/THcDCLookupTTDConv.h src/THcDCTimeToDistConv.h src/THcShower.h src/THcShowerPlane.h
src/THcShowerArray.h src/THcShowerHit.h
src/THcRawShowerHit.h src/THcAerogel.h src/THcAerogelHit.h src/THcCherenkov.h src/THcCherenkovHit.h
src/THcGlobals.h src/THcDCTrack.h src/THcFormula.h
src/THcRaster.h src/THcRasteredBeam.h src/THcRasterRawHit.h src/THcScalerEvtHandler.h
src/THcConfigEvtHandler.h src/THcHodoEff.h
src/THcTrigApp.h src/THcTrigDet.h src/THcTrigRawHit.h
src/THcRawAdcHit.h src/THcRawTdcHit.h
src/THcDummySpectrometer.h
src/HallC_LinkDef.h
""")
hcheadersbase = Glob('src/*.h',exclude=['src/THcGlobals.h','src/HallC_LinkDef.h'])
cmd = "echo '#ifdef __CINT__' > src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo ' ' >> src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo '#pragma link off all globals;' >> src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo '#pragma link off all classes;' >> src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo '#pragma link off all functions;' >> src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo ' ' >> src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo '#pragma link C++ global gHcParms;' >> src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo '#pragma link C++ global gHcDetectorMap;' >> src/HallC_LinkDef.h"
os.system(cmd)
cmd = "echo ' ' >> src/HallC_LinkDef.h"
os.system(cmd)
for hcheaderfile in hcheadersbase:
filename = '%s' % hcheaderfile
basefilename = filename.rsplit('.',1)
newbasefilename = basefilename[0].rsplit('/',1)
cmd1 = "echo '#pragma link C++ class %s+;' >> src/HallC_LinkDef.h" % newbasefilename[1]
os.system(cmd1)
cmd = "echo '#endif' >> src/HallC_LinkDef.h"
os.system(cmd)
hcheaders = Glob('src/*.h',exclude=['src/HallC_LinkDef.h'])+Glob('src/HallC_LinkDef.h')
pbaseenv.RootCint(roothcdict,hcheaders)
pbaseenv.SharedObject(target = roothcobj, source = roothcdict)
......
......@@ -33,8 +33,8 @@ baseenv = Environment(ENV = os.environ)
####### Check SCons version ##################
print('!!! Building the Hall C analyzer and libraries with SCons requires')
print('!!! SCons version 2.1.0 or newer.')
EnsureSConsVersion(2,1,0)
print('!!! SCons version 2.5.0 or newer.')
EnsureSConsVersion(2,5,0)
####### Hall A Build Environment #############
#
......
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ global gHcParms;
#pragma link C++ global gHcDetectorMap;
//#ifdef MACVERS
//#pragma link C++ global gHaVars;
//#pragma link C++ global gHaCuts;
//#pragma link C++ global gHaApps;
//#pragma link C++ global gHaScalers;
//#pragma link C++ global gHaPhysics;
//#pragma link C++ global gHaRun;
//#pragma link C++ global gHaDB;
//#pragma link C++ global gHaTextvars;
//#pragma link C++ global gHaDecoder;
//#endif
#pragma link C++ class THcInterface+;
#pragma link C++ class THcParmList+;
#pragma link C++ class THcAerogel+;
#pragma link C++ class THcAerogelHit+;
#pragma link C++ class THcAnalyzer+;
#pragma link C++ class THcHallCSpectrometer+;
#pragma link C++ class THcDetectorMap+;
#pragma link C++ class THcRawHit+;
#pragma link C++ class THcHitList+;
#pragma link C++ class THcSignalHit+;
#pragma link C++ class THcHodoscope+;
#pragma link C++ class THcScintillatorPlane+;
#pragma link C++ class THcRawHodoHit+;
#pragma link C++ class THcHodoHit+;
#pragma link C++ class THcCherenkov+;
#pragma link C++ class THcCherenkovHit+;
#pragma link C++ class THcConfigEvtHandler+;
#pragma link C++ class THcDC+;
#pragma link C++ class THcDriftChamber+;
#pragma link C++ class THcDriftChamberPlane+;
#pragma link C++ class THcRawDCHit+;
#pragma link C++ class THcDCHit+;
#pragma link C++ class THcDCWire+;
#pragma link C++ class THcDCLookupTTDConv+;
#pragma link C++ class THcDCTimeToDistConv+;
#pragma link C++ class THcSpacePoint+;
#pragma link C++ class THcDCTrack+;
#pragma link C++ class THcShower+;
#pragma link C++ class THcShowerPlane+;
#pragma link C++ class THcShowerArray+;
#pragma link C++ class THcShowerHit+;
#pragma link C++ class THcRawShowerHit+;
#pragma link C++ class THcAerogel+;
#pragma link C++ class THcAerogelHit+;
#pragma link C++ class THcCherenkov+;
#pragma link C++ class THcCherenkovHit+;
#pragma link C++ class THcDCWire+;
#pragma link C++ class THcDetectorMap+;
#pragma link C++ class THcDriftChamber+;
#pragma link C++ class THcDriftChamberPlane+;
#pragma link C++ class THcDummySpectrometer+;
#pragma link C++ class THcFormula+;
#pragma link C++ class THcHallCSpectrometer+;
#pragma link C++ class THcHitList+;
#pragma link C++ class THcHodoEff+;
#pragma link C++ class THcHodoHit+;
#pragma link C++ class THcHodoscope+;
#pragma link C++ class THcInterface+;
#pragma link C++ class THcParmList+;
#pragma link C++ class THcRaster+;
#pragma link C++ class THcRasteredBeam+;
#pragma link C++ class THcRasterRawHit+;
#pragma link C++ class THcRasteredBeam+;
#pragma link C++ class THcRawAdcHit+;
#pragma link C++ class THcRawDCHit+;
#pragma link C++ class THcRawHit+;
#pragma link C++ class THcRawHodoHit+;
#pragma link C++ class THcRawShowerHit+;
#pragma link C++ class THcRawTdcHit+;
#pragma link C++ class THcScalerEvtHandler+;
#pragma link C++ class THcConfigEvtHandler+;
#pragma link C++ class THcHodoEff+;
#pragma link C++ class THcScintillatorPlane+;
#pragma link C++ class THcShower+;
#pragma link C++ class THcShowerArray+;
#pragma link C++ class THcShowerHit+;
#pragma link C++ class THcShowerPlane+;
#pragma link C++ class THcSignalHit+;
#pragma link C++ class THcSpacePoint+;
#pragma link C++ class THcTrigApp+;
#pragma link C++ class THcTrigDet+;
#pragma link C++ class THcTrigRawHit+;
#pragma link C++ class THcRawAdcHit+;
#pragma link C++ class THcRawTdcHit+;
#pragma link C++ class THcDummySpectrometer+;
#endif
......@@ -6,32 +6,7 @@ import re
import SCons.Util
Import('pbaseenv')
list = Split("""
THcInterface.cxx THcParmList.cxx THcAnalyzer.cxx
THcHallCSpectrometer.cxx
THcDetectorMap.cxx
THcRawHit.cxx THcHitList.cxx
THcSignalHit.cxx
THcHodoscope.cxx THcScintillatorPlane.cxx
THcRawHodoHit.cxx THcHodoHit.cxx
THcDC.cxx THcDriftChamberPlane.cxx
THcDriftChamber.cxx
THcRawDCHit.cxx THcDCHit.cxx
THcDCWire.cxx
THcSpacePoint.cxx THcDCTrack.cxx
THcDCLookupTTDConv.cxx THcDCTimeToDistConv.cxx
THcShower.cxx THcShowerPlane.cxx THcShowerArray.cxx
THcRawShowerHit.cxx THcShowerHit.cxx
THcAerogel.cxx THcAerogelHit.cxx
THcCherenkov.cxx THcCherenkovHit.cxx
THcFormula.cxx
THcRaster.cxx THcRasteredBeam.cxx THcRasterRawHit.cxx
THcScalerEvtHandler.cxx THcConfigEvtHandler.cxx
THcTrigApp.cxx THcTrigDet.cxx THcTrigRawHit.cxx
THcRawAdcHit.cxx THcRawTdcHit.cxx
THcDummySpectrometer.cxx
THcHodoEff.cxx
""")
list = Glob('*.cxx', exclude=['main.C'])
pbaseenv.Object('main.C')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment