diff --git a/SConscript.py b/SConscript.py index 105c617ac99194727b33e881c5b786c4e6e2f809..c8f4ccd2eb1bcf9a15947594684d152be4f15c1c 100644 --- a/SConscript.py +++ b/SConscript.py @@ -106,6 +106,14 @@ f.close() print ('LIBS = %s\n' % pbaseenv.subst('$LIBS')) +# SCons seems to ignore $RPATH on macOS... sigh +if pbaseenv['PLATFORM'] == 'darwin': + try: + for rp in pbaseenv['RPATH']: + pbaseenv.Append(LINKFLAGS = ['-Wl,-rpath,'+rp]) + except KeyError: + pass + analyzer = pbaseenv.Program(target = 'hcana', source = 'src/main.o') pbaseenv.Install('./bin',analyzer) pbaseenv.Alias('install',['./bin']) diff --git a/SConstruct b/SConstruct index 9ea5ad97da95b7f895fee08cd9d017cef30d5af8..d5651fe480d86023c153c110bbdeeefa785c5c79 100644 --- a/SConstruct +++ b/SConstruct @@ -14,7 +14,7 @@ print('!!! Building the Hall C analyzer and libraries with SCons requires') print('!!! SCons version 2.5.0 or newer.') EnsureSConsVersion(2,5,0) -baseenv = Environment(ENV = os.environ,tools=["default"],toolpath=['podd/site_scons']) +baseenv = Environment(ENV = os.environ,tools=["default","rootcint"],toolpath=['podd/site_scons']) ####### Hall A Build Environment ############# # @@ -23,8 +23,8 @@ baseenv.Append(HC_DIR= baseenv.subst('$HEAD_DIR')) baseenv.Append(HC_SRC= baseenv.subst('$HC_DIR')+'/src') baseenv.Append(HA_DIR= baseenv.subst('$HC_DIR')+'/podd') baseenv.Append(MAIN_DIR= baseenv.subst('$HEAD_DIR')) -baseenv.Append(HA_SRC= baseenv.subst('$HA_DIR')+'/src') -baseenv.Append(HA_DC= baseenv.subst('$HA_DIR')+'/hana_decode') +baseenv.Append(HA_Podd = os.path.join(baseenv.subst('$HA_DIR'),'Podd')) +baseenv.Append(HA_DC = os.path.join(baseenv.subst('$HA_DIR'),'hana_decode')) baseenv.Append(MAJORVERSION = '0') baseenv.Append(MINORVERSION = '90') baseenv.Append(PATCH = '0') @@ -38,19 +38,12 @@ print ("Hall A Main Directory = %s" % baseenv.subst('$HA_DIR')) print ("Software Version = %s" % baseenv.subst('$VERSION')) ivercode = 65536*int(float(baseenv.subst('$SOVERSION')))+ 256*int(10*(float(baseenv.subst('$SOVERSION'))-int(float(baseenv.subst('$SOVERSION')))))+ int(float(baseenv.subst('$PATCH'))) baseenv.Append(VERCODE = ivercode) -baseenv.Append(CPPPATH = ['$HC_SRC','$HA_SRC','$HA_DC']) +baseenv.Append(CPPPATH = ['$HC_SRC','$HA_Podd','$HA_DC']) sys.path.insert(1,baseenv.subst('$HA_DIR'+'/site_scons')) import configure -from rootcint import rootcint configure.FindROOT(baseenv) -# If EVIO is set up, use it. Otherwise the Podd submodule will build it -# and we will pick it up from there -configure.FindEVIO(baseenv, build_it = False, fail_if_missing = False) - -bld = Builder(action=rootcint) -baseenv.Append(BUILDERS = {'RootCint': bld}) ######## cppcheck ########################### @@ -93,19 +86,19 @@ Export('baseenv') ####### Start of main SConstruct ############ hallclib = 'HallC' -hallalib = 'HallA' +poddlib = 'Podd' dclib = 'dc' -eviolib = 'evio' -baseenv.Append(LIBPATH=['$HC_DIR','$EVIO_LIB','$HA_DIR','$HC_SRC','$HA_SRC','$HA_DC']) +baseenv.Append(LIBPATH=['$HC_DIR','$HC_SRC','$HA_Podd','$HA_DC']) +baseenv.Append(RPATH=['$HC_DIR','$HA_Podd','$HA_DC']) baseenv.Replace(SHLIBSUFFIX = '.so') baseenv.Replace(SOSUFFIX = baseenv.subst('$SHLIBSUFFIX')) #baseenv.Replace(SHLIBSUFFIX = '.so') baseenv.Append(SHLIBSUFFIX = '.'+baseenv.subst('$VERSION')) pbaseenv=baseenv.Clone() -pbaseenv.Prepend(LIBS=[hallclib,hallalib,dclib,eviolib]) -baseenv.Prepend(LIBS=[hallalib,dclib,eviolib]) +pbaseenv.Prepend(LIBS=[hallclib,poddlib,dclib]) +baseenv.Prepend(LIBS=[poddlib,dclib]) Export('pbaseenv') if pbaseenv['CXX'] == 'g++': diff --git a/podd b/podd index e58d6959ef72f188811ba485f53945dde13141bf..234a66d6f9edc127c44a482e9f575b639d98a05f 160000 --- a/podd +++ b/podd @@ -1 +1 @@ -Subproject commit e58d6959ef72f188811ba485f53945dde13141bf +Subproject commit 234a66d6f9edc127c44a482e9f575b639d98a05f diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 151419edabe768a314a8fc19c08572412f97236e..66d869664a1c5789cb5e5cc6d990dcd39de1e2a0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -73,7 +73,7 @@ endif() target_link_libraries(${LIBNAME} PUBLIC - Podd::HallA + Podd::Podd Podd::Decode ) set_target_properties(${LIBNAME} PROPERTIES