less code in SConscripts, more shared code in SConstruct
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3986 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
cdf3529eff
commit
4a77cdc9fe
17 changed files with 62 additions and 112 deletions
|
@ -11,10 +11,6 @@ libs = Split("""
|
|||
winmm
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
|
|
@ -9,10 +9,6 @@ libs = Split("""
|
|||
user32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
|
|
@ -11,10 +11,6 @@ libs = Split("""
|
|||
winmm
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
|
|
@ -10,10 +10,6 @@ libs = Split("""
|
|||
delayimp
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
|
|
@ -16,12 +16,6 @@ libs = Split("""
|
|||
comdlg32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
files += env.RES(resources)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs, res = resources)
|
||||
|
|
|
@ -14,12 +14,6 @@ libs = Split("""
|
|||
gdi32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
files += env.RES(resources)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs, res = resources)
|
||||
|
|
|
@ -10,10 +10,7 @@ libs = Split("""
|
|||
oleaut32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target, entry = 'DllMain')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
|
|
|
@ -11,12 +11,6 @@ libs = Split("""
|
|||
kernel32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin env')
|
||||
|
||||
env = PluginEnv(target, entry = 'DllMain', nodeflib = 0)
|
||||
|
||||
env.Append(CPPFLAGS = env['CPP_FLAG'])
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs, nodeflib = 0, flags = env['CPP_FLAG'])
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
cmd = Command('#bin/NSISUpdate.exe', 'NSISUpdate.nsi', 'makensis $SOURCE')
|
||||
Depends(cmd, ['makensis', 'stubs', 'System', 'NSISdl', 'Dialer', 'nsExec', 'InstallOptions'])
|
||||
Import('env')
|
||||
|
||||
#cmd = Command('#bin/NSISUpdate.exe', 'NSISUpdate.nsi', 'makensis $SOURCE')
|
||||
#Depends(cmd, ['makensis', 'stubs', 'System', 'NSISdl', 'Dialer', 'nsExec', 'InstallOptions'])
|
||||
|
|
|
@ -15,10 +15,6 @@ libs = Split("""
|
|||
ws2_32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
|
|
@ -11,10 +11,6 @@ libs = Split("""
|
|||
winmm
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
|
|
@ -15,12 +15,7 @@ libs = Split("""
|
|||
shell32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
BuildPlugin(target, files, libs, res = resources, res_target = 'StartMenuRC')
|
||||
|
||||
files += env.RES('StartMenuRC', resources)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
|
|
|
@ -20,14 +20,6 @@ libs = Split("""
|
|||
ole32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target, entry = '_DllMainCRTStartup', nodeflib = 0)
|
||||
|
||||
env.Append(CPPDEFINES = ['SYSTEM_EXPORTS'])
|
||||
|
||||
#files += [File(obj) for obj in objs]
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs, entry = '_DllMainCRTStartup', nodeflib = 0, defines = ['SYSTEM_EXPORTS'])
|
||||
|
|
|
@ -9,10 +9,7 @@ libs = Split("""
|
|||
advapi32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
BuildPlugin(target, files, libs)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
|
|
|
@ -8,10 +8,6 @@ libs = Split("""
|
|||
kernel32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target, entry = 'DllMain')
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
BuildPlugin(target, files, libs)
|
||||
|
|
|
@ -10,10 +10,7 @@ libs = Split("""
|
|||
advapi32
|
||||
""")
|
||||
|
||||
Import('PluginEnv')
|
||||
Import('BuildPlugin')
|
||||
|
||||
env = PluginEnv(target)
|
||||
BuildPlugin(target, files, libs)
|
||||
|
||||
plugin = env.SharedLibrary(target, files, LIBS = libs)
|
||||
|
||||
Return('plugin')
|
||||
|
|
40
SConstruct
40
SConstruct
|
@ -148,27 +148,43 @@ defenv.Install('$PREFIX', makensis)
|
|||
####### Plug-ins ###
|
||||
######################################################################
|
||||
|
||||
def PluginEnv(target, entry = 'DllMain', nodeflib = 1):
|
||||
def BuildPlugin(target, source, libs, entry = 'DllMain', res = None,
|
||||
res_target = None, resources = None, defines = None,
|
||||
flags = None, nodeflib = 1):
|
||||
env = plugin_env.Copy()
|
||||
|
||||
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
|
||||
|
||||
env.Append(LINKFLAGS = '${ENTRY_FLAG("%s")}' % entry) # entry function
|
||||
env.Append(LINKFLAGS = '${MAP_FLAG("%s")}' % target) # generate map file
|
||||
env.Append(LINKFLAGS = '${MAP_FLAG("%s")}' % target)
|
||||
|
||||
env.SideEffect(File(target + '.map'), target)
|
||||
if res:
|
||||
target_res = env.RES(res_target, res)
|
||||
if resources:
|
||||
env.Depends(target_res, resources)
|
||||
source = source + target_res
|
||||
|
||||
return env
|
||||
plugin = env.SharedLibrary(target, source, LIBS = libs)
|
||||
Alias(target, plugin)
|
||||
|
||||
env.Clean(plugin, File(target + '.map'))
|
||||
|
||||
env.Install('$PREFIX/Plugins', plugin)
|
||||
|
||||
for plugin in plugins:
|
||||
path = 'Contrib/' + plugin
|
||||
build_dir = '$BUILD_PREFIX/' + plugin
|
||||
exports = 'PluginEnv'
|
||||
exports = {'BuildPlugin' : BuildPlugin, 'env' : plugin_env.Copy()}
|
||||
|
||||
plugin_dll = defenv.SConscript(dirs = path, build_dir = build_dir, duplicate = 0, exports = exports)
|
||||
|
||||
defenv.Install('$PREFIX/Plugins', plugin_dll)
|
||||
defenv.SConscript(dirs = path, build_dir = build_dir, duplicate = 0, exports = exports)
|
||||
|
||||
######################################################################
|
||||
####### Utilities ###
|
||||
|
@ -176,13 +192,13 @@ for plugin in plugins:
|
|||
|
||||
def BuildUtil(target, source, libs, entry = None, res = None,
|
||||
resources = None, defines = None, flags = None,
|
||||
install = None):
|
||||
install = None):
|
||||
env = util_env.Copy()
|
||||
|
||||
if defines:
|
||||
env.Append(CPPDEFINES = defines)
|
||||
if flags:
|
||||
env.Append(CPPFLAGS = flags)
|
||||
env.Append(CCFLAGS = flags)
|
||||
|
||||
if entry:
|
||||
env.Append(LINKFLAGS = '${ENTRY_FLAG("%s")}' % entry)
|
||||
|
@ -201,7 +217,7 @@ def BuildUtil(target, source, libs, entry = None, res = None,
|
|||
env.Clean(util, File(target + '.map'))
|
||||
|
||||
if install is not None:
|
||||
defenv.Install('$PREFIX/%s' % install, util)
|
||||
env.Install('$PREFIX/%s' % install, util)
|
||||
|
||||
for util in utils:
|
||||
path = 'Contrib/' + util
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue