install and distribute examples, contribs and documentation
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4005 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
dc128c6928
commit
53fa1d20ac
21 changed files with 480 additions and 45 deletions
|
@ -11,6 +11,14 @@ libs = Split("""
|
||||||
winmm
|
winmm
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
Example.nsi
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
advsplash.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, examples, docs)
|
||||||
|
|
|
@ -9,6 +9,14 @@ libs = Split("""
|
||||||
user32
|
user32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
Example.nsi
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
Readme.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, examples, docs)
|
||||||
|
|
|
@ -11,6 +11,14 @@ libs = Split("""
|
||||||
winmm
|
winmm
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
Example.nsi
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
BgImage.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, examples, docs)
|
||||||
|
|
|
@ -9,6 +9,10 @@ libs = Split("""
|
||||||
wininet
|
wininet
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
Dialer.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, docs = docs)
|
||||||
|
|
86
Contrib/Graphics/SConscript
Normal file
86
Contrib/Graphics/SConscript
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
checks = Split("""
|
||||||
|
big.bmp
|
||||||
|
classic-cross.bmp
|
||||||
|
classic.bmp
|
||||||
|
colorful.bmp
|
||||||
|
grey-cross.bmp
|
||||||
|
grey.bmp
|
||||||
|
modern.bmp
|
||||||
|
red-round.bmp
|
||||||
|
red.bmp
|
||||||
|
simple-round.bmp
|
||||||
|
simple-round2.bmp
|
||||||
|
simple.bmp
|
||||||
|
""")
|
||||||
|
|
||||||
|
headers = Split("""
|
||||||
|
nsis-r.bmp
|
||||||
|
nsis.bmp
|
||||||
|
orange-nsis.bmp
|
||||||
|
orange-r-nsis.bmp
|
||||||
|
orange-r.bmp
|
||||||
|
orange-uninstall-nsis.bmp
|
||||||
|
orange-uninstall-r-nsis.bmp
|
||||||
|
orange-uninstall-r.bmp
|
||||||
|
orange-uninstall.bmp
|
||||||
|
orange.bmp
|
||||||
|
win.bmp
|
||||||
|
""")
|
||||||
|
|
||||||
|
icons = Split("""
|
||||||
|
arrow-install.ico
|
||||||
|
arrow-uninstall.ico
|
||||||
|
arrow2-install.ico
|
||||||
|
arrow2-uninstall.ico
|
||||||
|
box-install.ico
|
||||||
|
box-uninstall.ico
|
||||||
|
classic-install.ico
|
||||||
|
classic-uninstall.ico
|
||||||
|
llama-blue.ico
|
||||||
|
llama-grey.ico
|
||||||
|
modern-install-blue-full.ico
|
||||||
|
modern-install-blue.ico
|
||||||
|
modern-install-colorful.ico
|
||||||
|
modern-install-full.ico
|
||||||
|
modern-install.ico
|
||||||
|
modern-uninstall-blue-full.ico
|
||||||
|
modern-uninstall-blue.ico
|
||||||
|
modern-uninstall-colorful.ico
|
||||||
|
modern-uninstall-full.ico
|
||||||
|
modern-uninstall.ico
|
||||||
|
nsis1-install.ico
|
||||||
|
nsis1-uninstall.ico
|
||||||
|
orange-install-nsis.ico
|
||||||
|
orange-install.ico
|
||||||
|
orange-uninstall-nsis.ico
|
||||||
|
orange-uninstall.ico
|
||||||
|
pixel-install.ico
|
||||||
|
pixel-uninstall.ico
|
||||||
|
win-install.ico
|
||||||
|
win-uninstall.ico
|
||||||
|
""")
|
||||||
|
|
||||||
|
wizards = Split("""
|
||||||
|
arrow.bmp
|
||||||
|
llama.bmp
|
||||||
|
nsis.bmp
|
||||||
|
nullsoft.bmp
|
||||||
|
orange-nsis.bmp
|
||||||
|
orange-uninstall-nsis.bmp
|
||||||
|
orange-uninstall.bmp
|
||||||
|
orange.bmp
|
||||||
|
win.bmp
|
||||||
|
""")
|
||||||
|
|
||||||
|
Import('defenv')
|
||||||
|
|
||||||
|
def join(prefix, list):
|
||||||
|
return map(lambda x: '%s/%s' % (prefix, x), list)
|
||||||
|
|
||||||
|
def dist(dir, files):
|
||||||
|
defenv.DistributeContribs('Graphics/%s' % dir, join(dir, files))
|
||||||
|
|
||||||
|
dist('Checks', checks)
|
||||||
|
dist('Header', headers)
|
||||||
|
dist('Icons', icons)
|
||||||
|
dist('Wizard', wizards)
|
|
@ -16,6 +16,21 @@ libs = Split("""
|
||||||
comdlg32
|
comdlg32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
test.nsi
|
||||||
|
test.ini
|
||||||
|
testimgs.nsi
|
||||||
|
testimgs.ini
|
||||||
|
testlink.nsi
|
||||||
|
testlink.ini
|
||||||
|
testnotify.nsi
|
||||||
|
testnotify.ini
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
Readme.html
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs, res = resources)
|
BuildPlugin(target, files, libs, examples, docs, res = resources)
|
||||||
|
|
53
Contrib/Language files/SConscript
Normal file
53
Contrib/Language files/SConscript
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
languages = Split("""
|
||||||
|
Albanian.nlf
|
||||||
|
Arabic.nlf
|
||||||
|
Belarusian.nlf
|
||||||
|
Breton.nlf
|
||||||
|
Bulgarian.nlf
|
||||||
|
Catalan.nlf
|
||||||
|
Croatian.nlf
|
||||||
|
Czech.nlf
|
||||||
|
Danish.nlf
|
||||||
|
Dutch.nlf
|
||||||
|
English.nlf
|
||||||
|
Estonian.nlf
|
||||||
|
Farsi.nlf
|
||||||
|
Finnish.nlf
|
||||||
|
French.nlf
|
||||||
|
German.nlf
|
||||||
|
Greek.nlf
|
||||||
|
Hebrew.nlf
|
||||||
|
Hungarian.nlf
|
||||||
|
Icelandic.nlf
|
||||||
|
Indonesian.nlf
|
||||||
|
Italian.nlf
|
||||||
|
Japanese.nlf
|
||||||
|
Korean.nlf
|
||||||
|
Latvian.nlf
|
||||||
|
Lithuanian.nlf
|
||||||
|
Luxembourgish.nlf
|
||||||
|
Macedonian.nlf
|
||||||
|
Malaysian.nlf
|
||||||
|
Mongolian.nlf
|
||||||
|
Norwegian.nlf
|
||||||
|
Polish.nlf
|
||||||
|
Portuguese.nlf
|
||||||
|
PortugueseBR.nlf
|
||||||
|
Romanian.nlf
|
||||||
|
Russian.nlf
|
||||||
|
Serbian.nlf
|
||||||
|
SerbianLatin.nlf
|
||||||
|
SimpChinese.nlf
|
||||||
|
Slovak.nlf
|
||||||
|
Slovenian.nlf
|
||||||
|
Spanish.nlf
|
||||||
|
Swedish.nlf
|
||||||
|
Thai.nlf
|
||||||
|
TradChinese.nlf
|
||||||
|
Turkish.nlf
|
||||||
|
Ukrainian.nlf
|
||||||
|
""")
|
||||||
|
|
||||||
|
Import('defenv')
|
||||||
|
|
||||||
|
defenv.DistributeContribs('Language files', languages)
|
|
@ -11,6 +11,17 @@ libs = Split("""
|
||||||
kernel32
|
kernel32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
math.nsi
|
||||||
|
mathtest.nsi
|
||||||
|
mathtest.ini
|
||||||
|
mathtest.txt
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
Math.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin env')
|
Import('BuildPlugin env')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs, nodeflib = 0, flags = env['CPP_FLAG'])
|
BuildPlugin(target, files, libs, examples, docs, nodeflib = 0, flags = ['$CPP_FLAG'])
|
||||||
|
|
81
Contrib/Modern UI/SConscript
Normal file
81
Contrib/Modern UI/SConscript
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
target = 'Modern UI'
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
Changelog.txt
|
||||||
|
License.txt
|
||||||
|
Readme.html
|
||||||
|
""")
|
||||||
|
|
||||||
|
doc_images = Split("""
|
||||||
|
closed.gif
|
||||||
|
header.gif
|
||||||
|
open.gif
|
||||||
|
screen1.png
|
||||||
|
screen2.png
|
||||||
|
""")
|
||||||
|
|
||||||
|
contribs = Split("""
|
||||||
|
ioSpecial.ini
|
||||||
|
System.nsh
|
||||||
|
""")
|
||||||
|
|
||||||
|
languages = Split("""
|
||||||
|
Albanian.nsh
|
||||||
|
Arabic.nsh
|
||||||
|
Belarusian.nsh
|
||||||
|
Breton.nsh
|
||||||
|
Bulgarian.nsh
|
||||||
|
Catalan.nsh
|
||||||
|
Croatian.nsh
|
||||||
|
Czech.nsh
|
||||||
|
Danish.nsh
|
||||||
|
Default.nsh
|
||||||
|
Dutch.nsh
|
||||||
|
English.nsh
|
||||||
|
Estonian.nsh
|
||||||
|
Farsi.nsh
|
||||||
|
Finnish.nsh
|
||||||
|
French.nsh
|
||||||
|
German.nsh
|
||||||
|
Greek.nsh
|
||||||
|
Hebrew.nsh
|
||||||
|
Hungarian.nsh
|
||||||
|
Icelandic.nsh
|
||||||
|
Indonesian.nsh
|
||||||
|
Italian.nsh
|
||||||
|
Japanese.nsh
|
||||||
|
Korean.nsh
|
||||||
|
Latvian.nsh
|
||||||
|
Lithuanian.nsh
|
||||||
|
Luxembourgish.nsh
|
||||||
|
Macedonian.nsh
|
||||||
|
Malaysian.nsh
|
||||||
|
Mongolian.nsh
|
||||||
|
Norwegian.nsh
|
||||||
|
Polish.nsh
|
||||||
|
Portuguese.nsh
|
||||||
|
PortugueseBR.nsh
|
||||||
|
Romanian.nsh
|
||||||
|
Russian.nsh
|
||||||
|
Serbian.nsh
|
||||||
|
SerbianLatin.nsh
|
||||||
|
SimpChinese.nsh
|
||||||
|
Slovak.nsh
|
||||||
|
Slovenian.nsh
|
||||||
|
Spanish.nsh
|
||||||
|
Swedish.nsh
|
||||||
|
Thai.nsh
|
||||||
|
TradChinese.nsh
|
||||||
|
Turkish.nsh
|
||||||
|
Ukrainian.nsh
|
||||||
|
""")
|
||||||
|
|
||||||
|
Import('defenv')
|
||||||
|
|
||||||
|
def join(prefix, list):
|
||||||
|
return map(lambda x: '%s/%s' % (prefix, x), list)
|
||||||
|
|
||||||
|
defenv.DistributeDocs(target, docs)
|
||||||
|
defenv.DistributeDocs('%s/%s' % (target, 'images'), join('images', doc_images))
|
||||||
|
defenv.DistributeContribs(target, contribs)
|
||||||
|
defenv.DistributeContribs('%s/%s' % (target, 'Language files'), join('Language files', languages))
|
|
@ -15,6 +15,10 @@ libs = Split("""
|
||||||
ws2_32
|
ws2_32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
ReadMe.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, docs = docs)
|
||||||
|
|
|
@ -11,6 +11,14 @@ libs = Split("""
|
||||||
winmm
|
winmm
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
Example.nsi
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
splash.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, examples, docs)
|
||||||
|
|
|
@ -15,7 +15,14 @@ libs = Split("""
|
||||||
shell32
|
shell32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
Example.nsi
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
Readme.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs, res = resources, res_target = 'StartMenuRC')
|
BuildPlugin(target, files, libs, examples, docs, res = resources, res_target = 'StartMenuRC')
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,26 @@ libs = Split("""
|
||||||
ole32
|
ole32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
System.nsi
|
||||||
|
System.nsh
|
||||||
|
SysFunc.nsh
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
System.html
|
||||||
|
WhatsNew.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs, entry = '_DllMainCRTStartup', nodeflib = 0, defines = ['SYSTEM_EXPORTS'])
|
BuildPlugin(
|
||||||
|
target,
|
||||||
|
files,
|
||||||
|
libs,
|
||||||
|
examples,
|
||||||
|
docs,
|
||||||
|
entry = '_DllMainCRTStartup',
|
||||||
|
nodeflib = 0,
|
||||||
|
defines = ['SYSTEM_EXPORTS']
|
||||||
|
)
|
||||||
|
|
13
Contrib/UIs/SConscript
Normal file
13
Contrib/UIs/SConscript
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
uis = Split("""
|
||||||
|
default.exe
|
||||||
|
modern.exe
|
||||||
|
modern_headerbmp.exe
|
||||||
|
modern_headerbmpr.exe
|
||||||
|
modern_nodesc.exe
|
||||||
|
modern_smalldesc.exe
|
||||||
|
sdbarker_tiny.exe
|
||||||
|
""")
|
||||||
|
|
||||||
|
Import('defenv')
|
||||||
|
|
||||||
|
defenv.DistributeContribs('UIs', uis)
|
|
@ -9,7 +9,10 @@ libs = Split("""
|
||||||
advapi32
|
advapi32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
UserInfo.nsi
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, examples)
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,15 @@ libs = Split("""
|
||||||
advapi32
|
advapi32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
examples = Split("""
|
||||||
|
test.nsi
|
||||||
|
""")
|
||||||
|
|
||||||
|
docs = Split("""
|
||||||
|
nsExec.txt
|
||||||
|
""")
|
||||||
|
|
||||||
Import('BuildPlugin')
|
Import('BuildPlugin')
|
||||||
|
|
||||||
BuildPlugin(target, files, libs)
|
BuildPlugin(target, files, libs, examples, docs)
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,14 @@ libs = Split("""
|
||||||
shell32
|
shell32
|
||||||
""")
|
""")
|
||||||
|
|
||||||
Import('BuildUtil')
|
headers = Split("""
|
||||||
|
Base.nsh
|
||||||
|
Classic.nsh
|
||||||
|
Modern.nsh
|
||||||
|
""")
|
||||||
|
|
||||||
|
Import('BuildUtil defenv')
|
||||||
|
|
||||||
BuildUtil(target, files, libs, res = rc, resources = resources, install = 'Bin')
|
BuildUtil(target, files, libs, res = rc, resources = resources, install = 'Bin')
|
||||||
|
|
||||||
|
defenv.DistributeContribs(target, headers)
|
||||||
|
|
|
@ -75,4 +75,4 @@ env.Append(BUILDERS = {'HalibutCHM' : builder})
|
||||||
chm = env.HalibutCHM('NSIS.chm', [chm_config_but] + buts)
|
chm = env.HalibutCHM('NSIS.chm', [chm_config_but] + buts)
|
||||||
env.Depends(chm, halibut)
|
env.Depends(chm, halibut)
|
||||||
|
|
||||||
env.Install('$PREFIX', chm)
|
env.Distribute('', chm)
|
||||||
|
|
|
@ -24,12 +24,13 @@ mui_examples = [
|
||||||
'Modern UI/InstallOptions.nsi',
|
'Modern UI/InstallOptions.nsi',
|
||||||
'Modern UI/MultiLanguage.nsi',
|
'Modern UI/MultiLanguage.nsi',
|
||||||
'Modern UI/StartMenu.nsi',
|
'Modern UI/StartMenu.nsi',
|
||||||
'Modern UI/WelcomeFinish.nsi'
|
'Modern UI/WelcomeFinish.nsi',
|
||||||
|
'Modern UI/ioA.ini',
|
||||||
|
'Modern UI/ioB.ini',
|
||||||
|
'Modern UI/ioC.ini'
|
||||||
]
|
]
|
||||||
|
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
env.Install('$PREFIX/Examples', examples)
|
env.DistributeExamples('', examples)
|
||||||
env.Install('$PREFIX/Examples/Modern UI', mui_examples)
|
env.DistributeExamples('Modern UI', mui_examples)
|
||||||
|
|
||||||
env.Alias('install-examples', '$PREFIX/Examples')
|
|
||||||
|
|
15
Include/SConscript
Normal file
15
Include/SConscript
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
includes = Split("""
|
||||||
|
Colors.nsh
|
||||||
|
Library.nsh
|
||||||
|
LogicLib.nsh
|
||||||
|
MUI.nsh
|
||||||
|
Sections.nsh
|
||||||
|
StrFunc.nsh
|
||||||
|
UpgradeDLL.nsh
|
||||||
|
WinMessages.nsh
|
||||||
|
""")
|
||||||
|
|
||||||
|
Import('env')
|
||||||
|
|
||||||
|
env.Distribute('Include', includes)
|
||||||
|
env.DistributeDocs('StrFunc', 'StrFunc.txt')
|
122
SConstruct
122
SConstruct
|
@ -1,6 +1,6 @@
|
||||||
## TODO
|
## TODO
|
||||||
#
|
#
|
||||||
# * VPatch GenPat (wait for v3 written in C)
|
# * VPatch GenPat & distribution
|
||||||
# * Write SConscript for NSIS Menu
|
# * Write SConscript for NSIS Menu
|
||||||
# - Use inheritance instead of current wxWidgets patches
|
# - Use inheritance instead of current wxWidgets patches
|
||||||
# - Compile for POSIX too? wxWidgets is cross platform after all...
|
# - Compile for POSIX too? wxWidgets is cross platform after all...
|
||||||
|
@ -8,6 +8,8 @@
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
|
|
||||||
|
VERSION = '2.06'
|
||||||
|
|
||||||
stubs = [
|
stubs = [
|
||||||
'bzip2',
|
'bzip2',
|
||||||
'lzma',
|
'lzma',
|
||||||
|
@ -42,17 +44,23 @@ utils = [
|
||||||
'zip2exe'
|
'zip2exe'
|
||||||
]
|
]
|
||||||
|
|
||||||
import os
|
misc = [
|
||||||
|
'Graphics',
|
||||||
|
'Language files',
|
||||||
|
'Modern UI',
|
||||||
|
'UIs'
|
||||||
|
]
|
||||||
|
|
||||||
defenv = Environment()
|
defenv = Environment()
|
||||||
|
defenv.SConsignFile()
|
||||||
Export('defenv')
|
Export('defenv')
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
####### options ###
|
####### Options ###
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
opts = Options()
|
opts = Options()
|
||||||
opts.Add(PathOption('PREFIX', 'Installation prefix', GetLaunchDir()))
|
opts.Add(PathOption('PREFIX', 'Installation prefix', None))
|
||||||
opts.Add(('MINGWPREFIX', 'MinGW toolset prefix', 0))
|
opts.Add(('MINGWPREFIX', 'MinGW toolset prefix', 0))
|
||||||
opts.Add(BoolOption('MSTOOLKIT', 'Use Microsoft Visual C++ Toolkit', 'no'))
|
opts.Add(BoolOption('MSTOOLKIT', 'Use Microsoft Visual C++ Toolkit', 'no'))
|
||||||
opts.Add(BoolOption('DEBUG', 'Build executables with debugging information', 'no'))
|
opts.Add(BoolOption('DEBUG', 'Build executables with debugging information', 'no'))
|
||||||
|
@ -62,6 +70,45 @@ opts.Update(defenv)
|
||||||
|
|
||||||
Help(opts.GenerateHelpText(defenv))
|
Help(opts.GenerateHelpText(defenv))
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
####### Functions ###
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
defenv['DISTDIR'] = '#nsis-%s' % VERSION
|
||||||
|
|
||||||
|
def Distribute(dir, files):
|
||||||
|
if defenv.has_key('PREFIX') and defenv['PREFIX']:
|
||||||
|
ins = defenv.Install('$PREFIX/%s' % dir, files)
|
||||||
|
return ins
|
||||||
|
defenv.Install('$DISTDIR/%s' % dir, files)
|
||||||
|
return []
|
||||||
|
|
||||||
|
def DistributeAs(path, file):
|
||||||
|
if defenv.has_key('PREFIX') and defenv['PREFIX']:
|
||||||
|
ins = defenv.InstallAs('$PREFIX/%s' % path, file)
|
||||||
|
return ins
|
||||||
|
defenv.InstallAs('$DISTDIR/%s' % path, file)
|
||||||
|
return []
|
||||||
|
|
||||||
|
def DistributeExamples(dir, examples):
|
||||||
|
return Distribute('Examples/%s' % dir, examples)
|
||||||
|
|
||||||
|
def DistributeDocs(dir, docs):
|
||||||
|
return Distribute('Docs/%s' % dir, docs)
|
||||||
|
|
||||||
|
def DistributeContribs(dir, contribs):
|
||||||
|
return Distribute('Contrib/%s' % dir, contribs)
|
||||||
|
|
||||||
|
defenv.Distribute = Distribute
|
||||||
|
defenv.DistributeAs = DistributeAs
|
||||||
|
defenv.DistributeExamples = DistributeExamples
|
||||||
|
defenv.DistributeDocs = DistributeDocs
|
||||||
|
defenv.DistributeContribs = DistributeContribs
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
####### Environments ###
|
||||||
|
######################################################################
|
||||||
|
|
||||||
if defenv['DEBUG']:
|
if defenv['DEBUG']:
|
||||||
defenv.Replace(BUILD_PREFIX = 'build/debug')
|
defenv.Replace(BUILD_PREFIX = 'build/debug')
|
||||||
else:
|
else:
|
||||||
|
@ -70,9 +117,7 @@ else:
|
||||||
if defenv['MSTOOLKIT']:
|
if defenv['MSTOOLKIT']:
|
||||||
defenv.Tool('mstoolkit', toolpath = ['SCons/Tools'])
|
defenv.Tool('mstoolkit', toolpath = ['SCons/Tools'])
|
||||||
|
|
||||||
######################################################################
|
Default(defenv['BUILD_PREFIX'])
|
||||||
####### environments ###
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
tools = defenv['TOOLS']
|
tools = defenv['TOOLS']
|
||||||
|
|
||||||
|
@ -91,21 +136,31 @@ plugin_env = envs[2]
|
||||||
util_env = envs[3]
|
util_env = envs[3]
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
####### aliases ###
|
####### Aliases ###
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
defenv.Alias('install', '$PREFIX')
|
defenv.Alias('install', '$PREFIX')
|
||||||
defenv.Alias('install-docs', '$PREFIX/NSIS.chm')
|
defenv.Alias('install-docs', '$PREFIX/NSIS.chm')
|
||||||
|
defenv.Alias('install-docs', '$PREFIX/Docs')
|
||||||
|
defenv.Alias('install-examples', '$PREFIX/Examples')
|
||||||
|
defenv.Alias('install-plugins', '$PREFIX/Plugins')
|
||||||
|
defenv.Alias('install-stubs', '$PREFIX/Stubs')
|
||||||
|
defenv.Alias('install-includes', '$PREFIX/Include')
|
||||||
|
|
||||||
# defined elsewhere:
|
# defined elsewhere:
|
||||||
# install-compiler
|
# install-compiler
|
||||||
# install-stubs
|
|
||||||
# install-plugins
|
|
||||||
# install-utils
|
# install-utils
|
||||||
# install-examples
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
####### stubs ###
|
####### Distribution ###
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
dist_zip = 'nsis-%s.zip' % VERSION
|
||||||
|
defenv.Zip(dist_zip, '$DISTDIR')
|
||||||
|
defenv.Alias('dist', dist_zip)
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
####### Stubs ###
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
for stub in stubs:
|
for stub in stubs:
|
||||||
|
@ -117,7 +172,7 @@ for stub in stubs:
|
||||||
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)
|
||||||
|
|
||||||
ins_target = defenv.InstallAs('$PREFIX/Stubs/%s' % stub, target)
|
defenv.DistributeAs('Stubs/%s' % stub, target)
|
||||||
|
|
||||||
build_dir = '$BUILD_PREFIX/stub_%s_solid' % stub
|
build_dir = '$BUILD_PREFIX/stub_%s_solid' % stub
|
||||||
env = stub_env.Copy()
|
env = stub_env.Copy()
|
||||||
|
@ -127,14 +182,12 @@ for stub in stubs:
|
||||||
solid_target = defenv.SConscript(dirs = 'Source/exehead', build_dir = build_dir, duplicate = 0, exports = exports)
|
solid_target = defenv.SConscript(dirs = 'Source/exehead', build_dir = build_dir, duplicate = 0, exports = exports)
|
||||||
env.SideEffect('%s/stub_%s.map' % (build_dir, stub), solid_target)
|
env.SideEffect('%s/stub_%s.map' % (build_dir, stub), solid_target)
|
||||||
|
|
||||||
ins_solid_target = defenv.InstallAs('$PREFIX/Stubs/%s_solid' % stub, solid_target)
|
defenv.DistributeAs('Stubs/%s_solid' % stub, solid_target)
|
||||||
|
|
||||||
defenv.Alias(stub, target + solid_target)
|
defenv.Alias(stub, target + solid_target)
|
||||||
defenv.Alias('stubs', target + solid_target)
|
defenv.Alias('stubs', target + solid_target)
|
||||||
defenv.Alias('install-stubs', ins_target + ins_solid_target)
|
|
||||||
|
|
||||||
uninst_icon = defenv.InstallAs('$PREFIX/Stubs/uninst', 'Source/exehead/uninst.ico')
|
defenv.DistributeAs('Stubs/uninst', 'Source/exehead/uninst.ico')
|
||||||
defenv.Alias('install-stubs', uninst_icon)
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
####### makensis ###
|
####### makensis ###
|
||||||
|
@ -151,16 +204,17 @@ makensis_env.SideEffect('%s/makensis.map' % build_dir, makensis)
|
||||||
|
|
||||||
defenv.Alias('makensis', makensis)
|
defenv.Alias('makensis', makensis)
|
||||||
|
|
||||||
ins = defenv.Install('$PREFIX', makensis)
|
ins = defenv.Distribute('', makensis)
|
||||||
defenv.Alias('install-compiler', ins)
|
defenv.Alias('install-compiler', ins)
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
####### Plug-ins ###
|
####### Plug-ins ###
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
def BuildPlugin(target, source, libs, entry = 'DllMain', res = None,
|
def BuildPlugin(target, source, libs, examples = None, docs = None,
|
||||||
res_target = None, resources = None, defines = None,
|
entry = 'DllMain', res = None, res_target = None,
|
||||||
flags = None, nodeflib = 1):
|
resources = None, defines = None, flags = None,
|
||||||
|
nodeflib = 1):
|
||||||
env = plugin_env.Copy()
|
env = plugin_env.Copy()
|
||||||
|
|
||||||
if defines:
|
if defines:
|
||||||
|
@ -188,8 +242,12 @@ def BuildPlugin(target, source, libs, entry = 'DllMain', res = None,
|
||||||
|
|
||||||
env.Clean(plugin, File(target + '.map'))
|
env.Clean(plugin, File(target + '.map'))
|
||||||
|
|
||||||
ins = env.Install('$PREFIX/Plugins', plugin)
|
env.Distribute('Plugins', plugin)
|
||||||
defenv.Alias('install-plugins', ins)
|
|
||||||
|
if examples:
|
||||||
|
env.DistributeExamples(target, examples)
|
||||||
|
if docs:
|
||||||
|
env.DistributeDocs(target, docs)
|
||||||
|
|
||||||
for plugin in plugins:
|
for plugin in plugins:
|
||||||
path = 'Contrib/' + plugin
|
path = 'Contrib/' + plugin
|
||||||
|
@ -230,7 +288,7 @@ def BuildUtil(target, source, libs, entry = None, res = None,
|
||||||
env.Clean(util, File(target + '.map'))
|
env.Clean(util, File(target + '.map'))
|
||||||
|
|
||||||
if install is not None:
|
if install is not None:
|
||||||
ins = env.Install('$PREFIX/%s' % install, util)
|
ins = env.Distribute(install, util)
|
||||||
defenv.Alias('install-utils', ins)
|
defenv.Alias('install-utils', ins)
|
||||||
|
|
||||||
for util in utils:
|
for util in utils:
|
||||||
|
@ -266,3 +324,19 @@ defenv.SConscript(
|
||||||
dirs = 'Examples',
|
dirs = 'Examples',
|
||||||
exports = {'env': defenv.Copy()}
|
exports = {'env': defenv.Copy()}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
####### Includes ###
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
defenv.SConscript(
|
||||||
|
dirs = 'Include',
|
||||||
|
exports = {'env': defenv.Copy()}
|
||||||
|
)
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
####### Miscellaneous ###
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
for i in misc:
|
||||||
|
defenv.SConscript(dirs = 'Contrib/%s' % i)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue