diff --git a/.gitignore b/.gitignore index ec74b0fa4..3196fa9e8 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,8 @@ src/common/scm_rev.cpp # Windows global filetypes Thumbs.db +# QtIFW builds +dist/installer/redist +dist/installer/citra-installer* +dist/installer/*.zip +dist/installer/*.tar.gz diff --git a/dist/installer/README.md b/dist/installer/README.md new file mode 100644 index 000000000..984c5a58f --- /dev/null +++ b/dist/installer/README.md @@ -0,0 +1,30 @@ +Citra Qt Installer +================== + +This contains the configuration files for building Citra's installer. + +`packages` is empty as Qt expects that it gets a valid directory for offline + packages, even if you are a online-only installer. + +Installers can only be built on the platform that they are targeting. + +Windows +------- + +Using Powershell 2.0 (Windows 10): + +```powershell +cd dist\installer +powershell –ExecutionPolicy Bypass .\build.ps1 +``` + +Linux/Mac +--------- + +Curl + Bash must be available. + +```bash +cd dist/installer +chmod +x build.sh +./build.sh +``` diff --git a/dist/installer/build.ps1 b/dist/installer/build.ps1 new file mode 100644 index 000000000..22be17f04 --- /dev/null +++ b/dist/installer/build.ps1 @@ -0,0 +1,14 @@ +if (!(Test-Path redist\installerbase_win.exe)) { + echo "Downloading dependencies..." + if (!(Test-Path redist)) { + New-Item -path . -name redist -itemtype directory + } + Invoke-WebRequest -Uri "https://github.com/citra-emu/ext-windows-bin/raw/master/qtifw/windows.zip" -OutFile windows.zip + echo "Extracting..." + Expand-Archive windows.zip -DestinationPath redist +} else { + echo "Found pre-downloaded redist." +} + +echo "Building Qt Installer to '.\citra-installer-windows.exe'..." +.\redist\binarycreator_win.exe -t .\redist\installerbase_win.exe -n -c .\config\config_windows.xml -p .\packages\ citra-installer-windows diff --git a/dist/installer/build.sh b/dist/installer/build.sh new file mode 100755 index 000000000..ea5c0af47 --- /dev/null +++ b/dist/installer/build.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -e + +PLATFORM="" +if [[ "$OSTYPE" == "linux-gnu" ]]; then + PLATFORM="linux" +elif [[ "$OSTYPE" == "darwin"* ]]; then + PLATFORM="mac" +else + echo Your platform is not supported. + exit 1 +fi + +if [ ! -f redist/installerbase_$PLATFORM ]; then + echo Downloading dependencies... + curl -L -O https://github.com/citra-emu/ext-windows-bin/raw/master/qtifw/$PLATFORM.tar.gz + + echo Extracting... + mkdir -p redist + cd redist + tar -zxvf ../$PLATFORM.tar.gz + cd .. + + chmod +x redist/* +fi + +TARGET_FILE=citra-installer-$PLATFORM +CONFIG_FILE=config/config_$PLATFORM.xml +REDIST_BASE=redist/installerbase_$PLATFORM +BINARY_CREATOR=redist/binarycreator_$PLATFORM +PACKAGES_DIR=packages + +echo Building to \'$TARGET_FILE\'... + +$BINARY_CREATOR -t $REDIST_BASE -n -c $CONFIG_FILE -p $PACKAGES_DIR $TARGET_FILE diff --git a/dist/installer/config/config_linux.xml b/dist/installer/config/config_linux.xml new file mode 100644 index 000000000..f5bcda6b1 --- /dev/null +++ b/dist/installer/config/config_linux.xml @@ -0,0 +1,18 @@ + + + Citra + 1.0.0 + Citra Updater + Citra team + + @HomeDir@/Citra + icon + icon.png + + + https://repo.citra-emu.org + 1 + Official Citra Repository + + + diff --git a/dist/installer/config/config_mac.xml b/dist/installer/config/config_mac.xml new file mode 100644 index 000000000..6440d45f5 --- /dev/null +++ b/dist/installer/config/config_mac.xml @@ -0,0 +1,18 @@ + + + Citra + 1.0.0 + Citra Updater + Citra team + + @ApplicationsDir@/Citra + icon + icon.png + + + https://repo.citra-emu.org + 1 + Official Citra Repository + + + diff --git a/dist/installer/config/config_windows.xml b/dist/installer/config/config_windows.xml new file mode 100644 index 000000000..6527f53de --- /dev/null +++ b/dist/installer/config/config_windows.xml @@ -0,0 +1,19 @@ + + + Citra + 1.0.0 + Citra Updater + Citra team + Citra + + @HomeDir@/AppData/Local/Citra + icon + icon.png + + + https://repo.citra-emu.org + 1 + Official Citra Repository + + + diff --git a/dist/installer/config/icon.icns b/dist/installer/config/icon.icns new file mode 100644 index 000000000..477e0c568 Binary files /dev/null and b/dist/installer/config/icon.icns differ diff --git a/dist/installer/config/icon.ico b/dist/installer/config/icon.ico new file mode 100644 index 000000000..c53105288 Binary files /dev/null and b/dist/installer/config/icon.ico differ diff --git a/dist/installer/config/icon.png b/dist/installer/config/icon.png new file mode 100644 index 000000000..fd102724c Binary files /dev/null and b/dist/installer/config/icon.png differ diff --git a/dist/installer/packages/.gitkeep b/dist/installer/packages/.gitkeep new file mode 100644 index 000000000..e69de29bb