SCons: remove the homebrew tarballer
that was a nice SCons learning exercise, but never used moreover, packaing is not the concern of a build system
This commit is contained in:
parent
a6810957b4
commit
7993759f8e
2 changed files with 1 additions and 87 deletions
12
SConstruct
12
SConstruct
|
|
@ -169,8 +169,6 @@ def defineCmdlineVariables():
|
||||||
,PathVariable('INSTALLDIR', 'Root output directory for install. Final installation will happen in INSTALLDIR/PREFIX/... ', '/', PathVariable.PathIsDir)
|
,PathVariable('INSTALLDIR', 'Root output directory for install. Final installation will happen in INSTALLDIR/PREFIX/... ', '/', PathVariable.PathIsDir)
|
||||||
,PathVariable('PKGLIBDIR', 'Installation dir for plugins, defaults to PREFIX/lib/lumiera/modules', '',PathVariable.PathAccept)
|
,PathVariable('PKGLIBDIR', 'Installation dir for plugins, defaults to PREFIX/lib/lumiera/modules', '',PathVariable.PathAccept)
|
||||||
,PathVariable('PKGDATADIR', 'Installation dir for default config, usually PREFIX/share/lumiera', '',PathVariable.PathAccept)
|
,PathVariable('PKGDATADIR', 'Installation dir for default config, usually PREFIX/share/lumiera', '',PathVariable.PathAccept)
|
||||||
,PathVariable('SRCTAR', 'Create source tarball prior to compiling', '..', PathVariable.PathAccept)
|
|
||||||
,PathVariable('DOCTAR', 'Create tarball with developer documentation', '..', PathVariable.PathAccept)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return vars
|
return vars
|
||||||
|
|
@ -314,15 +312,7 @@ def definePackagingTargets(env, artifacts):
|
||||||
""" build operations and targets to be done /before/ compiling.
|
""" build operations and targets to be done /before/ compiling.
|
||||||
things like creating a source tarball or preparing a version header.
|
things like creating a source tarball or preparing a version header.
|
||||||
"""
|
"""
|
||||||
t = Tarball(env,location='$SRCTAR',dirs='$SRCDIR')
|
pass
|
||||||
artifacts['src.tar'] = t
|
|
||||||
env.Alias('src.tar', t)
|
|
||||||
env.Alias('tar', t)
|
|
||||||
|
|
||||||
t = Tarball(env,location='$DOCTAR',suffix='-doc',dirs='admin doc wiki uml tests')
|
|
||||||
artifacts['doc.tar'] = t
|
|
||||||
env.Alias('doc.tar', t)
|
|
||||||
env.Alias('tar', t)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -231,79 +231,3 @@ def RegisterIcon_Builder(env):
|
||||||
env.Append(BUILDERS = {'IconRender' : buildIcon})
|
env.Append(BUILDERS = {'IconRender' : buildIcon})
|
||||||
env.AddMethod(IconCopy)
|
env.AddMethod(IconCopy)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def Tarball(env,location,dirs,suffix=''):
|
|
||||||
""" Custom Command: create Tarball of some subdirs
|
|
||||||
location: where to create the tar (may optionally include filename.tar.gz)
|
|
||||||
suffix: (optional) suffix to include in the tar name
|
|
||||||
dirs: directories to include in the tar
|
|
||||||
|
|
||||||
This is a bit of a hack, because we want to be able to include arbitrary directories,
|
|
||||||
without creating new dependencies on those dirs. Esp. we want to tar the source tree
|
|
||||||
prior to compiling. Solution is
|
|
||||||
- use the Command-Builder, but pass all target specifications as custom build vars
|
|
||||||
- create a pseudo-target located in the parent directory (not built by default)
|
|
||||||
"""
|
|
||||||
targetID = '../extern-tar%s' % suffix
|
|
||||||
versionID = env['VERSION']
|
|
||||||
defaultName = 'lumiera%s_%s' % (suffix, versionID)
|
|
||||||
nameprefix = 'lumiera-%s/' % (versionID)
|
|
||||||
location = env.subst(location)
|
|
||||||
dirs = env.subst(dirs)
|
|
||||||
return env.Command(targetID,None, createTarball,
|
|
||||||
location=location, defaultName=defaultName, dirs=dirs, nameprefix=nameprefix)
|
|
||||||
|
|
||||||
|
|
||||||
def createTarball(target,source,env):
|
|
||||||
""" helper, builds the tar using the python2.3 tarfile lib.
|
|
||||||
This allows us to prefix all paths, thus moving the tree
|
|
||||||
into a virtual subdirectory containing the Version number,
|
|
||||||
as needed by common packaging systems.
|
|
||||||
"""
|
|
||||||
name = getTarName( location = env['location']
|
|
||||||
, defaultName = env['defaultName'])
|
|
||||||
targetspec = env['dirs']
|
|
||||||
nameprefix = env['nameprefix'] or ''
|
|
||||||
print 'Running: tar -czf %s %s ...' % (name,targetspec)
|
|
||||||
if os.path.isfile(name):
|
|
||||||
os.remove(name)
|
|
||||||
tar = tarfile.open(name,'w:gz')
|
|
||||||
for name in targetspec.split():
|
|
||||||
tar.add(name,nameprefix+name)
|
|
||||||
tar.close()
|
|
||||||
#
|
|
||||||
# old version using shell command:
|
|
||||||
#
|
|
||||||
# cmd = 'tar -czf %s %s' % (name,targetspec)
|
|
||||||
# print 'running ', cmd, ' ... '
|
|
||||||
# pipe = os.popen (cmd)
|
|
||||||
# return pipe.close ()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def getTarName(location, defaultName):
|
|
||||||
""" create a suitable name for the tarball.
|
|
||||||
- if location contains a name (*.tar.gz) then use this
|
|
||||||
- otherwise append the defaultName to the specified dir
|
|
||||||
"""
|
|
||||||
spec = os.path.abspath(location)
|
|
||||||
(head,tail) = os.path.split(spec)
|
|
||||||
if not os.path.isdir(head):
|
|
||||||
print 'Target dir "%s" for Tar doesn\'t exist.' % head
|
|
||||||
Exit(1)
|
|
||||||
mat = re.match(r'([\w\.\-\+:\~]+)\.((tar)|(tar\.gz)|(tgz))', tail)
|
|
||||||
if mat:
|
|
||||||
name = mat.group(1)
|
|
||||||
ext = '.'+mat.group(2)
|
|
||||||
else:
|
|
||||||
ext = '.tar.gz'
|
|
||||||
if os.path.isdir(spec):
|
|
||||||
head = spec
|
|
||||||
name = defaultName
|
|
||||||
else:
|
|
||||||
name = tail
|
|
||||||
return os.path.join(head,name+ext)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue