Skip to content
Snippets Groups Projects
Commit 1e75b3f3 authored by Ole Hansen's avatar Ole Hansen Committed by Stephen A. Wood
Browse files

Modify CMake and SCons scripts for new Podd directory layout

Currently both CMake and SCons build not only libPodd, but also libHallA,
even though it is not required for hcana. hcana is linked only against
libPodd, however, so libHallA is simply a spurious byproduct.
parent 3133c9d1
Branches
Tags
No related merge requests found
...@@ -106,6 +106,14 @@ f.close() ...@@ -106,6 +106,14 @@ f.close()
print ('LIBS = %s\n' % pbaseenv.subst('$LIBS')) 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') analyzer = pbaseenv.Program(target = 'hcana', source = 'src/main.o')
pbaseenv.Install('./bin',analyzer) pbaseenv.Install('./bin',analyzer)
pbaseenv.Alias('install',['./bin']) pbaseenv.Alias('install',['./bin'])
......
...@@ -14,7 +14,7 @@ print('!!! Building the Hall C analyzer and libraries with SCons requires') ...@@ -14,7 +14,7 @@ print('!!! Building the Hall C analyzer and libraries with SCons requires')
print('!!! SCons version 2.5.0 or newer.') print('!!! SCons version 2.5.0 or newer.')
EnsureSConsVersion(2,5,0) 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 ############# ####### Hall A Build Environment #############
# #
...@@ -23,8 +23,8 @@ baseenv.Append(HC_DIR= baseenv.subst('$HEAD_DIR')) ...@@ -23,8 +23,8 @@ baseenv.Append(HC_DIR= baseenv.subst('$HEAD_DIR'))
baseenv.Append(HC_SRC= baseenv.subst('$HC_DIR')+'/src') baseenv.Append(HC_SRC= baseenv.subst('$HC_DIR')+'/src')
baseenv.Append(HA_DIR= baseenv.subst('$HC_DIR')+'/podd') baseenv.Append(HA_DIR= baseenv.subst('$HC_DIR')+'/podd')
baseenv.Append(MAIN_DIR= baseenv.subst('$HEAD_DIR')) baseenv.Append(MAIN_DIR= baseenv.subst('$HEAD_DIR'))
baseenv.Append(HA_SRC= baseenv.subst('$HA_DIR')+'/src') baseenv.Append(HA_Podd = os.path.join(baseenv.subst('$HA_DIR'),'Podd'))
baseenv.Append(HA_DC= baseenv.subst('$HA_DIR')+'/hana_decode') baseenv.Append(HA_DC = os.path.join(baseenv.subst('$HA_DIR'),'hana_decode'))
baseenv.Append(MAJORVERSION = '0') baseenv.Append(MAJORVERSION = '0')
baseenv.Append(MINORVERSION = '90') baseenv.Append(MINORVERSION = '90')
baseenv.Append(PATCH = '0') baseenv.Append(PATCH = '0')
...@@ -38,19 +38,12 @@ print ("Hall A Main Directory = %s" % baseenv.subst('$HA_DIR')) ...@@ -38,19 +38,12 @@ print ("Hall A Main Directory = %s" % baseenv.subst('$HA_DIR'))
print ("Software Version = %s" % baseenv.subst('$VERSION')) 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'))) 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(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')) sys.path.insert(1,baseenv.subst('$HA_DIR'+'/site_scons'))
import configure import configure
from rootcint import rootcint
configure.FindROOT(baseenv) 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 ########################### ######## cppcheck ###########################
...@@ -93,19 +86,19 @@ Export('baseenv') ...@@ -93,19 +86,19 @@ Export('baseenv')
####### Start of main SConstruct ############ ####### Start of main SConstruct ############
hallclib = 'HallC' hallclib = 'HallC'
hallalib = 'HallA' poddlib = 'Podd'
dclib = 'dc' 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(SHLIBSUFFIX = '.so')
baseenv.Replace(SOSUFFIX = baseenv.subst('$SHLIBSUFFIX')) baseenv.Replace(SOSUFFIX = baseenv.subst('$SHLIBSUFFIX'))
#baseenv.Replace(SHLIBSUFFIX = '.so') #baseenv.Replace(SHLIBSUFFIX = '.so')
baseenv.Append(SHLIBSUFFIX = '.'+baseenv.subst('$VERSION')) baseenv.Append(SHLIBSUFFIX = '.'+baseenv.subst('$VERSION'))
pbaseenv=baseenv.Clone() pbaseenv=baseenv.Clone()
pbaseenv.Prepend(LIBS=[hallclib,hallalib,dclib,eviolib]) pbaseenv.Prepend(LIBS=[hallclib,poddlib,dclib])
baseenv.Prepend(LIBS=[hallalib,dclib,eviolib]) baseenv.Prepend(LIBS=[poddlib,dclib])
Export('pbaseenv') Export('pbaseenv')
if pbaseenv['CXX'] == 'g++': if pbaseenv['CXX'] == 'g++':
......
Subproject commit e58d6959ef72f188811ba485f53945dde13141bf Subproject commit 234a66d6f9edc127c44a482e9f575b639d98a05f
...@@ -73,7 +73,7 @@ endif() ...@@ -73,7 +73,7 @@ endif()
target_link_libraries(${LIBNAME} target_link_libraries(${LIBNAME}
PUBLIC PUBLIC
Podd::HallA Podd::Podd
Podd::Decode Podd::Decode
) )
set_target_properties(${LIBNAME} PROPERTIES set_target_properties(${LIBNAME} PROPERTIES
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment