move Icon building down into separate SConscript
14
SConstruct
|
|
@ -57,18 +57,6 @@ env = Platform.configure(env)
|
|||
|
||||
#####################################################################
|
||||
|
||||
# define Icons to render and install
|
||||
vector_icon_dir = env.subst(env.path.srcIcon+'svg')
|
||||
prerendered_icon_dir = env.subst(env.path.srcIcon+'prerendered')
|
||||
icons = ( [env.IconRender(f) for f in scanSubtree(vector_icon_dir, ['*.svg'])]
|
||||
+ [env.IconResource(f) for f in scanSubtree(prerendered_icon_dir, ['*.png'])]
|
||||
)
|
||||
|
||||
#define Configuration files to install
|
||||
config = ( env.ConfigData(env.path.srcConf+'setup.ini', targetDir='$ORIGIN')
|
||||
+ env.ConfigData(env.path.srcConf+'dummy_lumiera.ini')
|
||||
)
|
||||
|
||||
doxydoc = env.Doxygen('doc/devel/Doxyfile')
|
||||
env.Alias ('doc', doxydoc)
|
||||
env.Clean ('doc', doxydoc + ['doc/devel/,doxylog','doc/devel/warnings.txt'])
|
||||
|
|
@ -79,7 +67,7 @@ env.Clean ('doc', doxydoc + ['doc/devel/,doxylog','doc/devel/warnings.txt'])
|
|||
### === MAIN BUILD === ##############################################
|
||||
|
||||
# call subdir SConscript(s) for to define the actual build targets
|
||||
SConscript(dirs=['src','src/tool','research','tests'], exports='env icons config')
|
||||
SConscript(dirs=['data','src','src/tool','research','tests'], exports='env')
|
||||
|
||||
# artifacts defined by the build targets
|
||||
Import('lumiera plugins tools gui testsuite')
|
||||
|
|
|
|||
|
|
@ -136,8 +136,9 @@ def getDirname (d, basePrefix=None):
|
|||
d,_ = os.path.split(d)
|
||||
if basePrefix:
|
||||
basePrefix = os.path.realpath(basePrefix)
|
||||
name = str(d)
|
||||
if str(d).startswith(basePrefix):
|
||||
name = str(d)[len(basePrefix):]
|
||||
name = name[len(basePrefix):]
|
||||
else:
|
||||
_, name = os.path.split(d)
|
||||
return name
|
||||
|
|
|
|||
|
|
@ -171,13 +171,14 @@ def register_LumieraResourceBuilder(env):
|
|||
env.Install (toInstall, source)
|
||||
return env.Install(toBuild, source)
|
||||
|
||||
def ConfigData(env, source, targetDir=None):
|
||||
def ConfigData(env, prefix, source, targetDir=None):
|
||||
""" install (copy) configuration- and metadata.
|
||||
target dir is either the install location configured (in SConstruct),
|
||||
or an explicitly given absolute or relative path segment, which might refer
|
||||
to the location of the executable through the $ORIGIN token
|
||||
"""
|
||||
subdir = getDirname(str(source), env.path.srcConf) # removes source location path prefix
|
||||
source = path.join(prefix,str(source))
|
||||
subdir = getDirname(source, prefix) # removes source location path prefix
|
||||
if targetDir:
|
||||
if path.isabs(targetDir):
|
||||
toBuild = toInstall = path.join(targetDir,subdir)
|
||||
|
|
|
|||
|
|
@ -37,8 +37,6 @@ OPTCACHE = 'optcache'
|
|||
CUSTOPTFILE = 'custom-options'
|
||||
|
||||
# these are accessible via env.path.xxxx
|
||||
srcIcon = 'icons'
|
||||
srcConf = 'data/config'
|
||||
buildExe = '#$TARGDIR'
|
||||
buildLib = '#$TARGDIR/modules'
|
||||
buildPlug = '#$TARGDIR/modules'
|
||||
|
|
|
|||
25
data/SConscript
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# -*- python -*-
|
||||
##
|
||||
## SConscript - SCons buildscript for Icons and Resources
|
||||
##
|
||||
|
||||
from Buildhelper import scanSubtree
|
||||
|
||||
Import('env')
|
||||
|
||||
|
||||
# define Icons to render and install
|
||||
vector_icon_dir = 'icons/svg'
|
||||
prerendered_icon_dir = 'icons/prerendered'
|
||||
|
||||
icons = ( [env.IconRender(f) for f in scanSubtree(vector_icon_dir, ['*.svg'])]
|
||||
+ [env.IconResource(f) for f in scanSubtree(prerendered_icon_dir, ['*.png'])]
|
||||
)
|
||||
|
||||
#define Configuration files to install (dir-prefix, name)
|
||||
config = ( env.ConfigData('config','setup.ini', targetDir='$ORIGIN')
|
||||
+ env.ConfigData('config','dummy_lumiera.ini')
|
||||
)
|
||||
|
||||
|
||||
Export('icons config')
|
||||
26
data/icons/README
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#
|
||||
# Lumiera Icon Artwork
|
||||
#
|
||||
# Copyright (C) Lumiera.org
|
||||
# 2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
#
|
||||
# Icon Artwork and similar materials accompanying the Lumiera Application
|
||||
# is dual-licensed under the GNU General Public License version 2 or above,
|
||||
# and
|
||||
# Creative Commons Attribution-ShareAlike 3.0 Unported License
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
This directory holds Icons and similar graphics resources for the Lumiera GUI.
|
||||
|
||||
- prerendered: Raster image Icons rendered into a selection of sizes
|
||||
- svg: Scalable Vector Grahpics Icons, to be rendered into suitable sizes
|
||||
by the build process. Rendering is done with the help of lib Cairo.
|
||||
The build creates an executable from src/tools/rsvg-convert.c
|
||||
The invocation of the icon rendering is done with the help of a
|
||||
Python script IconSvgRenderer.py, which first parses the SVG document
|
||||
and then invokes rsvg-convert to generate the raster images.
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 540 B After Width: | Height: | Size: 540 B |
|
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B |
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 695 B After Width: | Height: | Size: 695 B |
|
Before Width: | Height: | Size: 788 B After Width: | Height: | Size: 788 B |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
|
@ -1,97 +0,0 @@
|
|||
# Copyright (C) Lumiera.org
|
||||
# 2008, Joel Holdsworth <joel@airwebreathe.org.uk>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
svgdir = $(top_srcdir)/icons/svg
|
||||
prerendereddir = $(top_srcdir)/icons/prerendered
|
||||
icondir = $(top_builddir)
|
||||
iconcommand = python $(top_srcdir)/admin/render_icon.py
|
||||
|
||||
16x16 = $(icondir)/16x16
|
||||
22x22 = $(icondir)/22x22
|
||||
24x24 = $(icondir)/24x24
|
||||
32x32 = $(icondir)/32x32
|
||||
48x48 = $(icondir)/48x48
|
||||
|
||||
16x16pre = $(prerendereddir)/16x16
|
||||
22x22pre = $(prerendereddir)/22x22
|
||||
24x24pre = $(prerendereddir)/24x24
|
||||
32x32pre = $(prerendereddir)/32x32
|
||||
48x48pre = $(prerendereddir)/48x48
|
||||
|
||||
icons = \
|
||||
$(16x16)/app-icon.png $(22x22)/app-icon.png $(24x24)/app-icon.png $(32x32)/app-icon.png $(48x48)/app-icon.png \
|
||||
$(16x16)/tool-arrow.png $(22x22)/tool-arrow.png $(24x24)/tool-arrow.png $(32x32)/tool-arrow.png $(48x48)/tool-arrow.png \
|
||||
$(16x16)/tool-i-beam.png $(22x22)/tool-i-beam.png $(24x24)/tool-i-beam.png $(32x32)/tool-i-beam.png $(48x48)/tool-i-beam.png \
|
||||
$(16x16)/track-disabled.png \
|
||||
$(16x16)/track-enabled.png \
|
||||
$(16x16)/track-locked.png \
|
||||
$(16x16)/track-unlocked.png \
|
||||
$(16x16)/panel-assets.png $(22x22)/panel-assets.png $(32x32)/panel-assets.png \
|
||||
$(16x16)/panel-timeline.png \
|
||||
$(16x16)/panel-viewer.png $(22x22)/panel-viewer.png $(32x32)/panel-viewer.png
|
||||
|
||||
dist_pkgdata_DATA += $(icons)
|
||||
|
||||
all: $(icons)
|
||||
|
||||
clean-local:
|
||||
rm -rf $(16x16) $(22x22) $(24x24) $(32x32) $(48x48)
|
||||
|
||||
# ========== SVG Icons ==========
|
||||
|
||||
# App Icon
|
||||
|
||||
$(16x16)/app-icon.png $(22x22)/app-icon.png $(24x24)/app-icon.png $(32x32)/app-icon.png $(48x48)/app-icon.png : $(svgdir)/app-icon.svg $(top_builddir)/rsvg-convert
|
||||
$(iconcommand) $< $(icondir)
|
||||
|
||||
# Timeline Tools
|
||||
|
||||
$(16x16)/tool-arrow.png $(22x22)/tool-arrow.png $(24x24)/tool-arrow.png $(32x32)/tool-arrow.png $(48x48)/tool-arrow.png : $(svgdir)/tool-arrow.svg $(top_builddir)/rsvg-convert
|
||||
$(iconcommand) $< $(icondir)
|
||||
$(16x16)/tool-i-beam.png $(22x22)/tool-i-beam.png $(24x24)/tool-i-beam.png $(32x32)/tool-i-beam.png $(48x48)/tool-i-beam.png : $(svgdir)/tool-i-beam.svg $(top_builddir)/rsvg-convert
|
||||
$(iconcommand) $< $(icondir)
|
||||
|
||||
# Timeline Tracks
|
||||
$(16x16)/track-disabled.png : $(svgdir)/track-disabled.svg $(top_builddir)/rsvg-convert
|
||||
$(iconcommand) $< $(icondir)
|
||||
$(16x16)/track-enabled.png : $(svgdir)/track-enabled.svg $(top_builddir)/rsvg-convert
|
||||
$(iconcommand) $< $(icondir)
|
||||
$(16x16)/track-locked.png : $(svgdir)/track-locked.svg $(top_builddir)/rsvg-convert
|
||||
$(iconcommand) $< $(icondir)
|
||||
$(16x16)/track-unlocked.png : $(svgdir)/track-unlocked.svg $(top_builddir)/rsvg-convert
|
||||
$(iconcommand) $< $(icondir)
|
||||
|
||||
# ========== Prerendered Icons ==========
|
||||
|
||||
# Panels
|
||||
|
||||
$(16x16)/panel-assets.png: $(16x16pre)/panel-assets.png
|
||||
cp $(16x16pre)/panel-assets.png $(16x16)
|
||||
$(22x22)/panel-assets.png: $(22x22pre)/panel-assets.png
|
||||
cp $(22x22pre)/panel-assets.png $(22x22)
|
||||
$(32x32)/panel-assets.png: $(32x32pre)/panel-assets.png
|
||||
cp $(32x32pre)/panel-assets.png $(32x32)
|
||||
|
||||
$(16x16)/panel-timeline.png: $(16x16pre)/panel-timeline.png
|
||||
cp $(16x16pre)/panel-timeline.png $(16x16)
|
||||
|
||||
$(16x16)/panel-viewer.png: $(16x16pre)/panel-viewer.png
|
||||
cp $(16x16pre)/panel-viewer.png $(16x16)
|
||||
$(22x22)/panel-viewer.png: $(22x22pre)/panel-viewer.png
|
||||
cp $(22x22pre)/panel-viewer.png $(22x22)
|
||||
$(32x32)/panel-viewer.png: $(32x32pre)/panel-viewer.png
|
||||
cp $(32x32pre)/panel-viewer.png $(32x32)
|
||||
|
|
@ -26,7 +26,7 @@ lumiera = ( env.Program('lumiera', ['lumiera/main.cpp'] + core, install=True)
|
|||
|
||||
# Install the lumiera application:
|
||||
# symlink the executable into the bin dir
|
||||
env.SymLink('$DESTDIR/bin/lumiera',env.path.installExe+'lumiera','../lib/lumiera/lumiera')
|
||||
env.SymLink('#$DESTDIR/bin/lumiera',env.path.installExe+'lumiera','../lib/lumiera/lumiera')
|
||||
|
||||
|
||||
# building Lumiera Plugins
|
||||
|
|
|
|||