More WiX porting

This commit is contained in:
Kovid Goyal 2023-10-10 22:14:35 +05:30
parent 6fe8e094f5
commit 036f7ba5e4
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 19 additions and 13 deletions

View File

@ -575,7 +575,7 @@ def main():
run_tests(os.path.join(env.base, 'calibre-debug.exe'), env.base)
if args.sign_installers:
sign_executables(env)
create_installer(env)
create_installer(env, args.compression_level)
build_portable(env)
build_portable_installer(env)
if args.sign_installers:

View File

@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="AdvancedWelcomeEulaDlgDescriptionPerUser">Click Advanced to change installation settings.</String>
<String Id="ProgressTextFileCost">Computing space requirements, this may take up to five minutes...</String>
<String Id="ProgressTextCostInitialize">Computing space requirements, this may take up to five minutes...</String>
<String Id="ProgressTextCostFinalize">Computing space requirements, this may take up to five minutes...</String>
<String Id="WaitForCostingDlgText">Please wait while the installer finishes determining your disk space requirements, this may take up to five minutes...</String>
<WixLocalization Culture="en-us" xmlns="http://wixtoolset.org/schemas/v4/wxl">
<String Id="AdvancedWelcomeEulaDlgDescriptionPerUser" Value="Click Advanced to change installation settings." />
<String Id="ProgressTextFileCost" Value="Computing space requirements, this may take up to five minutes..." />
<String Id="ProgressTextCostInitialize" Value="Computing space requirements, this may take up to five minutes..." />
<String Id="ProgressTextCostFinalize" Value="Computing space requirements, this may take up to five minutes..." />
<String Id="WaitForCostingDlgText" Value="Please wait while the installer finishes determining your disk space requirements, this may take up to five minutes..." />
</WixLocalization>

View File

@ -9,7 +9,6 @@ import shutil
from bypy.constants import is64bit
from bypy.utils import run
# TODO: Migrate to Wix 4 see https://wixtoolset.org/docs/fourthree/
WIX = os.path.expanduser('~/.dotnet/tools/wix.exe')
if is64bit:
UPGRADE_CODE = '5DD881FF-756B-4097-9D82-8C0F11D521EA'
@ -20,7 +19,12 @@ calibre_constants = globals()['calibre_constants']
j, d, a, b = os.path.join, os.path.dirname, os.path.abspath, os.path.basename
def create_installer(env):
def create_installer(env, compression_level='9'):
cl = int(compression_level)
if cl > 4:
dcl = 'high'
else:
dcl = {1: 'none', 2: 'low', 3: 'medium', 4: 'mszip'}[cl]
if os.path.exists(env.installer_dir):
shutil.rmtree(env.installer_dir)
os.makedirs(env.installer_dir)
@ -58,8 +62,12 @@ def create_installer(env):
license = j(env.src_root, 'LICENSE.rtf')
banner = j(env.src_root, 'icons', 'wix-banner.bmp')
dialog = j(env.src_root, 'icons', 'wix-dialog.bmp')
cmd = [WIX, 'build', '-arch', arch, '-culture', 'en-us', '-loc', enusf,
'-d', 'WixUILicenseRtf=' + license, '-d', 'WixUIBannerBmp=' + banner, '-d', 'WixUIDialogBmp=' + dialog, '-o', installer]
run(WIX, 'extension', 'add', '-g', 'WixToolset.Util.wixext')
run(WIX, 'extension', 'add', '-g', 'WixToolset.UI.wixext')
cmd = [WIX, 'build', '-arch', arch, '-culture', 'en-us', '-loc', enusf, '-dcl', dcl,
'-ext', 'WixToolset.Util.wixext', '-ext', 'WixToolset.UI.wixext',
'-d', 'WixUILicenseRtf=' + license, '-d', 'WixUIBannerBmp=' + banner, '-d', 'WixUIDialogBmp=' + dialog,
'-o', installer, wxsf]
run(*cmd)