Cardinal/utils/create-windows-installer.sh
Filipe Coelho a1017be6ea
Packaging fixes (#192)
* Start cleanup for improved packaging

Signed-off-by: falkTX <falktx@falktx.com>

* Use the same folder for VST2 plugins

Signed-off-by: falkTX <falktx@falktx.com>

* Fix static build

Signed-off-by: falkTX <falktx@falktx.com>

* Do not set source-dir in CI builds

Signed-off-by: falkTX <falktx@falktx.com>

* Set a custom fallback systemdir per OS

Signed-off-by: falkTX <falktx@falktx.com>

* CI tweaks

Signed-off-by: falkTX <falktx@falktx.com>

* Build the whole pyqt on windows

Signed-off-by: falkTX <falktx@falktx.com>

* Mention AU in readme and differences docs

Signed-off-by: falkTX <falktx@falktx.com>

* Add specialized utils for macOS packaging

Signed-off-by: falkTX <falktx@falktx.com>

* Fix plugin-validation build

Signed-off-by: falkTX <falktx@falktx.com>

* Fix build

Signed-off-by: falkTX <falktx@falktx.com>

* Do not create window for lv2lint tests

* Start enabling AU builds

* Copy over mod.lv2 specs for validation

* Skip main cardinal lv2lint, the custom CVPorts are not supported

* au build needs carla

* More CI tweaks

* Build headless version for plugin validation

* Fix typo

* Only show missing resources error message once

Signed-off-by: falkTX <falktx@falktx.com>

* Fallback to system path even if using a plugin bundle

Signed-off-by: falkTX <falktx@falktx.com>

* CI fixes, build full carla on Windows

Signed-off-by: falkTX <falktx@falktx.com>

* Rename script

Signed-off-by: falkTX <falktx@falktx.com>

* Silly typo

Signed-off-by: falkTX <falktx@falktx.com>

* More CI tweaks, add windows installer

Signed-off-by: falkTX <falktx@falktx.com>

* Setup Carla paths for Windows

Signed-off-by: falkTX <falktx@falktx.com>

* Yet more tweaks

Signed-off-by: falkTX <falktx@falktx.com>

* Package carla on windows, use xvfb-run

Signed-off-by: falkTX <falktx@falktx.com>

* Test win32 build too

Signed-off-by: falkTX <falktx@falktx.com>

* Finalize rework

Signed-off-by: falkTX <falktx@falktx.com>
2022-03-12 22:12:22 +00:00

53 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
set -e
if [ ! -d bin ]; then
echo "Please run this script from the root folder"
exit
fi
# args
bit=${1}
bit=${bit:=64}
# setup innosetup
dlfile="${PWD}/bin/innosetup-6.0.5.exe"
innodir="${PWD}/build/innosetup-6.0.5"
iscc="${innodir}/drive_c/InnoSetup/ISCC.exe"
# download it
if [ ! -f "${dlfile}" ]; then
# FIXME proper dl version
curl -L https://jrsoftware.org/download.php/is.exe?site=2 -o "${dlfile}"
fi
# initialize wine
if [ ! -d "${innodir}"/drive_c ]; then
env WINEPREFIX="${innodir}" wineboot -u
fi
# install innosetup in custom wineprefix
if [ ! -f "${innodir}"/drive_c/InnoSetup/ISCC.exe ]; then
env WINEPREFIX="${innodir}" wine "${dlfile}" /allusers /dir=C:\\InnoSetup /nocancel /norestart /verysilent
fi
# generate resources
echo -n "" > utils/inno/resources.iss
IFS='
'
for f in $(find -L bin/Cardinal.lv2/resources/ -type f); do
d=$(dirname $(echo ${f} | sed "s|bin/Cardinal.lv2/resources/||"))
echo "Source: \"..\\..\\$(echo ${f} | tr '/' '\\')\"; DestDir: \"{commoncf${bit}}\\Cardinal\\$(echo ${d} | tr '/' '\\')\"; Components: resources; Flags: ignoreversion;" >> utils/inno/resources.iss
done
# generate version
echo "#define VERSION \"$(make version)\"" > utils/inno/version.iss
# create the installer file
pushd "utils/inno"
env WINEPREFIX="${innodir}" wine "${iscc}" "win${bit}.iss"
popd
# move installer file where CI expects it to be
mv utils/inno/*.exe .