Skip to content
Snippets Groups Projects
Commit d82ea3e8 authored by g0dil's avatar g0dil
Browse files

Fix the build process to work with the SCons V0.96.1 workaround

parent 302e3b88
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,8 @@ import SENFSCons
###########################################################################
# This hack is needed for SCons V 0.96.1 compatibility. In current SCons versions
# we can just use 'env.AlwaysBuild(env.Alias(target), [], action)'
def PhonyTarget(env, target, action):
env.AlwaysBuild(env.Command(target + '.phony', 'SConstruct', env.Action(action)))
env.Alias(target, target + '.phony')
......@@ -129,6 +131,9 @@ libsenf = env.Library(
SENFSCons.LibPath('senf'),
Flatten([ env.File(SENFSCons.LibPath(lib)).sources for lib in env['ALLLIBS'] ]))
env.Default(libsenf)
env.Clean('all', 'libsenf.a')
env.Alias('all', 'libsenf.a')
env.Alias('install_all', env.Install('$LIBINSTALLDIR', libsenf))
env.Clean('all', [ os.path.join(path,f)
......
......@@ -186,3 +186,5 @@ env.Alias('install_all',
'search_functions.php',
'search_paths.php',
'senf.css' ] ))
env.Clean('all', 'doxy-header.html') # I should not need this but I do ...
......@@ -248,6 +248,10 @@ class DoxyfileParser:
return self._items
def DoxyfileParse(env,file):
# We don't parse source files which do not contain the word 'doxyfile'. SCons will
# pass other dependencies to DoxyfileParse which are not doxyfiles ... grmpf ...
if not 'doxyfile' in file.lower():
return {}
ENV = {}
ENV.update(env.get("ENV",{}))
ENV['TOPDIR'] = env.Dir('#').abspath
......
......@@ -291,7 +291,7 @@ def StandardTargets(env):
#
# \ingroup target
def GlobalTargets(env):
env.Depends(env.Alias('all'),'#')
env.Alias('all', [ 'default', 'all_tests', 'all_docs' ])
## \brief Return path of a built library within $LOCALLIBDIR
# \internal
......@@ -587,6 +587,7 @@ def Lib(env, library, sources, testSources = None, LIBS = [], OBJECTS = [], no_i
lib = env.Library(env.File(LibPath(library)),objects)
env.Default(lib)
env.Append(ALLLIBS = library)
env.Alias('default', lib)
install = InstallWithSources(env, lib, '$LIBINSTALLDIR', sources, testSources, no_includes)
env.Alias('install_all', install)
return lib
......@@ -598,6 +599,7 @@ def Object(env, target, sources, testSources = None, LIBS = [], OBJECTS = [], no
if objects:
ob = env.Command(target+".o", objects, "ld -r -o $TARGET $SOURCES")
env.Default(ob)
env.Alias('default', ob)
install = InstallWithSources(env, ob, '$OBJINSTALLDIR', sources, testSources, no_includes)
env.Alias('install_all', install)
return ob
......@@ -621,6 +623,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no
program = progEnv.Program(target=binary,source=objects+OBJECTS)
env.Default(program)
env.Depends(program, [ env.File(LibPath(x)) for x in LIBS ])
env.Alias('default', program)
install = InstallWithSources(env, program, '$BININSTALLDIR', sources, testSources,
no_includes)
env.Alias('install_all', install)
......@@ -629,6 +632,7 @@ def Binary(env, binary, sources, testSources = None, LIBS = [], OBJECTS = [], no
def AllIncludesHH(env, headers):
headers.sort()
file(env.File("all_includes.hh").abspath,"w").write("".join([ '#include "%s"\n' % f
for f in headers ]))
env.Clean('all','all_includes.hh')
for f in headers ]))
env.Alias('all', 'all_includes.hh')
env.Clean('all', 'all_includes.hh')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment