Index: SConstruct =================================================================== RCS file: /cvsroot/nsis/NSIS/SConstruct,v retrieving revision 1.55 diff -u -r1.55 SConstruct --- SConstruct 8 Oct 2005 21:13:02 -0000 1.55 +++ SConstruct 22 Nov 2005 09:41:41 -0000 @@ -56,6 +56,11 @@ 'VPatch' ] +doc = [ + 'TODO.txt', + 'license.txt' +] + defenv = Environment() Export('defenv') @@ -79,6 +84,45 @@ opts = Options() +install_dirs={ + 'win32': { + 'dest': '', + 'prefix': '', + 'conf': '', + 'bin': '', + 'data': '', + 'contrib': 'Contrib', + 'include': 'Include', + 'plugin': 'Plugins', + 'stubs': 'Stubs', + 'w32bin': 'Bin', + 'doc': '', + 'docs': 'Docs', + 'examples': 'Examples', + 'menu': 'Menu' + },'default':{ + 'dest': '', + 'prefix': '/usr/local', + 'conf': '$PREFIX/etc', + 'bin': '$PREFIX/bin', + 'data': '$PREFIX/share/nsis', + 'contrib': '$PREFIX_DATA/Contrib', + 'include': '$PREFIX_DATA/Include', + 'plugin': '$PREFIX_DATA/Plugins', + 'stubs': '$PREFIX_DATA/Stubs', + 'w32bin': '$PREFIX_DATA/Bin', + 'doc': '$PREFIX/share/doc/nsis', + 'docs': '$PREFIX_DOC/Docs', + 'examples': '$PREFIX_DOC/Examples', + 'menu': '$PREFIX_DATA/Menu' + } +} + +if defenv['PLATFORM'] == 'win32': + dirs = install_dirs['win32'] +else: + dirs = install_dirs['default'] + # version opts.Add(('VERSION', 'Version of NSIS', cvs_version)) opts.Add(('VER_MAJOR', 'Major version of NSIS (recommended for dist-installer)', None)) @@ -86,11 +130,12 @@ opts.Add(('VER_REVISION', 'Revision of NSIS (recommended for dist-installer)', None)) opts.Add(('VER_BUILD', 'Build version of NSIS (recommended for dist-installer)', None)) # installation -opts.Add(PathOption('PREFIX', 'Installation prefix', None)) +opts.Add(('PREFIX', 'Installation prefix.', dirs['prefix'])) opts.Add(ListOption('SKIPSTUBS', 'A list of stubs that will not be built', 'none', stubs)) opts.Add(ListOption('SKIPPLUGINS', 'A list of plug-ins that will not be built', 'none', plugins)) opts.Add(ListOption('SKIPUTILS', 'A list of utilities that will not be built', 'none', utils)) opts.Add(ListOption('SKIPMISC', 'A list of plug-ins that will not be built', 'none', misc)) +opts.Add(ListOption('SKIPDOC', 'A list of doc files that will not be built/installed', 'none', doc)) # build tools opts.Add(BoolOption('MSTOOLKIT', 'Use Microsoft Visual C++ Toolkit', 'no')) opts.Add(BoolOption('CHMDOCS', 'Build CHM documentation, requires hhc.exe', hhc)) @@ -99,6 +144,20 @@ # build options opts.Add(BoolOption('DEBUG', 'Build executables with debugging information', 'no')) opts.Add(PathOption('CODESIGNER', 'A program used to sign executables', None)) +# path related build options +opts.Add(('PREFIX_DEST', 'Intermediate installation prefix (extra install time prefix).', dirs['dest'])) +opts.Add(('PREFIX_CONF','Path to install conf.nsh to.',dirs['conf'])) +opts.Add(('PREFIX_BIN','Path to install native binaries to.',dirs['bin'])) +opts.Add(('PREFIX_DATA','Path to install nsis data to (plugins, includes, stubs, contrib, win32 binaries)',dirs['data'])) +opts.Add(('PREFIX_CONTRIB','Path to install nsis contrib files to.',dirs['contrib'])) +opts.Add(('PREFIX_INCLUDE','Path to install nsis include files to.',dirs['include'])) +opts.Add(('PREFIX_PLUGIN','Path to install nsis plugins to.',dirs['plugin'])) +opts.Add(('PREFIX_STUBS','Path to install nsis stubs to.',dirs['stubs'])) +opts.Add(('PREFIX_W32BIN','Path to install nsis Win32 Binaries to',dirs['w32bin'])) +opts.Add(('PREFIX_MENU','Path to install nsis menu to',dirs['menu'])) +opts.Add(('PREFIX_DOC','Path to install nsis README / INSTALL / TODO files to.',dirs['doc'])) +opts.Add(('PREFIX_DOCS','Path to install nsis documentation to.',dirs['docs'])) +opts.Add(('PREFIX_EXAMPLES','Path to install nsis examples to.',dirs['examples'])) opts.Update(defenv) @@ -123,36 +182,63 @@ defenv.Execute(Delete('$INSTDISTDIR')) defenv.Execute(Delete('$TESTDISTDIR')) -def Distribute(dir, files): - defenv.Install('$ZIPDISTDIR/%s' % dir, files) - defenv.Install('$INSTDISTDIR/%s' % dir, files) - defenv.Install('$TESTDISTDIR/%s' % dir, files) - - if defenv.has_key('PREFIX') and defenv['PREFIX']: - ins = defenv.Install('$PREFIX/%s' % dir, files) - return ins - - return [] - -def DistributeAs(path, file): - defenv.InstallAs('$ZIPDISTDIR/%s' % path, file) - defenv.InstallAs('$INSTDISTDIR/%s' % path, file) - defenv.InstallAs('$TESTDISTDIR/%s' % path, file) - - if defenv.has_key('PREFIX') and defenv['PREFIX']: - ins = defenv.InstallAs('$PREFIX/%s' % path, file) - return ins - - return [] - -def DistributeExamples(dir, examples): - return Distribute('Examples/%s' % dir, examples) - -def DistributeDocs(dir, docs): - return Distribute('Docs/%s' % dir, docs) +for define in ('PREFIX_CONF','PREFIX_BIN','PREFIX_DATA','PREFIX_CONTRIB','PREFIX_INCLUDE','PREFIX_PLUGIN','PREFIX_STUBS','PREFIX_W32BIN','PREFIX_DOC','PREFIX_DOCS','PREFIX_EXAMPLES'): + defenv.Append(NSIS_CPPDEFINES = [(define, '"'+defenv[define]+'"')]) -def DistributeContribs(dir, contribs): - return Distribute('Contrib/%s' % dir, contribs) +def Distribute(files, names, component, path, install_alias, other_alias): + if names == []: + for d in ('$ZIPDISTDIR/', '$INSTDISTDIR/', '$TESTDISTDIR/'): + defenv.Install('%s/%s/%s' % (d,install_dirs['win32'][component], path), files) + ins = defenv.Install('$PREFIX_DEST$PREFIX_%s/%s' % (component.upper(), path), files) + else: + if isinstance(names, str): + names = [names] + for d in ('$ZIPDISTDIR/', '$INSTDISTDIR/', '$TESTDISTDIR/'): + dir = '%s%s/%s' % (d, install_dirs['win32'][component], path) + installed_files = map(lambda x: '%s/%s' % (dir, x), names) + defenv.InstallAs( installed_files, files) + dir = '$PREFIX_DEST$PREFIX_%s/%s' % (component.upper(), path) + installed_files = map(lambda x: '%s/%s' % (dir, x), names) + ins = defenv.InstallAs( installed_files, files) + defenv.Alias('install', ins ) + if other_alias is not None: + defenv.Alias( other_alias, ins ) + if install_alias is not None: + defenv.Alias( 'install-'+install_alias, ins ) + return ins + +def DistributeBin(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'bin', path, 'bin', alias) + +def DistributeW32Bin(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'w32bin', path, 'w32bin', alias) + +def DistributeDoc(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'doc', path, 'doc', alias) + +def DistributeConf(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'conf', path, 'conf', alias) + +def DistributeStubs(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'stubs', path, 'stubs', alias) + +def DistributeExamples(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'examples', path, 'examples', alias) + +def DistributeDocs(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'docs', path, 'docs', alias) + +def DistributeContrib(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'contrib', path, 'contrib', alias) + +def DistributePlugin(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'plugin', path, 'plugin', alias) + +def DistributeMenu(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'menu', path, 'menu', alias) + +def DistributeInclude(files, names=[], path='', alias=None): + return defenv.Distribute(files, names, 'include', path, 'include', alias) def Sign(targets): if defenv.has_key('CODESIGNER'): @@ -161,10 +247,17 @@ defenv.AddPostAction(t, a) defenv.Distribute = Distribute -defenv.DistributeAs = DistributeAs +defenv.DistributeBin = DistributeBin +defenv.DistributeW32Bin = DistributeW32Bin +defenv.DistributeStubs = DistributeStubs defenv.DistributeExamples = DistributeExamples +defenv.DistributeConf = DistributeConf +defenv.DistributeDoc = DistributeDoc defenv.DistributeDocs = DistributeDocs -defenv.DistributeContribs = DistributeContribs +defenv.DistributeContrib = DistributeContrib +defenv.DistributePlugin = DistributePlugin +defenv.DistributeMenu = DistributeMenu +defenv.DistributeInclude = DistributeInclude defenv.Sign = Sign ###################################################################### @@ -199,22 +292,6 @@ cp_util_env = envs[4] ###################################################################### -####### Aliases ### -###################################################################### - -defenv.Alias('install', '$PREFIX') -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: -# install-compiler -# install-utils - -###################################################################### ####### Distribution ### ###################################################################### @@ -248,8 +325,12 @@ ####### Distribute Basics ### ###################################################################### -defenv.Distribute('', 'license.txt') -defenv.Distribute('', 'nsisconf.nsh') +for d in doc: + if d in defenv['SKIPDOC']: + continue + defenv.DistributeDoc(d) + +defenv.DistributeConf('nsisconf.nsh') ###################################################################### ####### Stubs ### @@ -269,7 +350,7 @@ target = defenv.SConscript(dirs = 'Source/exehead', build_dir = build_dir, duplicate = False, exports = exports) env.SideEffect('%s/stub_%s.map' % (build_dir, stub), target) - env.DistributeAs('Stubs/%s%s' % (compression, suffix), target) + env.DistributeStubs(target, names=compression+suffix) defenv.Alias(compression, target) defenv.Alias('stubs', target) @@ -281,7 +362,7 @@ BuildStub(stub, False) BuildStub(stub, True) -defenv.DistributeAs('Stubs/uninst', 'Source/exehead/uninst.ico') +defenv.DistributeStubs('Source/exehead/uninst.ico',names='uninst') ###################################################################### ####### makensis ### @@ -296,8 +377,7 @@ defenv.Alias('makensis', makensis) -ins = defenv.Distribute('', makensis) -defenv.Alias('install-compiler', ins) +ins = defenv.DistributeBin(makensis,alias='install-compiler') ###################################################################### ####### Common Functions ### @@ -327,9 +407,9 @@ def DistributeExtras(env, target, examples, docs): if examples: - env.DistributeExamples(target, examples) + env.DistributeExamples(examples, path=target) if docs: - env.DistributeDocs(target, docs) + env.DistributeDocs(docs, path=target ) ###################################################################### ####### Plug-ins ### @@ -356,7 +436,7 @@ CleanMap(env, plugin, target) - env.Distribute('Plugins', plugin) + env.DistributePlugin(plugin) DistributeExtras(env, target, examples, docs) @@ -376,7 +456,7 @@ def BuildUtil(target, source, libs, entry = None, res = None, resources = None, defines = None, flags = None, - nodeflib = False, install = None, install_as = None, + nodeflib = False, file_name = '', path='', contrib = False, examples = None, docs = None, cross_platform = False): if not cross_platform: env = util_env.Copy() @@ -387,6 +467,9 @@ AppendRES(env, source, res, resources) + if file_name != '': + target = "%s/%s" % (target, file_name) + util = env.Program(target, source, LIBS = libs) defenv.Alias(target, util) defenv.Alias('utils', util) @@ -395,13 +478,12 @@ CleanMap(env, util, target) - if install is not None: - ins = env.Distribute(install, util) - defenv.Alias('install-utils', ins) - - if install_as is not None: - ins = env.DistributeAs(install_as, util) - defenv.Alias('install-utils', ins) + if contrib: + ins = env.DistributeContrib(util, path=path, alias='install-utils') + elif cross_platform: + ins = env.DistributeBin(util, path=path, alias='install-utils') + else: + ins = env.DistributeW32Bin(util, path=path, alias='install-utils') DistributeExtras(env, target, examples, docs) @@ -493,6 +575,10 @@ test_env = defenv.Copy(ENV = os.environ) # env needed for some scripts +for var in ('conf', 'bin', 'contrib', 'include', 'plugin', 'stubs', 'w32bin', 'doc'): + if not test_env['ENV'].has_key('NSIS'+var.upper()+'DIR'): + test_env['ENV']['NSIS'+var.upper()+'DIR'] = os.path.abspath('.test/'+install_dirs['win32'][var]) + def test_scripts(target, source, env): from os import walk, sep Index: nsisconf.nsh =================================================================== RCS file: /cvsroot/nsis/NSIS/nsisconf.nsh,v retrieving revision 1.6 diff -u -r1.6 nsisconf.nsh --- nsisconf.nsh 5 Feb 2004 21:47:08 -0000 1.6 +++ nsisconf.nsh 22 Nov 2005 09:41:41 -0000 @@ -30,8 +30,8 @@ ;Change the default icons -;Icon "${NSISDIR}\Contrib\Graphics\Icons\arrow-install.ico" -;UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\arrow-uninstall.ico" +;Icon "${NSISCONTRIBDIR}\Graphics\Icons\arrow-install.ico" +;UninstallIcon "${NSISCONTRIBDIR}\Graphics\Icons\arrow-uninstall.ico" ;------------------------ @@ -55,8 +55,8 @@ ;Example: Change the default Modern UI icons ;!ifndef MUI_ICON & MUI_UNICON - ; !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\arrow-install.ico" - ; !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\arrow-uninstall.ico" + ; !define MUI_ICON "${NSISCONTRIBDIR}\Graphics\Icons\arrow-install.ico" + ; !define MUI_UNICON "${NSISCONTRIBDIR}\Graphics\Icons\arrow-uninstall.ico" ;!endif !macroend \ No newline at end of file Index: Contrib/AdvSplash/Example.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/AdvSplash/Example.nsi,v retrieving revision 1.8 diff -u -r1.8 Example.nsi --- Contrib/AdvSplash/Example.nsi 16 Sep 2005 11:27:50 -0000 1.8 +++ Contrib/AdvSplash/Example.nsi 22 Nov 2005 09:41:41 -0000 @@ -7,7 +7,7 @@ Function .onInit # the plugins dir is automatically deleted when the installer exits InitPluginsDir - File /oname=$PLUGINSDIR\splash.bmp "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" + File /oname=$PLUGINSDIR\splash.bmp "${NSISCONTRIBDIR}\Graphics\Header\nsis.bmp" #optional #File /oname=$PLUGINSDIR\splash.wav "C:\myprog\sound.wav" @@ -19,12 +19,12 @@ ; '0' if everything closed normally, and '-1' if some error occurred. MessageBox MB_OK "Transparency" - File /oname=$PLUGINSDIR\splash.bmp "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp" + File /oname=$PLUGINSDIR\splash.bmp "${NSISCONTRIBDIR}\Graphics\Wizard\orange-uninstall.bmp" advsplash::show 2000 0 0 0x1856B1 $PLUGINSDIR\splash Pop $0 MessageBox MB_OK "Transparency/Fading" - File /oname=$PLUGINSDIR\splash.bmp "${NSISDIR}\Contrib\Graphics\Wizard\llama.bmp" + File /oname=$PLUGINSDIR\splash.bmp "${NSISCONTRIBDIR}\Graphics\Wizard\llama.bmp" advsplash::show 1000 600 400 0x04025C $PLUGINSDIR\splash Pop $0 Index: Contrib/BgImage/Example.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/BgImage/Example.nsi,v retrieving revision 1.4 diff -u -r1.4 Example.nsi --- Contrib/BgImage/Example.nsi 6 Nov 2003 13:15:45 -0000 1.4 +++ Contrib/BgImage/Example.nsi 22 Nov 2005 09:41:42 -0000 @@ -17,8 +17,8 @@ # the plugins dir is automatically deleted when the installer exits InitPluginsDir # lets extract some bitmaps... - File /oname=$PLUGINSDIR\1.bmp "${NSISDIR}\Contrib\Graphics\Wizard\llama.bmp" - File /oname=$PLUGINSDIR\2.bmp "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" + File /oname=$PLUGINSDIR\1.bmp "${NSISCONTRIBDIR}\Graphics\Wizard\llama.bmp" + File /oname=$PLUGINSDIR\2.bmp "${NSISCONTRIBDIR}\Graphics\Checks\modern.bmp" !ifdef DEBUG # turn return values on if in debug mode Index: Contrib/Graphics/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Graphics/SConscript,v retrieving revision 1.1 diff -u -r1.1 SConscript --- Contrib/Graphics/SConscript 30 Apr 2005 18:04:55 -0000 1.1 +++ Contrib/Graphics/SConscript 22 Nov 2005 09:41:42 -0000 @@ -78,7 +78,7 @@ return map(lambda x: '%s/%s' % (prefix, x), list) def dist(dir, files): - defenv.DistributeContribs('Graphics/%s' % dir, join(dir, files)) + defenv.DistributeContrib( join(dir,files), path='Graphics/%s' % dir ) dist('Checks', checks) dist('Header', headers) Index: Contrib/InstallOptions/Readme.html =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/InstallOptions/Readme.html,v retrieving revision 1.53 diff -u -r1.53 Readme.html --- Contrib/InstallOptions/Readme.html 11 Oct 2005 16:31:27 -0000 1.53 +++ Contrib/InstallOptions/Readme.html 22 Nov 2005 09:41:43 -0000 @@ -800,7 +800,7 @@ sections and functions:

 ReserveFile "test.ini"
-ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
+ReserveFile "${NSISPLUGINDIR}\InstallOptions.dll"
 

Fonts and colors

Index: Contrib/InstallOptions/test.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/InstallOptions/test.nsi,v retrieving revision 1.18 diff -u -r1.18 test.nsi --- Contrib/InstallOptions/test.nsi 10 Jun 2003 13:18:07 -0000 1.18 +++ Contrib/InstallOptions/test.nsi 22 Nov 2005 09:41:43 -0000 @@ -17,7 +17,7 @@ ;Only useful for BZIP2 compression ;Use ReserveFile for your own InstallOptions INI files too! -ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" +ReserveFile "${NSISPLUGINDIR}\InstallOptions.dll" ReserveFile "test.ini" ;Order of pages Index: Contrib/InstallOptions/testimgs.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/InstallOptions/testimgs.nsi,v retrieving revision 1.2 diff -u -r1.2 testimgs.nsi --- Contrib/InstallOptions/testimgs.nsi 19 Jun 2005 21:39:03 -0000 1.2 +++ Contrib/InstallOptions/testimgs.nsi 22 Nov 2005 09:41:43 -0000 @@ -15,11 +15,11 @@ ;Only useful for BZIP2 compression ;Use ReserveFile for your own InstallOptions INI files too! -ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" +ReserveFile "${NSISPLUGINDIR}\InstallOptions.dll" ReserveFile "testimgs.ini" -ReserveFile "${NSISDIR}\Contrib\Graphics\Checks\colorful.bmp" -ReserveFile "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" -ReserveFile "${NSISDIR}\Contrib\Graphics\Icons\pixel-install.ico" +ReserveFile "${NSISCONTRIBDIR}\Graphics\Checks\colorful.bmp" +ReserveFile "${NSISCONTRIBDIR}\Graphics\Checks\modern.bmp" +ReserveFile "${NSISCONTRIBDIR}\Graphics\Icons\pixel-install.ico" ;Order of pages Page custom SetCustom "" ": Testing InstallOptions" ;Custom page. InstallOptions gets called in SetCustom. @@ -35,9 +35,9 @@ InitPluginsDir File /oname=$PLUGINSDIR\testimgs.ini "testimgs.ini" - File /oname=$PLUGINSDIR\image.bmp "${NSISDIR}\Contrib\Graphics\Checks\colorful.bmp" - File /oname=$PLUGINSDIR\image2.bmp "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" - File /oname=$PLUGINSDIR\icon.ico "${NSISDIR}\Contrib\Graphics\Icons\pixel-install.ico" + File /oname=$PLUGINSDIR\image.bmp "${NSISCONTRIBDIR}\Graphics\Checks\colorful.bmp" + File /oname=$PLUGINSDIR\image2.bmp "${NSISCONTRIBDIR}\Graphics\Checks\modern.bmp" + File /oname=$PLUGINSDIR\icon.ico "${NSISCONTRIBDIR}\Graphics\Icons\pixel-install.ico" ;Write image paths to the INI file Index: Contrib/InstallOptions/testlink.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/InstallOptions/testlink.nsi,v retrieving revision 1.1 diff -u -r1.1 testlink.nsi --- Contrib/InstallOptions/testlink.nsi 16 Jun 2003 18:49:23 -0000 1.1 +++ Contrib/InstallOptions/testlink.nsi 22 Nov 2005 09:41:43 -0000 @@ -19,7 +19,7 @@ ;Only useful for BZIP2 compression ;Use ReserveFile for your own InstallOptions INI files too! -ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" +ReserveFile "${NSISPLUGINDIR}\InstallOptions.dll" ReserveFile "testlink.ini" ;Order of pages Index: Contrib/Language files/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Language files/SConscript,v retrieving revision 1.4 diff -u -r1.4 SConscript --- Contrib/Language files/SConscript 11 Aug 2005 15:58:38 -0000 1.4 +++ Contrib/Language files/SConscript 22 Nov 2005 09:41:43 -0000 @@ -52,4 +52,4 @@ Import('defenv') -defenv.DistributeContribs('Language files', languages) +defenv.DistributeContrib( languages, path='Language files' ) Index: Contrib/Library/LibraryLocal/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Library/LibraryLocal/SConscript,v retrieving revision 1.1 diff -u -r1.1 SConscript --- Contrib/Library/LibraryLocal/SConscript 16 Apr 2005 18:48:50 -0000 1.1 +++ Contrib/Library/LibraryLocal/SConscript 22 Nov 2005 09:41:43 -0000 @@ -12,4 +12,4 @@ Import('BuildUtil') -BuildUtil(target, files, libs, flags = ['$EXCEPTION_FLAG'], install = 'Bin') +BuildUtil(target, files, libs, flags = ['$EXCEPTION_FLAG']) Index: Contrib/Library/RegTool/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Library/RegTool/SConscript,v retrieving revision 1.3 diff -u -r1.3 SConscript --- Contrib/Library/RegTool/SConscript 17 Sep 2005 08:50:41 -0000 1.3 +++ Contrib/Library/RegTool/SConscript 22 Nov 2005 09:41:44 -0000 @@ -14,4 +14,4 @@ Import('BuildUtil') -BuildUtil(target, files, libs, entry = 'WinMain', nodeflib = True, install_as = 'Bin/RegTool.bin') +BuildUtil(target, files, libs, entry = 'WinMain', nodeflib = True, file_name = 'RegTool.bin') Index: Contrib/MakeLangId/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/MakeLangId/SConscript,v retrieving revision 1.2 diff -u -r1.2 SConscript --- Contrib/MakeLangId/SConscript 22 Oct 2005 12:05:33 -0000 1.2 +++ Contrib/MakeLangId/SConscript 22 Nov 2005 09:41:44 -0000 @@ -19,5 +19,5 @@ Import('BuildUtil') -BuildUtil(target, files, libs, res = res, resources = resources, entry = 'WinMain', install = 'Bin') +BuildUtil(target, files, libs, res = res, resources = resources, entry = 'WinMain') Index: Contrib/Makensisw/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Makensisw/SConscript,v retrieving revision 1.4 diff -u -r1.4 SConscript --- Contrib/Makensisw/SConscript 19 Jun 2005 11:20:15 -0000 1.4 +++ Contrib/Makensisw/SConscript 22 Nov 2005 09:41:44 -0000 @@ -53,7 +53,6 @@ res = res, resources = resources, entry = 'WinMain', - install = '', defines = ['WIN32_MEAN_AND_LEAN', 'RELEASE=2.0'], docs = docs ) Index: Contrib/Modern UI/Readme.html =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Modern UI/Readme.html,v retrieving revision 1.147 diff -u -r1.147 Readme.html --- Contrib/Modern UI/Readme.html 5 Nov 2005 23:58:44 -0000 1.147 +++ Contrib/Modern UI/Readme.html 22 Nov 2005 09:41:46 -0000 @@ -265,12 +265,12 @@ "parameter">icon_file
The icon for the installer.
Default: -${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico

+${NSISCONTRIBDIR}\Graphics\Icons\modern-install.ico

MUI_UNICON icon_file
The icon for the uninstaller.
Default: -${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico

+${NSISCONTRIBDIR}\Graphics\Icons\modern-uninstall.ico

MUI_HEADERIMAGE
Display an image on the header of the page.

@@ -278,7 +278,7 @@ "parameter">bmp_file
Bitmap image to display on the header of installers pages (recommended size: 150x57 pixels).
-Default: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp

+Default: ${NSISCONTRIBDIR}\Graphics\Header\nsis.bmp

MUI_HEADERIMAGE_BITMAP_NOSTRETCH
Do not stretch the installer header bitmap to fit the size of the @@ -348,28 +348,28 @@ "parameter">ui_file
The interface file with the dialog resources. Change this if you have made your own customized UI.
-Default: ${NSISDIR}\Contrib\UIs\modern.exe

+Default: ${NSISCONTRIBDIR}\UIs\modern.exe

MUI_UI_HEADERIMAGE ui_file
The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap.
-Default: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe

+Default: ${NSISCONTRIBDIR}\UIs\modern_headerbmp.exe

MUI_UI_HEADERIMAGE_RIGHT ui_file
The interface files with the dialog resource IDD_INST that contains a bitmap control and space for the header bitmap on the right side.
-Default: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe

+Default: ${NSISCONTRIBDIR}\UIs\modern_headerbmpr.exe

MUI_UI_COMPONENTSPAGE_SMALLDESC ui_file
The interface files with a customized dialog resource IDD_SELCOM with a small description area.
-Default: {NSISDIR}\Contrib\UIs\modern_smalldesc.exe

+Default: ${NSISCONTRIBDIR}\UIs\modern_smalldesc.exe

MUI_UI_COMPONENTSPAGE_NODESC ui_file
The interface files with a customized dialog resource IDD_SELCOM without a description area.
-Default: {NSISDIR}\Contrib\UIs\modern_nodesc.exe

+Default: ${NSISCONTRIBDIR}\UIs\modern_nodesc.exe

Open/Close sectionbmp_file
Bitmap for the Welcome page and the Finish page (recommended size: 164x314 pixels).
-Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

+Default: ${NSISCONTRIBDIR}\Graphics\Wizard\win.bmp

MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
Do not stretch the bitmap for the Welcome and Finish page to fit @@ -400,7 +400,7 @@ "parameter">ini_file
InstallOptions INI file for the Welcome page and the Finish page.
-Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini

+Default: ${NSISCONTRIBDIR}\Modern UI\ioSpecial.ini

Open/Close sectionbmp_file
Bitmap for the Welcome page and the Finish page (recommended size: 164x314 pixels).
-Default: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

+Default: ${NSISCONTRIBDIR}\Graphics\Wizard\win.bmp

MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH
Do not stretch the bitmap for the Welcome and Finish page to fit @@ -431,7 +431,7 @@ "parameter">ini_file
InstallOptions INI file for the uninstaller Welcome page and the Finish page.
-Default: ${NSISDIR}\Contrib\Modern UI\ioSpecial.ini

+Default: ${NSISCONTRIBDIR}\Modern UI\ioSpecial.ini

Open/Close sectionbitmap_file
The bitmap with images for the checks of the component select treeview.
-Default: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp

+Default: ${NSISCONTRIBDIR}\Graphics\Checks\modern.bmp

MUI_COMPONENTSPAGE_SMALLDESC
A small description area on the bottom of the page. Use this layout if you have a lot of sections and don't need large Index: Contrib/Modern UI/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Modern UI/SConscript,v retrieving revision 1.4 diff -u -r1.4 SConscript --- Contrib/Modern UI/SConscript 11 Aug 2005 15:58:38 -0000 1.4 +++ Contrib/Modern UI/SConscript 22 Nov 2005 09:41:46 -0000 @@ -77,7 +77,9 @@ 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)) +defenv.DistributeDocs( docs, path=target) +path = 'images' +defenv.DistributeDocs(join(path,doc_images), path='%s/%s'%(target,path)) +defenv.DistributeContrib( contribs, path=target) +path = 'Language files' +defenv.DistributeContrib(join(path,languages), path='%s/%s'%(target,path) ) Index: Contrib/Modern UI/System.nsh =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Modern UI/System.nsh,v retrieving revision 1.200 diff -u -r1.200 System.nsh --- Contrib/Modern UI/System.nsh 4 Sep 2005 21:24:27 -0000 1.200 +++ Contrib/Modern UI/System.nsh 22 Nov 2005 09:41:48 -0000 @@ -97,26 +97,26 @@ !insertmacro MUI_NSISCONF !endif - !insertmacro MUI_DEFAULT MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe" - !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe" - !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe" - !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISDIR}\Contrib\UIs\modern_smalldesc.exe" - !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_NODESC "${NSISDIR}\Contrib\UIs\modern_nodesc.exe" - !insertmacro MUI_DEFAULT MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" - !insertmacro MUI_DEFAULT MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" - !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" + !insertmacro MUI_DEFAULT MUI_UI "${NSISCONTRIBDIR}\UIs\modern.exe" + !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISCONTRIBDIR}\UIs\modern_headerbmp.exe" + !insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISCONTRIBDIR}\UIs\modern_headerbmpr.exe" + !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_SMALLDESC "${NSISCONTRIBDIR}\UIs\modern_smalldesc.exe" + !insertmacro MUI_DEFAULT MUI_UI_COMPONENTSPAGE_NODESC "${NSISCONTRIBDIR}\UIs\modern_nodesc.exe" + !insertmacro MUI_DEFAULT MUI_ICON "${NSISCONTRIBDIR}\Graphics\Icons\modern-install.ico" + !insertmacro MUI_DEFAULT MUI_UNICON "${NSISCONTRIBDIR}\Graphics\Icons\modern-uninstall.ico" + !insertmacro MUI_DEFAULT MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISCONTRIBDIR}\Graphics\Checks\modern.bmp" !insertmacro MUI_DEFAULT MUI_LICENSEPAGE_BGCOLOR "/windows" !insertmacro MUI_DEFAULT MUI_INSTFILESPAGE_COLORS "/windows" !insertmacro MUI_DEFAULT MUI_INSTFILESPAGE_PROGRESSBAR "smooth" !insertmacro MUI_DEFAULT MUI_BGCOLOR "FFFFFF" - !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini" - !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_INI "${NSISDIR}\Contrib\Modern UI\ioSpecial.ini" - !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" - !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" + !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_INI "${NSISCONTRIBDIR}\Modern UI\ioSpecial.ini" + !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_INI "${NSISCONTRIBDIR}\Modern UI\ioSpecial.ini" + !insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISCONTRIBDIR}\Graphics\Wizard\win.bmp" + !insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISCONTRIBDIR}\Graphics\Wizard\win.bmp" !ifdef MUI_HEADERIMAGE - !insertmacro MUI_DEFAULT MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" + !insertmacro MUI_DEFAULT MUI_HEADERIMAGE_BITMAP "${NSISCONTRIBDIR}\Graphics\Header\nsis.bmp" !ifndef MUI_HEADERIMAGE_UNBITMAP !define MUI_HEADERIMAGE_UNBITMAP "${MUI_HEADERIMAGE_BITMAP}" @@ -1926,7 +1926,7 @@ !verbose push !verbose ${MUI_VERBOSE} - ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" + ReserveFile "${NSISPLUGINDIR}\InstallOptions.dll" !verbose pop @@ -1937,7 +1937,7 @@ !verbose push !verbose ${MUI_VERBOSE} - ReserveFile "${NSISDIR}\Plugins\LangDLL.dll" + ReserveFile "${NSISPLUGINDIR}\LangDLL.dll" !verbose pop @@ -1951,7 +1951,7 @@ !verbose push !verbose ${MUI_VERBOSE} - !include "${NSISDIR}\Contrib\Modern UI\Language files\${LANGUAGE}.nsh" + !include "${NSISCONTRIBDIR}\Modern UI\Language files\${LANGUAGE}.nsh" !verbose pop @@ -2058,7 +2058,7 @@ !define "MUI_LANGUAGEFILE_${LANGUAGE}_USED" - LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LANGUAGE}.nlf" + LoadLanguageFile "${NSISCONTRIBDIR}\Language files\${LANGUAGE}.nlf" !else @@ -2154,7 +2154,7 @@ !macro MUI_LANGUAGEFILE_END - !include "${NSISDIR}\Contrib\Modern UI\Language files\Default.nsh" + !include "${NSISCONTRIBDIR}\Modern UI\Language files\Default.nsh" !ifdef MUI_LANGUAGEFILE_DEFAULT_USED !undef MUI_LANGUAGEFILE_DEFAULT_USED !warning "${LANGUAGE} Modern UI language file version doesn't match. Using default English texts for missing strings." Index: Contrib/NSIS Menu/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/NSIS Menu/SConscript,v retrieving revision 1.1 diff -u -r1.1 SConscript --- Contrib/NSIS Menu/SConscript 17 Jun 2005 18:38:36 -0000 1.1 +++ Contrib/NSIS Menu/SConscript 22 Nov 2005 09:41:48 -0000 @@ -36,6 +36,25 @@ wxzlib """) +html = Split(""" + #Menu/compiler.html + #Menu/docs.html + #Menu/index.html + #Menu/intro.html + #Menu/notinstalled.html + #Menu/update.html + #Menu/websites.html +""") + +images = Split(""" + #Menu/images/clear.gif + #Menu/images/header.gif + #Menu/images/line.gif + #Menu/images/menu.gif + #Menu/images/menud.gif + #Menu/images/site.gif +""") + Import('BuildUtil env') import os @@ -46,24 +65,10 @@ #BuildUtil(target, files, libs, libpath = wxlib, cpppath = wxinc, res = rc, resources = resources, install = '', flags = ['/MD']) # install pre-built NSIS.exe -ins = env.Distribute('', '#NSIS.exe') +ins = env.DistributeW32Bin('#NSIS.exe') env.Alias('install-utils', ins) # install menu files -env.Distribute('Menu', '#Menu/compiler.html') -env.Distribute('Menu', '#Menu/docs.html') -env.Distribute('Menu', '#Menu/index.html') -env.Distribute('Menu', '#Menu/intro.html') -env.Distribute('Menu', '#Menu/notinstalled.html') -env.Distribute('Menu', '#Menu/update.html') -env.Distribute('Menu', '#Menu/websites.html') - -env.Distribute('Menu/images', '#Menu/images/clear.gif') -env.Distribute('Menu/images', '#Menu/images/header.gif') -env.Distribute('Menu/images', '#Menu/images/line.gif') -env.Distribute('Menu/images', '#Menu/images/menu.gif') -env.Distribute('Menu/images', '#Menu/images/menud.gif') -env.Distribute('Menu/images', '#Menu/images/site.gif') - -env.Alias('install-utils', '$PREFIX/Menu') +env.DistributeMenu( html, alias='install-utils' ) +env.DistributeMenu( images, path='images', alias='install-utils' ) \ No newline at end of file Index: Contrib/Splash/Example.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/Splash/Example.nsi,v retrieving revision 1.3 diff -u -r1.3 Example.nsi --- Contrib/Splash/Example.nsi 16 Sep 2005 11:27:51 -0000 1.3 +++ Contrib/Splash/Example.nsi 22 Nov 2005 09:41:48 -0000 @@ -7,7 +7,7 @@ Function .onInit # the plugins dir is automatically deleted when the installer exits InitPluginsDir - File /oname=$PLUGINSDIR\splash.bmp "${NSISDIR}\Contrib\Graphics\Wizard\orange-nsis.bmp" + File /oname=$PLUGINSDIR\splash.bmp "${NSISCONTRIBDIR}\Graphics\Wizard\orange-nsis.bmp" #optional #File /oname=$PLUGINSDIR\splash.wav "C:\myprog\sound.wav" Index: Contrib/StartMenu/Example.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/StartMenu/Example.nsi,v retrieving revision 1.9 diff -u -r1.9 Example.nsi --- Contrib/StartMenu/Example.nsi 18 Mar 2003 15:50:58 -0000 1.9 +++ Contrib/StartMenu/Example.nsi 22 Nov 2005 09:41:48 -0000 @@ -7,7 +7,7 @@ Page directory DirText "This installer will create some shortcuts to MakeNSIS in the start menu.$\nFor this it needs NSIS's path." \ "Please specify the path in which you have installed NSIS:" -InstallDir "${NSISDIR}" +InstallDir "$EXEDIR" Function .onVerifyInstDir IfFileExists $INSTDIR\makensis.exe +2 Abort @@ -46,4 +46,4 @@ CreateShortCut "$SMPROGRAMS\$R0\All users MakeNSISw.lnk" $INSTDIR\makensisw.exe skip: -SectionEnd \ No newline at end of file +SectionEnd Index: Contrib/System/System.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/System/System.nsi,v retrieving revision 1.11 diff -u -r1.11 System.nsi --- Contrib/System/System.nsi 19 Jun 2005 21:39:04 -0000 1.11 +++ Contrib/System/System.nsi 22 Nov 2005 09:41:48 -0000 @@ -114,7 +114,7 @@ ; ----- Sample 7 ----- systemSplash -> Callbacks demonstration ----- ; Logo - File /oname=spltmp.bmp "${NSISDIR}\Contrib\Graphics\Header\orange-nsis.bmp" + File /oname=spltmp.bmp "${NSISCONTRIBDIR}\Graphics\Header\orange-nsis.bmp" ; File /oname=spltmp.wav "d:\Windows\Media\tada.wav" ; I. systemSplash variant Index: Contrib/UIs/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/UIs/SConscript,v retrieving revision 1.4 diff -u -r1.4 SConscript --- Contrib/UIs/SConscript 16 Jul 2005 10:03:54 -0000 1.4 +++ Contrib/UIs/SConscript 22 Nov 2005 09:41:48 -0000 @@ -22,5 +22,5 @@ code = env.Object(code) for ui in uis: - ui = BuildUtil(ui, [code], libs, entry = 'WinMain', res = ui + '.rc', install = 'Contrib/UIs') + ui = BuildUtil(ui, [code], libs, entry = 'WinMain', res = ui + '.rc', contrib = True, path = 'UIs') env.Alias('UIs', ui) Index: Contrib/VPatch/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/VPatch/SConscript,v retrieving revision 1.1 diff -u -r1.1 SConscript --- Contrib/VPatch/SConscript 17 Sep 2005 09:25:44 -0000 1.1 +++ Contrib/VPatch/SConscript 22 Nov 2005 09:41:48 -0000 @@ -17,6 +17,6 @@ Import('defenv') -defenv.DistributeExamples(target, examples) -defenv.DistributeDocs(target, docs) -defenv.Distribute('Include', includes) +defenv.DistributeExamples(examples, path=target) +defenv.DistributeDocs(docs, path=target) +defenv.DistributeInclude(includes) Index: Contrib/VPatch/Source/GenPat/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/VPatch/Source/GenPat/SConscript,v retrieving revision 1.2 diff -u -r1.2 SConscript --- Contrib/VPatch/Source/GenPat/SConscript 17 Sep 2005 09:43:40 -0000 1.2 +++ Contrib/VPatch/Source/GenPat/SConscript 22 Nov 2005 09:41:49 -0000 @@ -17,4 +17,4 @@ Import('BuildUtil') -BuildUtil(target, files, libs, flags = ['$EXCEPTION_FLAG'], install = 'Bin', cross_platform = True) +BuildUtil(target, files, libs, flags = ['$EXCEPTION_FLAG'], cross_platform = True) Index: Contrib/nsExec/test.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/nsExec/test.nsi,v retrieving revision 1.5 diff -u -r1.5 test.nsi --- Contrib/nsExec/test.nsi 26 Jan 2004 03:29:41 -0000 1.5 +++ Contrib/nsExec/test.nsi 22 Nov 2005 09:41:49 -0000 @@ -5,7 +5,7 @@ ShowInstDetails show Section "MakeNSIS commands help" - nsExec::ExecToLog '"${NSISDIR}\makensis.exe" /CMDHELP' + nsExec::ExecToLog '"${NSISBINDIR}\makensis.exe" /CMDHELP' Pop $0 # return value/error/timeout DetailPrint "" DetailPrint " Return value: $0" @@ -13,10 +13,10 @@ SectionEnd Section "Output to variable" - nsExec::ExecToStack '"${NSISDIR}\makensis.exe" /VERSION' + nsExec::ExecToStack '"${NSISBINDIR}\makensis.exe" /VERSION' Pop $0 # return value/error/timeout Pop $1 # printed text, up to ${NSIS_MAX_STRLEN} - DetailPrint '"${NSISDIR}\makensis.exe" /VERSION printed: $1' + DetailPrint '"${NSISBINDIR}\makensis.exe" /VERSION printed: $1' DetailPrint "" DetailPrint " Return value: $0" DetailPrint "" Index: Contrib/zip2exe/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/zip2exe/SConscript,v retrieving revision 1.3 diff -u -r1.3 SConscript --- Contrib/zip2exe/SConscript 30 Apr 2005 18:04:54 -0000 1.3 +++ Contrib/zip2exe/SConscript 22 Nov 2005 09:41:49 -0000 @@ -36,6 +36,6 @@ Import('BuildUtil defenv') -BuildUtil(target, files, libs, res = rc, resources = resources, install = 'Bin') +BuildUtil(target, files, libs, res = rc, resources = resources) -defenv.DistributeContribs(target, headers) +defenv.DistributeContrib(headers,path=target) Index: Contrib/zip2exe/main.cpp =================================================================== RCS file: /cvsroot/nsis/NSIS/Contrib/zip2exe/main.cpp,v retrieving revision 1.16 diff -u -r1.16 main.cpp --- Contrib/zip2exe/main.cpp 12 Nov 2005 17:29:04 -0000 1.16 +++ Contrib/zip2exe/main.cpp 22 Nov 2005 09:41:50 -0000 @@ -534,8 +534,8 @@ fprintf(fp,"!define ZIP2EXE_INSTALLDIR `%s`\n",buf); } - fprintf(fp,"!include `${NSISDIR}\\Contrib\\zip2exe\\Base.nsh`\n"); - fprintf(fp,"!include `${NSISDIR}\\Contrib\\zip2exe\\%s.nsh`\n",g_mui?"Modern":"Classic"); + fprintf(fp,"!include `${NSISCONTRIBDIR}\\zip2exe\\Base.nsh`\n"); + fprintf(fp,"!include `${NSISCONTRIBDIR}\\zip2exe\\%s.nsh`\n",g_mui?"Modern":"Classic"); fprintf(fp,"!insertmacro SECTION_BEGIN\n"); fprintf(fp,"File /r `%s\\*.*`\n",tempzip_path); Index: Docs/src/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/SConscript,v retrieving revision 1.8 diff -u -r1.8 SConscript --- Docs/src/SConscript 21 Jun 2005 12:37:38 -0000 1.8 +++ Docs/src/SConscript 22 Nov 2005 09:41:50 -0000 @@ -83,7 +83,7 @@ chm = env.HalibutCHM('NSIS.chm', [chm_config_but] + buts) env.Depends(chm, halibut) - env.Distribute('', chm) + env.DistributeDoc(chm) else: html_builder = Builder( @@ -97,5 +97,5 @@ html = env.Halibut(htmls, [config_but] + buts) env.Depends(html, halibut) - env.DistributeDocs('', build_dir + '/style.css') - env.DistributeDocs('', htmls) + env.DistributeDocs('#Docs/style.css') + env.DistributeDocs(htmls) Index: Docs/src/attributes.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/attributes.but,v retrieving revision 1.66 diff -u -r1.66 attributes.but --- Docs/src/attributes.but 22 Oct 2005 16:52:16 -0000 1.66 +++ Docs/src/attributes.but 22 Nov 2005 09:41:51 -0000 @@ -80,7 +80,7 @@ \b \e{IDD_VERIFY} must contain \e{IDC_STR} (static). -\c ChangeUI all "${NSISDIR}\Contrib\UIs\sdbarker_tiny.exe" +\c ChangeUI all "${NSISCONTRIBDIR}\UIs\sdbarker_tiny.exe" \S2{acheckbitmap} CheckBitmap Index: Docs/src/callback.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/callback.but,v retrieving revision 1.19 diff -u -r1.19 callback.but --- Docs/src/callback.but 30 Jun 2005 18:16:26 -0000 1.19 +++ Docs/src/callback.but 22 Nov 2005 09:41:51 -0000 @@ -10,7 +10,7 @@ Example: -\c !include "${NSISDIR}\Include\WinMessages.nsh" +\c !include "WinMessages.nsh" \c \c Function .onGUIInit \c # 1028 is the id of the branding text control Index: Docs/src/compiler.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/compiler.but,v retrieving revision 1.24 diff -u -r1.24 compiler.but --- Docs/src/compiler.but 12 Oct 2005 14:24:21 -0000 1.24 +++ Docs/src/compiler.but 22 Nov 2005 09:41:52 -0000 @@ -19,7 +19,7 @@ \c directory -Adds another include directory to the include directories list. This list is searched when !include is used. This list's initial value is $\{NSISDIR\}\\Include alone. +Adds another include directory to the include directories list. This list is searched when !include is used. This list's initial value is $\{NSISINCLUDEDIR\} alone. \c !addincludedir ..\include \c !include something.nsh @@ -90,7 +90,7 @@ On POSIX platforms, !execute will use system() just like \R{system}{!system}. -\c !execute '"%WINDIR%\notepad.exe" "${NSISDIR}\license.txt"' +\c !execute '"%WINDIR%\notepad.exe" "${NSISDOCDIR}\license.txt"' \S1{packhdr} !packhdr @@ -106,7 +106,7 @@ This command will execute 'command' using a call to system(), and if the return value compared (using 'compare') to 'comparevalue' is false, execution will halt. 'compare' can be '<' or '>' or '<>' or '='. -\c !system '"%WINDIR%\notepad.exe" "${NSISDIR}\license.txt"' +\c !system '"%WINDIR%\notepad.exe" "${NSISDOCDIR}\license.txt"' \c !system 'echo !define something > newinclude.nsh' \c !include newinclude.nsh \c !ifdef something Index: Docs/src/history.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/history.but,v retrieving revision 1.101 diff -u -r1.101 history.but --- Docs/src/history.but 12 Nov 2005 12:54:01 -0000 1.101 +++ Docs/src/history.but 22 Nov 2005 09:41:55 -0000 @@ -1,5 +1,17 @@ \A{history} Changelog and Release Notes +\H{v2.xx} 2.xx + +NOT YET RELEASED + +\S1{v2.xx-cl} Changelog + +\S2{} Major Changes + +\b Added better support for nsis installs on POSIX platforms + +\S2{} Minor Changes + \H{v2.11} 2.11 Released on November 12th, 2005 Index: Docs/src/script.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/script.but,v retrieving revision 1.17 diff -u -r1.17 script.but --- Docs/src/script.but 26 Oct 2005 19:01:12 -0000 1.17 +++ Docs/src/script.but 22 Nov 2005 09:41:55 -0000 @@ -86,4 +86,4 @@ \\Configuration file\\ -If a file named "nsisconf.nsh" in the same directory as makensis.exe exists, it will be included by default before any scripts (unless the /NOCONFIG command line parameter is used). \ No newline at end of file +If a file named "nsisconf.nsh" in config directory exists, it will be included by default before any scripts (unless the /NOCONFIG command line parameter is used). The config directory on Windows is the same directory as makensis.exe is in. On other platforms this is set at install time and defaults to $PREFIX/etc/. You can alter this at runtime, see \k{usageenvironment} for more information. \ No newline at end of file Index: Docs/src/tutorial.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/tutorial.but,v retrieving revision 1.28 diff -u -r1.28 tutorial.but --- Docs/src/tutorial.but 16 Sep 2005 11:27:51 -0000 1.28 +++ Docs/src/tutorial.but 22 Nov 2005 09:41:55 -0000 @@ -185,7 +185,7 @@ Every plug-in's function has its own requirements when it comes to parameters, some will require none, some will accept as many parameters as you want to send. Examples: -\c nsExec::ExecToLog '"${NSISDIR}\makensis.exe" /CMDHELP' +\c nsExec::ExecToLog '"${NSISBINDIR}\makensis.exe" /CMDHELP' \c InstallOptions::dialog "$PLUGINSDIR\test.ini" \c NSISdl::download http://download.nullsoft.com/winamp/client/winamp291_lite.exe $R0 Index: Docs/src/usage.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/usage.but,v retrieving revision 1.12 diff -u -r1.12 usage.but --- Docs/src/usage.but 23 Jul 2005 10:29:14 -0000 1.12 +++ Docs/src/usage.but 22 Nov 2005 09:41:55 -0000 @@ -19,7 +19,7 @@ \b /PAUSE makes makensis pause before quitting, which is useful when executing directly from Windows. -\b /NOCONFIG disables inclusion of \\nsisconf.nsh. Without this parameter, installer defaults are set from nsisconf.nsh. +\b /NOCONFIG disables inclusion of nsisconf.nsh. Without this parameter, installer defaults are set from nsisconf.nsh. \b /CMDHELP prints basic usage information for command (if specified), or all commands (if command is not specified). @@ -39,6 +39,14 @@ \b If multiple scripts are specified, they are treated as one concatenated script. +\S1{usageenvironment} Environment variables + +makensis checks a number of environment variables that tell it where to locate the things it needs in order to create installers. These variables include: + +\b NSISDIR, NSISCONFDIR, NSISINCLUDEDIR, NSISSTUBSDIR, NSISCONTRIBDIR, NSISPLUGINDIR, NSISDOCDIR, NSISW32BINDIR, NSISBINDIR - Places where nsis data is installed. Please see \k{varconstant} for more info on them. + +\b APPDATA (on Windows) or HOME - Location of the per-user configuration file. + \S1{usageexamples} Examples Basic usage: Index: Docs/src/var.but =================================================================== RCS file: /cvsroot/nsis/NSIS/Docs/src/var.but,v retrieving revision 1.35 diff -u -r1.35 var.but --- Docs/src/var.but 16 Sep 2005 11:27:51 -0000 1.35 +++ Docs/src/var.but 22 Nov 2005 09:41:56 -0000 @@ -77,7 +77,31 @@ \e{$\{NSISDIR\}} -A symbol that contains the path where NSIS is installed. Detected at compile time. Useful if you want to call resources that are in NSIS directory e.g. Icons, UIs... +Depreciated. Use $\{NSISCONTRIBDIR\}, $\{NSISPLUGINDIR\} etc as replacements. + +\e{$\{NSISCONTRIBDIR\}} + +A symbol that contains the path where NSIS resources are installed. Useful if you want to call resources that are in NSIS directory e.g. Icons, UIs... + +\e{$\{NSISPLUGINDIR\}} + +A symbol that contains the path where NSIS plugins are installed. + +\e{$\{NSISINCLUDEDIR\}} + +A symbol that contains the path where NSIS includes are installed. + +\e{$\{NSISDOCDIR\}} + +A symbol that contains the path where NSIS licence and other plain text docs are installed. + +\e{$\{NSISW32BINDIR\}} + +A symbol that contains the path where Win32 executables related to NSIS are installed. + +\e{$\{NSISBINDIR\}} + +A symbol that contains the path where makensis and other native executables are installed. \e{$WINDIR} Index: Examples/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/SConscript,v retrieving revision 1.6 diff -u -r1.6 SConscript --- Examples/SConscript 28 Jul 2005 17:58:35 -0000 1.6 +++ Examples/SConscript 22 Nov 2005 09:41:56 -0000 @@ -42,5 +42,5 @@ Import('env') -env.DistributeExamples('', examples) -env.DistributeExamples('Modern UI', mui_examples) +env.DistributeExamples(examples) +env.DistributeExamples(mui_examples, path='Modern UI') Index: Examples/VersionInfo.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/VersionInfo.nsi,v retrieving revision 1.7 diff -u -r1.7 VersionInfo.nsi --- Examples/VersionInfo.nsi 21 Apr 2005 14:22:23 -0000 1.7 +++ Examples/VersionInfo.nsi 22 Nov 2005 09:41:56 -0000 @@ -9,7 +9,7 @@ OutFile "VersionInfo.exe" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\English.nlf" ;-------------------------------- ;Version Information Index: Examples/bigtest.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/bigtest.nsi,v retrieving revision 1.11 diff -u -r1.11 bigtest.nsi --- Examples/bigtest.nsi 26 Oct 2005 19:01:13 -0000 1.11 +++ Examples/bigtest.nsi 22 Nov 2005 09:41:57 -0000 @@ -16,7 +16,7 @@ Name "BigNSISTest" Caption "NSIS Big Test" -Icon "${NSISDIR}\Contrib\Graphics\Icons\nsis1-install.ico" +Icon "${NSISCONTRIBDIR}\Graphics\Icons\nsis1-install.ico" OutFile "bigtest.exe" SetDateSave on @@ -30,7 +30,7 @@ InstallDir "$PROGRAMFILES\NSISTest\BigNSISTest" InstallDirRegKey HKLM "Software\NSISTest\BigNSISTest" "" -CheckBitmap "${NSISDIR}\Contrib\Graphics\Checks\classic-cross.bmp" +CheckBitmap "${NSISCONTRIBDIR}\Graphics\Checks\classic-cross.bmp" LicenseText "A test text, make sure it's all there" LicenseData "bigtest.nsi" @@ -277,7 +277,7 @@ ; Uninstaller UninstallText "This will uninstall example2. Hit next to continue." -UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\nsis1-uninstall.ico" +UninstallIcon "${NSISCONTRIBDIR}\Graphics\Icons\nsis1-uninstall.ico" Section "Uninstall" Index: Examples/gfx.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/gfx.nsi,v retrieving revision 1.9 diff -u -r1.9 gfx.nsi --- Examples/gfx.nsi 23 Sep 2003 18:33:59 -0000 1.9 +++ Examples/gfx.nsi 22 Nov 2005 09:41:57 -0000 @@ -57,7 +57,7 @@ Section "" ; You can also use the BI_NEXT macro here... MessageBox MB_YESNO "We can change the branding image from within a section too!$\nDo you want me to change it?" IDNO done - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Wizard\nsis.bmp" "" + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Wizard\nsis.bmp" "" done: WriteUninstaller uninst.exe SectionEnd @@ -65,24 +65,24 @@ ;-------------------------------- Function licenseImage - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" /RESIZETOFIT + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Header\nsis.bmp" /RESIZETOFIT MessageBox MB_YESNO 'Would you like to skip the license page?' IDNO no Abort no: FunctionEnd Function customPage - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" /RESIZETOFIT + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Checks\modern.bmp" /RESIZETOFIT MessageBox MB_OK 'This is a nice custom "page" with yet another image :P' #insert install options/start menu/ here FunctionEnd Function dirImage - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Header\win.bmp" /RESIZETOFIT + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Header\win.bmp" /RESIZETOFIT FunctionEnd Function instImage - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Wizard\llama.bmp" /RESIZETOFIT + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Wizard\llama.bmp" /RESIZETOFIT FunctionEnd ;-------------------------------- @@ -94,17 +94,17 @@ UninstPage instfiles un.instImage Function un.uninstImage - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Checks\modern.bmp" /RESIZETOFIT + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Checks\modern.bmp" /RESIZETOFIT FunctionEnd Function un.customPage - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Header\win.bmp" /RESIZETOFIT + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Header\win.bmp" /RESIZETOFIT MessageBox MB_OK 'This is a nice uninstaller custom "page" with yet another image :P' #insert install options/start menu/ here FunctionEnd Function un.instImage - !insertmacro BIMAGE "${NSISDIR}\Contrib\Graphics\Wizard\llama.bmp" /RESIZETOFIT + !insertmacro BIMAGE "${NSISCONTRIBDIR}\Graphics\Wizard\llama.bmp" /RESIZETOFIT FunctionEnd ;-------------------------------- Index: Examples/languages.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/languages.nsi,v retrieving revision 1.18 diff -u -r1.18 languages.nsi --- Examples/languages.nsi 19 Jun 2005 21:39:04 -0000 1.18 +++ Examples/languages.nsi 22 Nov 2005 09:41:57 -0000 @@ -18,17 +18,17 @@ ;-------------------------------- ; First is default -LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\Dutch.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\French.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\Korean.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\Russian.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\Spanish.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\Swedish.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\TradChinese.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" -LoadLanguageFile "${NSISDIR}\Contrib\Language files\Slovak.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\English.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\Dutch.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\French.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\German.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\Korean.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\Russian.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\Spanish.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\Swedish.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\TradChinese.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\SimpChinese.nlf" +LoadLanguageFile "${NSISCONTRIBDIR}\Language files\Slovak.nlf" ; License data ; Not exactly translated, but it shows what's needed Index: Examples/makensis.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/makensis.nsi,v retrieving revision 1.211 diff -u -r1.211 makensis.nsi --- Examples/makensis.nsi 12 Nov 2005 14:50:16 -0000 1.211 +++ Examples/makensis.nsi 22 Nov 2005 09:41:58 -0000 @@ -46,7 +46,7 @@ !define MUI_ABORTWARNING !define MUI_HEADERIMAGE -!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\nsis.bmp" +!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISCONTRIBDIR}\Graphics\Wizard\nsis.bmp" !define MUI_COMPONENTSPAGE_SMALLDESC Index: Examples/waplugin.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/waplugin.nsi,v retrieving revision 1.9 diff -u -r1.9 waplugin.nsi --- Examples/waplugin.nsi 9 Jul 2005 15:56:54 -0000 1.9 +++ Examples/waplugin.nsi 22 Nov 2005 09:41:58 -0000 @@ -57,7 +57,7 @@ ; File to extract #File "C:\program files\winamp\plugins\vis_nsfs.dll" - File /oname=vis_nsfs.dll "${NSISDIR}\Plugins\TypeLib.dll" # dummy plug-in + File /oname=vis_nsfs.dll "${NSISPLUGINDIR}\TypeLib.dll" # dummy plug-in ; prompt user, and if they select no, go to NoWinamp MessageBox MB_YESNO|MB_ICONQUESTION \ Index: Examples/Modern UI/Basic.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/Modern UI/Basic.nsi,v retrieving revision 1.49 diff -u -r1.49 Basic.nsi --- Examples/Modern UI/Basic.nsi 19 Jun 2005 21:39:04 -0000 1.49 +++ Examples/Modern UI/Basic.nsi 22 Nov 2005 09:41:58 -0000 @@ -82,4 +82,4 @@ DeleteRegKey /ifempty HKCU "Software\Modern UI Test" -SectionEnd \ No newline at end of file +SectionEnd Index: Examples/Modern UI/HeaderBitmap.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/Modern UI/HeaderBitmap.nsi,v retrieving revision 1.22 diff -u -r1.22 HeaderBitmap.nsi --- Examples/Modern UI/HeaderBitmap.nsi 19 Jun 2005 21:39:04 -0000 1.22 +++ Examples/Modern UI/HeaderBitmap.nsi 22 Nov 2005 09:41:58 -0000 @@ -24,7 +24,7 @@ ;Interface Configuration !define MUI_HEADERIMAGE - !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional + !define MUI_HEADERIMAGE_BITMAP "${NSISCONTRIBDIR}\Graphics\Header\nsis.bmp" ; optional !define MUI_ABORTWARNING ;-------------------------------- @@ -84,4 +84,4 @@ DeleteRegKey /ifempty HKCU "Software\Modern UI Test" -SectionEnd \ No newline at end of file +SectionEnd Index: Examples/Modern UI/InstallOptions.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/Modern UI/InstallOptions.nsi,v retrieving revision 1.69 diff -u -r1.69 InstallOptions.nsi --- Examples/Modern UI/InstallOptions.nsi 19 Jun 2005 21:39:04 -0000 1.69 +++ Examples/Modern UI/InstallOptions.nsi 22 Nov 2005 09:41:58 -0000 @@ -145,4 +145,4 @@ DeleteRegKey /ifempty HKCU "Software\Modern UI Test" -SectionEnd \ No newline at end of file +SectionEnd Index: Examples/Modern UI/MultiLanguage.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/Modern UI/MultiLanguage.nsi,v retrieving revision 1.108 diff -u -r1.108 MultiLanguage.nsi --- Examples/Modern UI/MultiLanguage.nsi 27 Oct 2005 19:31:24 -0000 1.108 +++ Examples/Modern UI/MultiLanguage.nsi 22 Nov 2005 09:41:58 -0000 @@ -218,4 +218,4 @@ !insertmacro MUI_UNGETLANGUAGE -FunctionEnd \ No newline at end of file +FunctionEnd Index: Examples/Modern UI/StartMenu.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/Modern UI/StartMenu.nsi,v retrieving revision 1.47 diff -u -r1.47 StartMenu.nsi --- Examples/Modern UI/StartMenu.nsi 19 Jun 2005 21:39:04 -0000 1.47 +++ Examples/Modern UI/StartMenu.nsi 22 Nov 2005 09:41:58 -0000 @@ -121,4 +121,4 @@ DeleteRegKey /ifempty HKCU "Software\Modern UI Test" -SectionEnd \ No newline at end of file +SectionEnd Index: Examples/Modern UI/WelcomeFinish.nsi =================================================================== RCS file: /cvsroot/nsis/NSIS/Examples/Modern UI/WelcomeFinish.nsi,v retrieving revision 1.32 diff -u -r1.32 WelcomeFinish.nsi --- Examples/Modern UI/WelcomeFinish.nsi 19 Jun 2005 21:39:04 -0000 1.32 +++ Examples/Modern UI/WelcomeFinish.nsi 22 Nov 2005 09:41:58 -0000 @@ -86,4 +86,4 @@ DeleteRegKey /ifempty HKCU "Software\Modern UI Test" -SectionEnd \ No newline at end of file +SectionEnd Index: Include/Library.nsh =================================================================== RCS file: /cvsroot/nsis/NSIS/Include/Library.nsh,v retrieving revision 1.27 diff -u -r1.27 Library.nsh --- Include/Library.nsh 5 Nov 2005 16:57:51 -0000 1.27 +++ Include/Library.nsh 22 Nov 2005 09:41:59 -0000 @@ -89,7 +89,7 @@ StrCpy $R3 $R3 -4 1 IfFileExists $R3 +3 - File /oname=$R2\NSIS.Library.RegTool.v2.$__INSTALLLLIB_SESSIONGUID.exe "${NSISDIR}\Bin\RegTool.bin" + File /oname=$R2\NSIS.Library.RegTool.v2.$__INSTALLLLIB_SESSIONGUID.exe "${NSISW32BINDIR}\RegTool.bin" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunOnce" \ "NSIS.Library.RegTool.v2" '"$R2\NSIS.Library.RegTool.v2.$__INSTALLLLIB_SESSIONGUID.exe" /S' @@ -110,7 +110,7 @@ !macro __InstallLib_Helper_GetVersion TYPE FILE !tempfile LIBRARY_TEMP_NSH - !execute '"${NSISDIR}\Bin\LibraryLocal.exe" "${TYPE}" "${FILE}" "${LIBRARY_TEMP_NSH}"' + !execute '"${NSISW32BINDIR}\LibraryLocal.exe" "${TYPE}" "${FILE}" "${LIBRARY_TEMP_NSH}"' !include "${LIBRARY_TEMP_NSH}" !delfile "${LIBRARY_TEMP_NSH}" !undef LIBRARY_TEMP_NSH Index: Include/MUI.nsh =================================================================== RCS file: /cvsroot/nsis/NSIS/Include/MUI.nsh,v retrieving revision 1.1 diff -u -r1.1 MUI.nsh --- Include/MUI.nsh 7 Feb 2003 14:15:51 -0000 1.1 +++ Include/MUI.nsh 22 Nov 2005 09:41:59 -0000 @@ -1 +1 @@ -!include "${NSISDIR}\Contrib\Modern UI\System.nsh" \ No newline at end of file +!include "${NSISCONTRIBDIR}\Modern UI\System.nsh" \ No newline at end of file Index: Include/SConscript =================================================================== RCS file: /cvsroot/nsis/NSIS/Include/SConscript,v retrieving revision 1.2 diff -u -r1.2 SConscript --- Include/SConscript 21 Jun 2005 17:43:36 -0000 1.2 +++ Include/SConscript 22 Nov 2005 09:41:59 -0000 @@ -14,5 +14,5 @@ Import('env') -env.Distribute('Include', includes) -env.DistributeDocs('StrFunc', 'StrFunc.txt') +env.DistributeInclude(includes) +env.DistributeDocs('StrFunc.txt', path='StrFunc') Index: Include/UpgradeDLL.nsh =================================================================== RCS file: /cvsroot/nsis/NSIS/Include/UpgradeDLL.nsh,v retrieving revision 1.8 diff -u -r1.8 UpgradeDLL.nsh --- Include/UpgradeDLL.nsh 12 Oct 2005 11:10:23 -0000 1.8 +++ Include/UpgradeDLL.nsh 22 Nov 2005 09:41:59 -0000 @@ -71,7 +71,7 @@ StrCpy $R3 $R3 -4 1 IfFileExists $R3 +3 - File /oname=$R2\NSIS.Library.RegTool.v2.$HWNDPARENT.exe "${NSISDIR}\Bin\RegTool.bin" + File /oname=$R2\NSIS.Library.RegTool.v2.$HWNDPARENT.exe "${NSISW32BINDIR}\RegTool.bin" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunOnce" \ "NSIS.Library.RegTool.v2" '"$R2\NSIS.Library.RegTool.v2.$HWNDPARENT.exe" /S' Index: SCons/config.py =================================================================== RCS file: /cvsroot/nsis/NSIS/SCons/config.py,v retrieving revision 1.3 diff -u -r1.3 config.py --- SCons/config.py 16 Oct 2005 12:50:29 -0000 1.3 +++ SCons/config.py 22 Nov 2005 09:41:59 -0000 @@ -399,6 +399,19 @@ ) ) +if defenv['PLATFORM'] is 'win32': + runtime_paths = 'yes' +else: + runtime_paths = 'no' + +cfg.Add( + BoolOption( + 'NSIS_CONFIG_RELOCATABLE_PATHS', + 'determines if plugins, includes, stubs etc are located at runtime based on the location of the compiler (only available on Win32).', + runtime_paths + ) +) + ### Generate help Help(cfg.GenerateHelpText(defenv)) @@ -467,3 +480,4 @@ AddBoolDefine('NSIS_LOCKWINDOW_SUPPORT') AddBoolDefine('NSIS_CONFIG_PLUGIN_SUPPORT') AddBoolDefine('NSIS_FIX_COMMENT_HANDLING') +AddBoolDefine('NSIS_CONFIG_RELOCATABLE_PATHS') Index: Source/build.cpp =================================================================== RCS file: /cvsroot/nsis/NSIS/Source/build.cpp,v retrieving revision 1.193 diff -u -r1.193 build.cpp --- Source/build.cpp 16 Oct 2005 05:37:12 -0000 1.193 +++ Source/build.cpp 22 Nov 2005 09:42:03 -0000 @@ -463,18 +463,38 @@ void CEXEBuild::initialize(const char *makensis_path) { - string nsis_dir = get_executable_dir(makensis_path); - - definedlist.add("NSISDIR",nsis_dir.c_str()); + char* env_var; + string nsis_dir, include_dir, contrib_dir, plugin_dir, doc_dir, w32bin_dir, bin_dir; +#ifdef NSIS_CONFIG_RELOCATABLE_PATHS + nsis_dir = get_executable_dir(makensis_path) +#endif - string includes_dir = nsis_dir; - includes_dir += PLATFORM_PATH_SEPARATOR_STR; - includes_dir += "Include"; - include_dirs.add(includes_dir.c_str(),0); - - stubs_dir = nsis_dir; - stubs_dir += PLATFORM_PATH_SEPARATOR_STR; - stubs_dir += "Stubs"; +#ifdef NSIS_CONFIG_RELOCATABLE_PATHS +#define set_variable(var, prefix, define, env) \ + env_var = getenv(env); \ + if( env_var == NULL ) { \ + var = nsis_dir; \ + var += PLATFORM_PATH_SEPARATOR_STR; \ + var += CONST_STR(prefix); \ + } else var = env_var; \ + definedlist.add(define,var.c_str()); +#else +#define set_variable(var, prefix, define, env) \ + env_var = getenv(env); \ + if( env_var == NULL ) var = CONST_STR(prefix); \ + else var = env_var; \ + definedlist.add(define,var.c_str()); +#endif + + set_variable( nsis_dir, PREFIX_DATA, "NSISDIR", "NSISDIR" ) + set_variable( include_dir, PREFIX_INCLUDE, "NSISINCLUDEDIR", "NSISINCLUDEDIR" ) + include_dirs.add(include_dir.c_str(),0); + set_variable( stubs_dir, PREFIX_STUBS, "NSISSTUBSDIR", "NSISSTUBSDIR" ) + set_variable( contrib_dir, PREFIX_CONTRIB, "NSISCONTRIBDIR", "NSISCONTRIBDIR" ) + set_variable( plugin_dir, PREFIX_PLUGIN, "NSISPLUGINDIR", "NSISPLUGINDIR" ) + set_variable( doc_dir, PREFIX_DOC, "NSISDOCDIR", "NSISDOCDIR" ) + set_variable( w32bin_dir, PREFIX_W32BIN, "NSISW32BINDIR", "NSISW32BINDIR" ) + set_variable( bin_dir, PREFIX_BIN, "NSISBINDIR", "NSISBINDIR" ) if (set_compressor("zlib", false) != PS_OK) { @@ -3150,18 +3170,12 @@ plugin_used = false; uninst_plugin_used = false; - char* nsisdir = definedlist.find("NSISDIR"); - if (nsisdir) + char* searchPath = definedlist.find("NSISPLUGINDIR"); + if (searchPath) { - char* searchPath = new char [strlen(nsisdir)+9]; - if (searchPath) - { - sprintf(searchPath,"%s" PLATFORM_PATH_SEPARATOR_STR "Plugins",nsisdir); - INFO_MSG("Processing plugin dlls: \"%s" PLATFORM_PATH_SEPARATOR_STR "*.dll\"\n",searchPath); - m_plugins.FindCommands(searchPath, display_info?true:false); - INFO_MSG("\n"); - delete[] searchPath; - } + INFO_MSG("Processing plugin dlls: \"%s" PLATFORM_PATH_SEPARATOR_STR "*.dll\"\n",searchPath); + m_plugins.FindCommands(searchPath, display_info?true:false); + INFO_MSG("\n"); } } Index: Source/makenssi.cpp =================================================================== RCS file: /cvsroot/nsis/NSIS/Source/makenssi.cpp,v retrieving revision 1.70 diff -u -r1.70 makenssi.cpp --- Source/makenssi.cpp 2 Jul 2005 16:49:31 -0000 1.70 +++ Source/makenssi.cpp 22 Nov 2005 09:42:04 -0000 @@ -390,8 +390,17 @@ if (!g_noconfig) { g_noconfig=1; - - string main_conf = get_executable_dir(argv[0]) + PLATFORM_PATH_SEPARATOR_STR + "nsisconf.nsh"; + string main_conf; + char* env_var = getenv("NSISCONFDIR"); + if( env_var == NULL ) +#ifdef NSIS_CONFIG_RELOCATABLE_PATHS + main_conf = get_executable_dir(argv[0]) + PLATFORM_PATH_SEPARATOR_STR + CONST_STR(PREFIX_CONF); +#else + main_conf = CONST_STR(PREFIX_CONF); +#endif + else main_conf = env_var; + main_conf += PLATFORM_PATH_SEPARATOR_STR; + main_conf += "nsisconf.nsh"; if (process_config(build, main_conf)) return 1;