# HG changeset patch # User Sune Foldager <c...@cyanite.org> # Date 1269360364 -3600 # Node ID c504fe05e7d61b9337056b19548cbadfc324cf7d # Parent 47a9033fb13ac8fb19b8009057b8dcd274dbbd60 bring candlelight to setup.py instead of using external scripts
diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -117,7 +117,7 @@ 'SdkTools', 'TARGETOS', 'VCINSTALLDIR', 'VCRoot', 'VSRegKeyPath') def get_sdkenv(arch='x86', env=installenv): - p = subprocess.Popen(r'cmd /e:on /v:on /c call "%s\SetEnv.cmd" /xp /%s /release && set' % + p = subprocess.Popen(r'cmd /e:on /v:on /c call "%s\Bin\SetEnv.cmd" /xp /%s /release && set' % (win7sdk, arch), shell=False, stdout=subprocess.PIPE, @@ -210,6 +210,29 @@ run(r'python %s --link-stylesheet --stylesheet-path style.css %s %s' % ( rst2html, man, outfile), 'build-hg/doc') +def candle(file, sourcedir=None, cwd='.', defines=None): + args = [] + if sourcedir: + args.append('-dSourceDir="%s"' % sourcedir) + if defines: + args += ['-d%s="%s"' % item for item in defines] + run(r'candle -nologo "%s" %s' % (file, ' '.join(args)), cwd) + +def light(output, cwd, *files): + run(r'light -nologo -ext WixUIExtension -sw1076 -spdb -o %s %s' % + (output, ' '.join(f + '.wixobj' for f in files)), cwd) + +def candle_hg(cwd): + wixobj = [ + (r'..\build-hg\contrib\wix\help.wxs', r'..\build-hg\mercurial\help'), + (r'..\build-hg\contrib\wix\templates.wxs', r'..\build-hg\mercurial\templates'), + (r'..\build-hg\contrib\wix\locale.wxs', r'..\build-hg\mercurial\locale'), + (r'..\build-hg\contrib\wix\i18n.wxs', r'..\build-hg\i18n'), + (r'..\build-hg\contrib\wix\doc.wxs', r'..\build-hg\doc'), + (r'..\build-hg\contrib\wix\contrib.wxs', r'..\build-hg\contrib')] + for file, sourcedir in wixobj: + candle(file, sourcedir=sourcedir, cwd=cwd) + def build_hg_installer(name): version = repoversion('build-hg/mercurial/__version__.py') comments = 'Installs Mercurial version %s' % version @@ -222,7 +245,12 @@ desc = '%s %s' % (name, version) run(r'..\misc\sign.cmd %s %s %s "%s"' % (cert, pwd, exe, desc), 'build-hg', hide=True) package = r'..\output\%s-%s.msi' % (name, version) - run(r'..\misc\build-mercurial-msi.bat %s "%s" %s' % (version, comments, package), 'build-hg') + candle_hg('build-hg') + candle(r'contrib\wix\mercurial.wxs', cwd='build-hg', defines=[ + ('Version', version), + ('Comments', comments), + ('VCRedistSrcDir', win7sdk + r'\Redist\VC')]) + light(package, 'build-hg', 'help', 'templates', 'locale', 'i18n', 'doc', 'contrib', 'mercurial') if cert is not None: print "signing using cert '%s'" % (cert,) desc = '%s %s' % (name, version) @@ -319,16 +347,28 @@ package = r'dist\%s.exe' % exe run(r'..\misc\sign.cmd %s %s %s "%s"' % (cert, pwd, package, desc), 'build-thg', hide=True) - run(r'..\misc\build-tortoisehg-wixobj.bat', 'build-thg') + candle_hg('build-thg') + wixobj = [ + (r'..\misc\gtk.wxs', r'dist\gtk'), + (r'..\misc\diff-scripts.wxs', None), + (r'contrib\wix\icons.wxs', r'dist\icons'), + (r'contrib\wix\thg-locale.wxs', r'locale'), + (r'contrib\wix\thg-i18n.wxs', r'i18n'), + (r'contrib\wix\cmenu-i18n.wxs', r'win32')] + for file, sourcedir in wixobj: + candle(file, sourcedir=sourcedir, cwd='build-thg') package = "..\output\%s-%s" % (name, thgversion) commentsfmt = 'Installs TortoiseHg %s, Mercurial %s on %s' - cmd = r'..\misc\build-tortoisehg-msi.bat %s "%s" %s %s %s' productid = productid.lower() + defines = [('Version', thgversion), ('ProductId', productid), + ('VCRedistSrcDir', win7sdk + r'\Redist\VC')] for platform in ('x86', 'x64'): comments = commentsfmt % (longthgversion, hgversion, platform) - params = (thgversion, comments, package, platform, productid) - run(cmd % params, 'build-thg') + candle('contrib\wix\tortoisehg.wxs', cwd='build-thg', defines=(defines + + [('Comments', comments), ('Platform', platform)])) + light(package, 'build-thg', 'help', 'templates', 'locale', 'i18n', 'doc', 'contrib', + 'gtk', 'diff-scripts', 'icons', 'thg-locale', 'thg-i18n', 'cmenu-i18n', 'tortoisehg') if cert is not None: msifile = '%s-%s-%s.msi' % (package, platform, productid) print "signing using cert '%s'" % (cert,) @@ -356,6 +396,7 @@ if not win7sdk: print 'Unable to find Microsoft Windows SDK 7.0, please install' sys.exit(1) + win7sdk = win7sdk[:-4] try: from mercurial import hg, ui, util ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop