diff --git a/SConstruct b/SConstruct index 91b9f9066..c1466d66b 100644 --- a/SConstruct +++ b/SConstruct @@ -93,10 +93,10 @@ def setupBasicEnvironment(): appendVal(env,'DEBUG', 'CCFLAGS', val=' -ggdb') # setup search path for Lumiera plugins - appendCppDefine(env,'PKGLIBDIR','LUMIERA_PLUGIN_PATH=\\"$PKGLIBDIR\\"' - ,'LUMIERA_PLUGIN_PATH=\\"$DESTDIR/lib/lumiera\\"') - appendCppDefine(env,'PKGDATADIR','LUMIERA_CONFIG_PATH=\\"$PKGLIBDIR\\"' - ,'LUMIERA_CONFIG_PATH=\\"$DESTDIR/share/lumiera\\"') + appendCppDefine(env,'PKGLIBDIR','LUMIERA_PLUGIN_PATH=\\"$PKGLIBDIR/:./.libs\\"' + ,'LUMIERA_PLUGIN_PATH=\\"$DESTDIR/lib/lumiera/:./.libs\\"') + appendCppDefine(env,'PKGDATADIR','LUMIERA_CONFIG_PATH=\\"$PKGLIBDIR/:.\\"' + ,'LUMIERA_CONFIG_PATH=\\"$DESTDIR/share/lumiera/:.\\"') prepareOptionsHelp(opts,env) opts.Save(OPTIONSCACHEFILE, env) @@ -257,14 +257,18 @@ def configurePlatform(env): if not conf.CheckPkgConfig('glibmm-2.4', '2.16'): problems.append('Unable to configure Lib glib--, exiting.') - if not conf.CheckPkgConfig('gthread-2.0', '2.16'): + if not conf.CheckPkgConfig('gthread-2.0', '2.12.4'): problems.append('Need gthread support lib for glib-- based thread handling.') if not conf.CheckPkgConfig('cairomm-1.0', 0.6): problems.append('Unable to configure Cairo--, exiting.') - if not conf.CheckPkgConfig('gdl-1.0', '0.6.1'): - problems.append('Unable to configure the GNOME DevTool Library.') + verGDL = '2.27.1' + if not conf.CheckPkgConfig('gdl-lum', verGDL, alias='gdl'): + print 'Custom package "gdl-lum" not found. Trying official GDL release >=%s...' % verGDL + if not conf.CheckPkgConfig('gdl-1.0', verGDL, alias='gdl'): + problems.append('GNOME Docking Library not found. We either need a very recent GDL ' + 'version (>=%s), or the custom package "gdl-lum".' % verGDL) if not conf.CheckPkgConfig('librsvg-2.0', '2.18.1'): problems.append('Need rsvg Library for rendering icons.') @@ -340,13 +344,6 @@ def defineBuildTargets(env, artifacts): envPlu.Append(CPPDEFINES='LUMIERA_PLUGIN') artifacts['plugins'] = [] # currently none - - # the Lumiera GTK GUI - envGtk = env.Clone() - envGtk.mergeConf(['gtkmm-2.4','cairomm-1.0','gdl-1.0','librsvg-2.0','xv','xext','sm']) - envGtk.Append(CPPDEFINES='LUMIERA_PLUGIN', LIBS=core) - objgui = srcSubtree(envGtk,'$SRCDIR/gui') - # render and install Icons vector_icon_dir = env.subst('$ICONDIR/svg') prerendered_icon_dir = env.subst('$ICONDIR/prerendered') @@ -354,15 +351,20 @@ def defineBuildTargets(env, artifacts): + [env.IconCopy(f) for f in scanSubtree(prerendered_icon_dir, ['*.png'])] ) - guimodule = envGtk.LoadableModule('$LIBDIR/gtk_gui', objgui, SHLIBPREFIX='', SHLIBSUFFIX='.lum') - artifacts['lumigui'] = ( guimodule - + envGtk.Program('$BINDIR/lumigui', objgui ) - + env.Install('$BINDIR', env.Glob('$SRCDIR/gui/*.rc')) - + artifacts['icons'] - ) + # the Lumiera GTK GUI + envGtk = env.Clone() + envGtk.mergeConf(['gtkmm-2.4','cairomm-1.0','gdl','xv','xext','sm']) + envGtk.Append(CPPDEFINES='LUMIERA_PLUGIN', LIBS=core) + objgui = srcSubtree(envGtk,'$SRCDIR/gui') + guimodule = envGtk.LoadableModule('$LIBDIR/gtk_gui', objgui, SHLIBPREFIX='', SHLIBSUFFIX='.lum') + artifacts['gui'] = ( guimodule + + env.Install('$BINDIR', env.Glob('$SRCDIR/gui/*.rc')) + + artifacts['icons'] + ) + # call subdir SConscript(s) for independent components - SConscript(dirs=[SRCDIR+'/tool'], exports='env envGtk artifacts core') + SConscript(dirs=[SRCDIR+'/tool'], exports='env artifacts core') SConscript(dirs=[TESTDIR], exports='env envPlu artifacts core') @@ -375,7 +377,7 @@ def definePostBuildTargets(env, artifacts): il = env.Alias('install-lib', '$DESTDIR/lib') env.Alias('install', [ib, il]) - build = env.Alias('build', artifacts['lumiera']+artifacts['lumigui']+artifacts['plugins']+artifacts['tools']) + build = env.Alias('build', artifacts['lumiera']+artifacts['gui']+artifacts['plugins']+artifacts['tools']) allbu = env.Alias('allbuild', build+artifacts['testsuite']) env.Default('build') # additional files to be cleaned when cleaning 'build' @@ -416,6 +418,7 @@ artifacts = {} # Each entry actually is a SCons-Node list. # Passing these entries to other builders defines dependencies. # 'lumiera' : the App +# 'gui' : the GTK UI (plugin) # 'plugins' : plugin shared lib # 'tools' : small tool applications (e.g mpegtoc) # 'src,tar' : source tree as tarball (without doc) diff --git a/admin/scons/LumieraEnvironment.py b/admin/scons/LumieraEnvironment.py index 2d8f1bb01..44b76ed07 100644 --- a/admin/scons/LumieraEnvironment.py +++ b/admin/scons/LumieraEnvironment.py @@ -63,7 +63,7 @@ class LumieraEnvironment(Environment): return self - def addLibInfo (self, libID, minVersion=0): + def addLibInfo (self, libID, minVersion=0, alias=None): """ use pkg-config to create an Environment describing the lib. Don't add this defs to the current Environment, rather store them in the libInfo Dictionary. @@ -73,8 +73,10 @@ class LumieraEnvironment(Environment): print "Problems configuring the Library %s (>= %s)" % (libID,minVersion) return False - self.libInfo[libID] = libInfo = LumieraEnvironment() + self.libInfo[libID] = libInfo = LumieraEnvironment() libInfo.ParseConfig ('pkg-config --cflags --libs '+ libID ) + if alias: + self.libInfo[alias] = libInfo return libInfo def Glob (self, pattern): @@ -88,8 +90,8 @@ class LumieraEnvironment(Environment): #### temporary pre 1.0 SCons compatibility hack #### -_ver = map(int, SCons.__version__.split('.')) -_old = (_ver[0]<1 and _ver[1]<98) +_ver = map(int, SCons.__version__.split('.')[:2]) +_old = (_ver[0]<1 and _ver[1]<97) if _old: ConfigBase = SCons.SConf.SConf else: @@ -107,9 +109,9 @@ class LumieraConfigContext(ConfigBase): def __init__(self, *args,**kw): ConfigBase.__init__(self,*args,**kw) - def CheckPkgConfig (self, libID, minVersion=0): + def CheckPkgConfig (self, libID, minVersion=0, alias=None): print "Checking for library configuration: %s " % libID # self.Message(self,"Checking for library configuration: %s " % libID) - return self.env.addLibInfo (libID, minVersion) + return self.env.addLibInfo (libID, minVersion, alias) diff --git a/icons/svg/tool-arrow.svg b/icons/svg/tool-arrow.svg index 84807f4fb..03930ad40 100644 --- a/icons/svg/tool-arrow.svg +++ b/icons/svg/tool-arrow.svg @@ -19,6 +19,13 @@ inkscape:output_extension="org.inkscape.output.svg.inkscape"> + @@ -185,7 +192,7 @@ xlink:href="#linearGradient10554" id="linearGradient7986" gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.7041896,0,0,0.7041896,-40.406443,-220.43015)" + gradientTransform="matrix(0.7041896,0,0,0.7041896,-41.406433,-220.43017)" x1="240.9062" y1="425.18195" x2="248.28683" @@ -195,7 +202,7 @@ xlink:href="#linearGradient124" id="radialGradient7989" gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.5869533,0,0,0.8448423,-51.871574,-221.82034)" + gradientTransform="matrix(0.5869533,0,0,0.8448423,-52.871564,-221.82036)" cx="307.7507" cy="361.47824" fx="307.7507" @@ -206,7 +213,7 @@ xlink:href="#linearGradient124" id="linearGradient7992" gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.559542,1.292457,-0.3231142,0.1398855,-51.871571,-221.82034)" + gradientTransform="matrix(0.559542,1.292457,-0.3231142,0.1398855,-52.871561,-221.82036)" x1="253.75711" y1="-129.52815" x2="252.00447" @@ -222,9 +229,9 @@ objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="5.6568545" - inkscape:cx="67.786397" - inkscape:cy="10.056284" + inkscape:zoom="22.627418" + inkscape:cx="121.33645" + inkscape:cy="16.380045" inkscape:document-units="px" inkscape:current-layer="layer3" showgrid="true" @@ -294,22 +301,22 @@ sodipodi:nodetypes="ccccc" />