# 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&#174; 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

Reply via email to