cleaned up a bit

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4173 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2005-07-16 10:14:20 +00:00
parent df2a7ce233
commit 7fd7935769

View file

@ -214,32 +214,31 @@ defenv.Distribute('', 'nsisconf.nsh')
####### Stubs ### ####### Stubs ###
###################################################################### ######################################################################
for stub in stubs: def BuildStub(compression, solid):
if stub in defenv['SKIPSTUBS']:
continue
build_dir = '$BUILD_PREFIX/stub_%s' % stub
env = stub_env.Copy() env = stub_env.Copy()
env.Append(LINKFLAGS = '$MAP_FLAG')
exports = { 'env' : env, 'compression' : stub, 'solid_compression' : 0 } suffix = ''
if solid:
suffix = '_solid'
build_dir = '$BUILD_PREFIX/stub_%s%s' % (compression, suffix)
exports = { 'env' : env, 'compression' : compression, 'solid_compression' : solid }
target = defenv.SConscript(dirs = 'Source/exehead', build_dir = build_dir, duplicate = 0, exports = exports) target = defenv.SConscript(dirs = 'Source/exehead', build_dir = build_dir, duplicate = 0, exports = exports)
env.SideEffect('%s/stub_%s.map' % (build_dir, stub), target) env.SideEffect('%s/stub_%s.map' % (build_dir, stub), target)
defenv.DistributeAs('Stubs/%s' % stub, target) env.DistributeAs('Stubs/%s%s' % (compression, suffix), target)
build_dir = '$BUILD_PREFIX/stub_%s_solid' % stub defenv.Alias(compression, target)
env = stub_env.Copy() defenv.Alias('stubs', target)
env.Append(LINKFLAGS = '$MAP_FLAG')
exports = { 'env' : env, 'compression' : stub, 'solid_compression' : 1 }
solid_target = defenv.SConscript(dirs = 'Source/exehead', build_dir = build_dir, duplicate = 0, exports = exports) for stub in stubs:
env.SideEffect('%s/stub_%s.map' % (build_dir, stub), solid_target) if stub in defenv['SKIPSTUBS']:
continue
defenv.DistributeAs('Stubs/%s_solid' % stub, solid_target) BuildStub(stub, 0)
BuildStub(stub, 1)
defenv.Alias(stub, target + solid_target)
defenv.Alias('stubs', target + solid_target)
defenv.DistributeAs('Stubs/uninst', 'Source/exehead/uninst.ico') defenv.DistributeAs('Stubs/uninst', 'Source/exehead/uninst.ico')
@ -250,8 +249,6 @@ defenv.DistributeAs('Stubs/uninst', 'Source/exehead/uninst.ico')
build_dir = '$BUILD_PREFIX/makensis' build_dir = '$BUILD_PREFIX/makensis'
exports = { 'env' : makensis_env } exports = { 'env' : makensis_env }
makensis_env.Append(LINKFLAGS = '$MAP_FLAG')
makensis = defenv.SConscript(dirs = 'Source', build_dir = build_dir, duplicate = 0, exports = exports) makensis = defenv.SConscript(dirs = 'Source', build_dir = build_dir, duplicate = 0, exports = exports)
makensis_env.SideEffect('%s/makensis.map' % build_dir, makensis) makensis_env.SideEffect('%s/makensis.map' % build_dir, makensis)
@ -261,6 +258,38 @@ defenv.Alias('makensis', makensis)
ins = defenv.Distribute('', makensis) ins = defenv.Distribute('', makensis)
defenv.Alias('install-compiler', ins) defenv.Alias('install-compiler', ins)
######################################################################
####### Common Functions ###
######################################################################
def AddEnvStandardFlags(env, defines, flags, entry, nodeflib):
if defines:
env.Append(CPPDEFINES = defines)
if flags:
env.Append(CCFLAGS = flags)
if entry:
env.Append(LINKFLAGS = '${ENTRY_FLAG("%s")}' % entry)
if nodeflib:
env.Append(LINKFLAGS = '$NODEFLIBS_FLAG') # no default libraries
def AppendRES(env, source, res, resources):
if res:
target_res = env.RES(res)
if resources:
env.Depends(target_res, resources)
source.append(target_res)
def CleanMap(env, target, target_name):
env.Clean(target, File(target_name + '.map'))
def DistributeExtras(env, target, examples, docs):
if examples:
env.DistributeExamples(target, examples)
if docs:
env.DistributeDocs(target, docs)
###################################################################### ######################################################################
####### Plug-ins ### ####### Plug-ins ###
###################################################################### ######################################################################
@ -274,37 +303,19 @@ def BuildPlugin(target, source, libs, examples = None, docs = None,
if cppused and env['CPP_REQUIRES_STDLIB']: if cppused and env['CPP_REQUIRES_STDLIB']:
nodeflib = 0 nodeflib = 0
if defines: AddEnvStandardFlags(env, defines, flags, entry, nodeflib)
env.Append(CPPDEFINES = defines)
if flags:
env.Append(CCFLAGS = flags)
if entry: AppendRES(env, source, res, resources)
env.Append(LINKFLAGS = '${ENTRY_FLAG("%s")}' % entry)
if nodeflib:
env.Append(LINKFLAGS = '$NODEFLIBS_FLAG') # no default libraries
env.Append(LINKFLAGS = '$MAP_FLAG')
if res:
target_res = env.RES(res_target, res)
if resources:
env.Depends(target_res, resources)
source = source + target_res
plugin = env.SharedLibrary(target, source, LIBS = libs) plugin = env.SharedLibrary(target, source, LIBS = libs)
defenv.Alias(target, plugin) defenv.Alias(target, plugin)
defenv.Alias('plugins', plugin) defenv.Alias('plugins', plugin)
env.Clean(plugin, File(target + '.map')) CleanMap(env, plugin, target)
env.Distribute('Plugins', plugin) env.Distribute('Plugins', plugin)
if examples: DistributeExtras(env, target, examples, docs)
env.DistributeExamples(target, examples)
if docs:
env.DistributeDocs(target, docs)
for plugin in plugins: for plugin in plugins:
if plugin in defenv['SKIPPLUGINS']: if plugin in defenv['SKIPPLUGINS']:
@ -326,30 +337,15 @@ def BuildUtil(target, source, libs, entry = None, res = None,
examples = None, docs = None): examples = None, docs = None):
env = util_env.Copy() env = util_env.Copy()
if defines: AddEnvStandardFlags(env, defines, flags, entry, nodeflib)
env.Append(CPPDEFINES = defines)
if flags:
env.Append(CCFLAGS = flags)
if entry: AppendRES(env, source, res, resources)
env.Append(LINKFLAGS = '${ENTRY_FLAG("%s")}' % entry)
if nodeflib:
env.Append(LINKFLAGS = '$NODEFLIBS_FLAG') # no default libraries
env.Append(LINKFLAGS = '$MAP_FLAG')
if res:
target_res = env.RES(res)
if resources:
env.Depends(target_res, resources)
source = source + target_res
util = env.Program(target, source, LIBS = libs) util = env.Program(target, source, LIBS = libs)
defenv.Alias(target, util) defenv.Alias(target, util)
defenv.Alias('utils', util) defenv.Alias('utils', util)
env.Clean(util, File(target + '.map')) CleanMap(env, util, target)
if install is not None: if install is not None:
ins = env.Distribute(install, util) ins = env.Distribute(install, util)
@ -359,10 +355,7 @@ def BuildUtil(target, source, libs, entry = None, res = None,
ins = env.DistributeAs(install_as, util) ins = env.DistributeAs(install_as, util)
defenv.Alias('install-utils', ins) defenv.Alias('install-utils', ins)
if examples: DistributeExtras(env, target, examples, docs)
env.DistributeExamples(target, examples)
if docs:
env.DistributeDocs(target, docs)
return util return util