mirror of
https://github.com/cryptomator/cryptomator.git
synced 2024-11-26 21:40:29 +00:00
Merge pull request #2242 from cryptomator/feature/parameterize-win-build-script
Parameterize local windows build script
This commit is contained in:
commit
acc5277258
23
dist/win/build.bat
vendored
23
dist/win/build.bat
vendored
@ -1,2 +1,23 @@
|
||||
@echo off
|
||||
powershell -NoLogo -NoExit -ExecutionPolicy Unrestricted -Command .\build.ps1
|
||||
:: Default values for Cryptomator builds
|
||||
SET APPNAME="Cryptomator"
|
||||
SET MAIN_JAR_GLOB="cryptomator-*"
|
||||
SET UPGRADE_UUID="bda45523-42b1-4cae-9354-a45475ed4775"
|
||||
SET VENDOR="Skymatic GmbH"
|
||||
SET FIRST_COPYRIGHT_YEAR=2016
|
||||
SET ABOUT_URL="https://cryptomator.org"
|
||||
SET UPDATE_URL="https://cryptomator.org/downloads/"
|
||||
SET HELP_URL="https://cryptomator.org/contact/"
|
||||
SET MODULE_AND_MAIN_CLASS="org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator"
|
||||
|
||||
powershell -NoLogo -NoExit -ExecutionPolicy Unrestricted -Command .\build.ps1^
|
||||
-AppName %APPNAME%^
|
||||
-MainJarGlob "%MAIN_JAR_GLOB%"^
|
||||
-ModuleAndMainClass "%MODULE_AND_MAIN_CLASS%"^
|
||||
-UpgradeUUID "%UPGRADE_UUID%"^
|
||||
-Vendor ""%VENDOR%""^
|
||||
-CopyrightStartYear %FIRST_COPYRIGHT_YEAR%^
|
||||
-AboutUrl "%ABOUT_URL%"^
|
||||
-HelpUrl "%HELP_URL%"^
|
||||
-UpdateUrl "%UPDATE_URL%"^
|
||||
-Clean 1
|
77
dist/win/build.ps1
vendored
77
dist/win/build.ps1
vendored
@ -1,5 +1,15 @@
|
||||
# check parameters
|
||||
$clean = $args[0] -eq "fresh"
|
||||
Param(
|
||||
[Parameter(Mandatory, HelpMessage="Please provide a name for the app")][string] $AppName,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide the glob pattern to identify the main jar")][string] $MainJarGlob,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide the module- and main class path to start the app")][string] $ModuleAndMainClass,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide the windows upgrade uuid for the installer")][string] $UpgradeUUID,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide the name of the vendor")][string] $Vendor,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide the starting year for the copyright notice")][int] $CopyrightStartYear,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide a help url")][string] $HelpUrl,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide an update url")][string] $UpdateUrl,
|
||||
[Parameter(Mandatory, HelpMessage="Please provide an about url")][string] $AboutUrl,
|
||||
[bool] $clean
|
||||
)
|
||||
|
||||
# check preconditions
|
||||
if ((Get-Command "git" -ErrorAction SilentlyContinue) -eq $null)
|
||||
@ -24,12 +34,11 @@ Write-Output "`$revisionNo=$revisionNo"
|
||||
Write-Output "`$buildDir=$buildDir"
|
||||
Write-Output "`$Env:JAVA_HOME=$Env:JAVA_HOME"
|
||||
|
||||
$vendor = "Skymatic GmbH"
|
||||
$copyright = "(C) 2016 - 2022 Skymatic GmbH"
|
||||
$copyright = "(C) $CopyrightStartYear - $((Get-Date).Year) $Vendor"
|
||||
|
||||
# compile
|
||||
&mvn -B -f $buildDir/../../pom.xml clean package -DskipTests -Pwin
|
||||
Copy-Item "$buildDir\..\..\target\cryptomator-*.jar" -Destination "$buildDir\..\..\target\mods"
|
||||
Copy-Item "$buildDir\..\..\target\$MainJarGlob.jar" -Destination "$buildDir\..\..\target\mods"
|
||||
|
||||
# add runtime
|
||||
$runtimeImagePath = '.\runtime'
|
||||
@ -48,7 +57,7 @@ if ($clean -and (Test-Path -Path $runtimeImagePath)) {
|
||||
--strip-debug `
|
||||
--compress=1
|
||||
|
||||
$appPath = '.\Cryptomator'
|
||||
$appPath = ".\$AppName"
|
||||
if ($clean -and (Test-Path -Path $appPath)) {
|
||||
Remove-Item -Path $appPath -Force -Recurse
|
||||
}
|
||||
@ -60,27 +69,27 @@ if ($clean -and (Test-Path -Path $appPath)) {
|
||||
--runtime-image runtime `
|
||||
--input ../../target/libs `
|
||||
--module-path ../../target/mods `
|
||||
--module org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator `
|
||||
--module $ModuleAndMainClass `
|
||||
--dest . `
|
||||
--name Cryptomator `
|
||||
--vendor $vendor `
|
||||
--name $AppName `
|
||||
--vendor $Vendor `
|
||||
--copyright $copyright `
|
||||
--java-options "-Xss5m" `
|
||||
--java-options "-Xmx256m" `
|
||||
--java-options "-Dcryptomator.appVersion=`"$semVerNo`"" `
|
||||
--app-version "$semVerNo.$revisionNo" `
|
||||
--java-options "-Dfile.encoding=`"utf-8`"" `
|
||||
--java-options "-Dcryptomator.logDir=`"~/AppData/Roaming/Cryptomator`"" `
|
||||
--java-options "-Dcryptomator.pluginDir=`"~/AppData/Roaming/Cryptomator/Plugins`"" `
|
||||
--java-options "-Dcryptomator.settingsPath=`"~/AppData/Roaming/Cryptomator/settings.json`"" `
|
||||
--java-options "-Dcryptomator.ipcSocketPath=`"~/AppData/Roaming/Cryptomator/ipc.socket`"" `
|
||||
--java-options "-Dcryptomator.keychainPath=`"~/AppData/Roaming/Cryptomator/keychain.json`"" `
|
||||
--java-options "-Dcryptomator.mountPointsDir=`"~/Cryptomator`"" `
|
||||
--java-options "-Dcryptomator.integrationsWin.autoStartShellLinkName=`"Cryptomator`"" `
|
||||
--java-options "-Dcryptomator.logDir=`"~/AppData/Roaming/$AppName`"" `
|
||||
--java-options "-Dcryptomator.pluginDir=`"~/AppData/Roaming/$AppName/Plugins`"" `
|
||||
--java-options "-Dcryptomator.settingsPath=`"~/AppData/Roaming/$AppName/settings.json`"" `
|
||||
--java-options "-Dcryptomator.ipcSocketPath=`"~/AppData/Roaming/$AppName/ipc.socket`"" `
|
||||
--java-options "-Dcryptomator.keychainPath=`"~/AppData/Roaming/$AppName/keychain.json`"" `
|
||||
--java-options "-Dcryptomator.mountPointsDir=`"~/$AppName`"" `
|
||||
--java-options "-Dcryptomator.integrationsWin.autoStartShellLinkName=`"$AppName`"" `
|
||||
--java-options "-Dcryptomator.showTrayIcon=true" `
|
||||
--java-options "-Dcryptomator.buildNumber=`"msi-$revisionNo`"" `
|
||||
--resource-dir resources `
|
||||
--icon resources/Cryptomator.ico
|
||||
--icon resources/$AppName.ico
|
||||
|
||||
#Create RTF license for msi
|
||||
&mvn -B -f $buildDir/../../pom.xml license:add-third-party `
|
||||
@ -93,33 +102,29 @@ if ($clean -and (Test-Path -Path $appPath)) {
|
||||
"-Dlicense.licenseMergesUrl=file:///$buildDir/../../license/merges"
|
||||
|
||||
# patch app dir
|
||||
Copy-Item "contrib\*" -Destination "Cryptomator"
|
||||
attrib -r "Cryptomator\Cryptomator.exe"
|
||||
|
||||
$aboutUrl="https://cryptomator.org"
|
||||
$updateUrl="https://cryptomator.org/downloads/"
|
||||
$helpUrl="https://cryptomator.org/contact/"
|
||||
Copy-Item "contrib\*" -Destination "$AppName"
|
||||
attrib -r "$AppName\$AppName.exe"
|
||||
|
||||
# create .msi
|
||||
$Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources"
|
||||
& "$Env:JAVA_HOME\bin\jpackage" `
|
||||
--verbose `
|
||||
--type msi `
|
||||
--win-upgrade-uuid bda45523-42b1-4cae-9354-a45475ed4775 `
|
||||
--app-image Cryptomator `
|
||||
--win-upgrade-uuid $UpgradeUUID `
|
||||
--app-image $AppName `
|
||||
--dest installer `
|
||||
--name Cryptomator `
|
||||
--vendor $vendor `
|
||||
--name $AppName `
|
||||
--vendor $Vendor `
|
||||
--copyright $copyright `
|
||||
--app-version "$semVerNo" `
|
||||
--win-menu `
|
||||
--win-dir-chooser `
|
||||
--win-shortcut-prompt `
|
||||
--win-update-url $updateUrl `
|
||||
--win-menu-group Cryptomator `
|
||||
--win-menu-group $AppName `
|
||||
--resource-dir resources `
|
||||
--about-url $aboutUrl `
|
||||
--license-file resources/license.rtf `
|
||||
--win-update-url $UpdateUrl `
|
||||
--about-url $AboutUrl `
|
||||
--file-associations resources/FAvaultFile.properties
|
||||
|
||||
#Create RTF license for bundle
|
||||
@ -140,14 +145,14 @@ Write-Output "Downloading ${winfspMsiUrl}..."
|
||||
Invoke-WebRequest $winfspMsiUrl -OutFile ".\bundle\resources\winfsp.msi" # redirects are followed by default
|
||||
|
||||
# copy MSI to bundle resources
|
||||
Copy-Item ".\installer\Cryptomator-*.msi" -Destination ".\bundle\resources\Cryptomator.msi"
|
||||
Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi"
|
||||
|
||||
# create bundle including winfsp
|
||||
& "$env:WIX\bin\candle.exe" .\bundle\bundleWithWinfsp.wxs -ext WixBalExtension -out bundle\ `
|
||||
-dBundleVersion="$semVerNo.$revisionNo" `
|
||||
-dBundleVendor="$vendor" `
|
||||
-dBundleVendor="$Vendor" `
|
||||
-dBundleCopyright="$copyright" `
|
||||
-dAboutUrl="$aboutUrl" `
|
||||
-dHelpUrl="$helpUrl" `
|
||||
-dUpdateUrl="$updateUrl"
|
||||
& "$env:WIX\bin\light.exe" -b . .\bundle\BundlewithWinfsp.wixobj -ext WixBalExtension -out installer\Cryptomator-Installer.exe
|
||||
-dAboutUrl="$AboutUrl" `
|
||||
-dHelpUrl="$HelpUrl" `
|
||||
-dUpdateUrl="$UpdateUrl"
|
||||
& "$env:WIX\bin\light.exe" -b . .\bundle\BundlewithWinfsp.wixobj -ext WixBalExtension -out installer\$AppName-Installer.exe
|
2
dist/win/resources/customWizard.wxi
vendored
2
dist/win/resources/customWizard.wxi
vendored
@ -91,7 +91,7 @@
|
||||
<Condition Action="show">FOUNDRUNNINGAPP</Condition>
|
||||
</Control>
|
||||
<Control Id="DescriptionReason2" Type="Text" X="135" Y="170" Width="220" Height="40" Transparent="yes" NoPrefix="yes" Hidden="yes" >
|
||||
<Text>Cryptomator was still running during installation.</Text>
|
||||
<Text>Application to update was still running during installation.</Text>
|
||||
<Condition Action="show">FOUNDRUNNINGAPP</Condition>
|
||||
</Control>
|
||||
</Dialog>
|
||||
|
16
dist/win/resources/main.wxs
vendored
16
dist/win/resources/main.wxs
vendored
@ -86,12 +86,12 @@
|
||||
<!-- Non-Opening ProgID -->
|
||||
<DirectoryRef Id="INSTALLDIR">
|
||||
<Component Win64="yes" Id="nonStartingProgID" >
|
||||
<File Id="IconFileForEncryptedData" KeyPath="yes" Source="$(env.JP_WIXWIZARD_RESOURCES)\Cryptomator-Vault.ico" Name="Cryptomator-Vault.ico"></File>
|
||||
<ProgId Id="Cryptomator.Encrypted.1" Description="Cryptomator Encrypted Data" Icon="IconFileForEncryptedData" IconIndex="0">
|
||||
<Extension Id="c9r" Advertise="no" ContentType="application/vnd.cryptomator.encrypted">
|
||||
<MIME ContentType="application/vnd.cryptomator.encrypted" Default="yes"></MIME>
|
||||
<File Id="IconFileForEncryptedData" KeyPath="yes" Source="$(env.JP_WIXWIZARD_RESOURCES)\$(var.IconFileC9rC9s)" Name="$(var.IconFileC9rC9s)"></File>
|
||||
<ProgId Id="$(var.JpAppName).Encrypted.1" Description="$(var.JpAppName) Encrypted Data" Icon="IconFileForEncryptedData" IconIndex="0">
|
||||
<Extension Id="c9r" Advertise="no" ContentType="$(var.ProgIdContentType)">
|
||||
<MIME ContentType="$(var.ProgIdContentType)" Default="yes"></MIME>
|
||||
</Extension>
|
||||
<Extension Id="c9s" Advertise="no" ContentType="application/vnd.cryptomator.encrypted"/>
|
||||
<Extension Id="c9s" Advertise="no" ContentType="$(var.ProgIdContentType)"/>
|
||||
</ProgId>
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
@ -130,12 +130,12 @@
|
||||
<!-- Running App detection and exit -->
|
||||
<Property Id="FOUNDRUNNINGAPP" Admin="yes"/>
|
||||
<util:CloseApplication
|
||||
Id="CloseCryptomator"
|
||||
Target="cryptomator.exe"
|
||||
Target="$(var.CloseApplicationTarget)"
|
||||
Id="Close$(var.JpAppName)"
|
||||
CloseMessage="no"
|
||||
RebootPrompt="no"
|
||||
PromptToContinue="yes"
|
||||
Description="A running instance of Cryptomator is found. Please close it to continue."
|
||||
Description="A running instance of $(var.JpAppName) is found. Please close it to continue."
|
||||
Property="FOUNDRUNNINGAPP"
|
||||
>
|
||||
</util:CloseApplication>
|
||||
|
39
dist/win/resources/overrides.wxi
vendored
Normal file
39
dist/win/resources/overrides.wxi
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Stub by design -->
|
||||
|
||||
<!--
|
||||
overrides.wxi is a placeholder to set/alter WiX variables referenced from default
|
||||
main.wxs file.
|
||||
|
||||
Put custom overrides.wxi in resource directory to replace this default file.
|
||||
|
||||
Override default overrides.wxi if configuring of msi installers through jpackage
|
||||
command line is not sufficient.
|
||||
|
||||
WiX variables referenced from default main.wxs that can be altered in custom overrides.wxi:
|
||||
|
||||
- JpProductLanguage
|
||||
Value of `Language` attribute of `Product` WiX element. Default value is 1033.
|
||||
|
||||
- JpInstallerVersion
|
||||
Value of `InstallerVersion` attribute of `Package` WiX element. Default value is 200.
|
||||
|
||||
- JpCompressedMsi
|
||||
Value of `Compressed` attribute of `Package` WiX element. Default value is `yes`.
|
||||
|
||||
- JpAllowDowngrades
|
||||
Should be defined to enable downgrades and undefined to disable downgrades.
|
||||
Default value is `yes`.
|
||||
|
||||
- JpAllowUpgrades
|
||||
Should be defined to enable upgrades and undefined to disable upgrades.
|
||||
Default value is `yes`.
|
||||
-->
|
||||
|
||||
<!-- Non-opening ProgID settings-->
|
||||
<?define IconFileC9rC9s= "Cryptomator-Vault.ico" ?>
|
||||
<?define ProgIdContentType= "application/vnd.cryptomator.encrypted" ?>
|
||||
|
||||
<!-- Close Application util -->
|
||||
<?define CloseApplicationTarget= "cryptomator.exe" ?>
|
||||
<Include/>
|
Loading…
Reference in New Issue
Block a user