| Index: build_release.py |
| =================================================================== |
| rename from build_release.bat |
| rename to build_release.py |
| --- a/build_release.bat |
| +++ b/build_release.py |
| @@ -1,30 +1,62 @@ |
| -@echo off |
| +#!/usr/bin/env python |
| -if %1.==. goto NoKey |
| +import sys, os, re, subprocess |
| -pushd %~dp0 |
| -call libadblockplus\createsolution.bat |
| -msbuild libadblockplus\build\ia32\libadblockplus.sln /p:Configuration=Release |
| -msbuild libadblockplus\build\x64\libadblockplus.sln /p:Configuration=Release |
| -msbuild AdblockPlus.sln "/p:Configuration=Release Test" /p:Platform=Win32 |
| -msbuild AdblockPlus.sln "/p:Configuration=Release Test" /p:Platform=x64 |
| -signtool.exe sign /v /d "Adblock Plus" /du "http://adblockplus.org/" /f %1 /tr "http://www.startssl.com/timestamp" "build\ia32\Release Test\AdblockPlus.dll" |
| -signtool.exe sign /v /d "Adblock Plus" /du "http://adblockplus.org/" /f %1 /tr "http://www.startssl.com/timestamp" "build\x64\Release Test\AdblockPlusx64.dll" |
| -signtool.exe sign /v /d "Adblock Plus" /du "http://adblockplus.org/" /f %1 /tr "http://www.startssl.com/timestamp" "build\ia32\Release Test\AdblockPlusEngine.exe" |
| -signtool.exe sign /v /d "Adblock Plus" /du "http://adblockplus.org/" /f %1 /tr "http://www.startssl.com/timestamp" "build\x64\Release Test\AdblockPlusEngine.exe" |
| +if len(sys.argv) < 2: |
| + print >>sys.stderr, "Please add a command line parameter with the path of the signing key file" |
| + sys.exit(1) |
| -pushd WixInstaller |
| -nmake |
| -popd |
| +basedir = os.path.dirname(os.path.abspath(sys.argv[0])) |
| +key = sys.argv[1] |
| -signtool.exe sign /v /d "Adblock Plus" /du "http://adblockplus.org/" /f %1 /tr "http://www.startssl.com/timestamp" "build\ia32\adblockplusie-en-us-ia32.msi" |
| -signtool.exe sign /v /d "Adblock Plus" /du "http://adblockplus.org/" /f %1 /tr "http://www.startssl.com/timestamp" "build\x64\adblockplusie-en-us-x64.msi" |
| +def sign(*argv): |
| + subprocess.call([ |
| + "signtool", |
| + "sign", "/v", |
| + "/d", "Adblock Plus", |
| + "/du", "http://adblockplus.org/", |
| + "/f", key, |
| + "/tr", "http://www.startssl.com/timestamp" |
| + ] + list(argv)) |
| -popd |
| -goto End |
| +def read_macro_value(file, macro): |
| + handle = open(file, 'rb') |
| + for line in handle: |
| + match = re.search(r"^\s*#define\s+%s\s+\w?\"(.*?)\"" % macro, line) |
| + if match: |
| + return match.group(1) |
| + raise Exception("Macro %s not found in file %s" % (macro, file)) |
| -:NoKey |
| - echo Please add a command line parameter with the path of the signing key file |
| - goto End |
| +version = read_macro_value(os.path.join(basedir, "src", "shared", "Version.h"), "IEPLUGIN_VERSION"); |
| +buildnum, dummy = subprocess.Popen(['hg', 'id', '-R', basedir, '-n'], stdout=subprocess.PIPE).communicate() |
|
Felix Dahlke
2013/06/11 13:53:22
I'd consider buildnum = subprocess.Popen(...).comm
Wladimir Palant
2013/06/11 14:43:18
Seriously? [0] at the end of a long line is very n
|
| +buildnum = re.sub(r'\D', '', buildnum) |
| +while version.count(".") < 1: |
| + version += ".0" |
| +version += ".%s" % buildnum |
| -:End |
| +subprocess.call([os.path.join(basedir, "libadblockplus", "createsolution.bat")]) |
| + |
| +for arch in ("ia32", "x64"): |
| + platform = "/p:Platform=%s" % {"ia32": "Win32", "x64": "x64"}[arch] |
| + subprocess.call([ |
| + "msbuild", |
| + os.path.join(basedir, "libadblockplus", "build", arch, "libadblockplus.sln"), |
| + "/p:Configuration=Release", |
| + platform |
| + ]) |
| + |
| + subprocess.call([ |
| + "msbuild", |
| + os.path.join(basedir, "AdblockPlus.sln"), |
| + "/p:Configuration=Release Test", |
| + platform]) |
| + |
| + plugin = {"ia32": "AdblockPlus.dll", "x64": "AdblockPlusx64.dll"}[arch] |
| + sign(os.path.join(basedir, "build", arch, "Release Test", plugin), |
| + os.path.join(basedir, "build", arch, "Release Test", "AdblockPlusEngine.exe")) |
| + |
| +installerParams = os.environ.copy() |
| +installerParams["VERSION"] = version |
| +subprocess.call(["nmake"], env=installerParams, cwd=os.path.join(basedir, "WixInstaller")) |
| +sign(os.path.join(basedir, "build", "ia32", "adblockplusie-%s-en-us-ia32.msi" % version), |
| + os.path.join(basedir, "build", "x64", "adblockplusie-%s-en-us-x64.msi" % version)) |
|
Eric
2013/06/11 15:41:46
I would redo the batch file as a Makefile rather t
Wladimir Palant
2013/06/12 09:46:34
I would definitely be opposed to that - a Makefile
Eric
2013/06/12 14:33:24
(as I mentioned in email) The incremental calculat
|