From f95789a0b3f881a17d854534244ad380389d0cb1 Mon Sep 17 00:00:00 2001
From: MerryMage <MerryMage@users.noreply.github.com>
Date: Sat, 13 Jan 2018 21:37:06 +0000
Subject: [PATCH] Update build scripts

---
 .travis/linux/build.sh  |  2 +-
 .travis/linux/deps.sh   |  2 +-
 .travis/linux/docker.sh | 17 ++++++++++------
 .travis/linux/upload.sh |  6 +++---
 .travis/macos/build.sh  |  2 ++
 .travis/macos/deps.sh   |  8 +++++++-
 .travis/macos/upload.sh | 44 ++++++++++++++++++++---------------------
 appveyor.yml            | 18 ++++++++---------
 8 files changed, 56 insertions(+), 43 deletions(-)

diff --git a/.travis/linux/build.sh b/.travis/linux/build.sh
index 98433d1845..bea8981715 100755
--- a/.travis/linux/build.sh
+++ b/.travis/linux/build.sh
@@ -1,3 +1,3 @@
 #!/bin/bash -ex
 
-docker run -v $(pwd):/citra ubuntu:16.04 /bin/bash /citra/.travis/linux/docker.sh
+docker run -v $(pwd):/yuzu ubuntu:18.04 /bin/bash /yuzu/.travis/linux/docker.sh
diff --git a/.travis/linux/deps.sh b/.travis/linux/deps.sh
index be3f6bece4..540bb934a8 100755
--- a/.travis/linux/deps.sh
+++ b/.travis/linux/deps.sh
@@ -1,3 +1,3 @@
 #!/bin/sh -ex
 
-docker pull ubuntu:16.04
+docker pull ubuntu:18.04
diff --git a/.travis/linux/docker.sh b/.travis/linux/docker.sh
index e27af5600c..a85225c5a6 100755
--- a/.travis/linux/docker.sh
+++ b/.travis/linux/docker.sh
@@ -1,14 +1,19 @@
 #!/bin/bash -ex
 
-cd /citra
-
 apt-get update
-apt-get install -y build-essential libsdl2-dev qtbase5-dev libqt5opengl5-dev libcurl4-openssl-dev libssl-dev wget git
+apt-get install -y build-essential git libcurl4-openssl-dev libqt5opengl5-dev libsdl2-dev libssl-dev python qtbase5-dev wget
 
 # Get a recent version of CMake
-wget https://cmake.org/files/v3.9/cmake-3.9.0-Linux-x86_64.sh
-echo y | sh cmake-3.9.0-Linux-x86_64.sh --prefix=cmake
-export PATH=/citra/cmake/cmake-3.9.0-Linux-x86_64/bin:$PATH
+wget https://cmake.org/files/v3.10/cmake-3.10.1-Linux-x86_64.sh
+sh cmake-3.10.1-Linux-x86_64.sh --exclude-subdir --prefix=/ --skip-license
+
+mkdir /unicorn
+cd /unicorn
+git clone https://github.com/yuzu-emu/unicorn .
+UNICORN_ARCHS=aarch64 ./make.sh
+./make.sh install
+
+cd /yuzu
 
 mkdir build && cd build
 cmake .. -DUSE_SYSTEM_CURL=ON -DCMAKE_BUILD_TYPE=Release
diff --git a/.travis/linux/upload.sh b/.travis/linux/upload.sh
index dd265e0fd5..8a029bbe22 100755
--- a/.travis/linux/upload.sh
+++ b/.travis/linux/upload.sh
@@ -2,13 +2,13 @@
 
 . .travis/common/pre-upload.sh
 
-REV_NAME="citra-linux-${GITDATE}-${GITREV}"
+REV_NAME="yuzu-linux-${GITDATE}-${GITREV}"
 ARCHIVE_NAME="${REV_NAME}.tar.xz"
 COMPRESSION_FLAGS="-cJvf"
 
 mkdir "$REV_NAME"
 
-cp build/src/citra/citra "$REV_NAME"
-cp build/src/citra_qt/citra-qt "$REV_NAME"
+cp build/src/yuzu_cmd/yuzu-cmd "$REV_NAME"
+cp build/src/yuzu/yuzu "$REV_NAME"
 
 . .travis/common/post-upload.sh
diff --git a/.travis/macos/build.sh b/.travis/macos/build.sh
index c957cdf21b..e1c54af55c 100755
--- a/.travis/macos/build.sh
+++ b/.travis/macos/build.sh
@@ -4,8 +4,10 @@ set -o pipefail
 
 export MACOSX_DEPLOYMENT_TARGET=10.9
 export Qt5_DIR=$(brew --prefix)/opt/qt5
+export UNICORNDIR=$(pwd)/externals/unicorn
 
 mkdir build && cd build
+cmake --version
 cmake .. -DUSE_SYSTEM_CURL=ON -DCMAKE_OSX_ARCHITECTURES="x86_64;x86_64h" -DCMAKE_BUILD_TYPE=Release
 make -j4
 
diff --git a/.travis/macos/deps.sh b/.travis/macos/deps.sh
index 30ec99b620..7dea804389 100755
--- a/.travis/macos/deps.sh
+++ b/.travis/macos/deps.sh
@@ -1,4 +1,10 @@
 #!/bin/sh -ex
 
 brew update
-brew install qt5 sdl2 dylibbundler p7zip
+brew install dylibbundler p7zip qt5 sdl2
+
+mkdir externals/unicorn
+pushd externals/unicorn
+git clone https://github.com/yuzu-emu/unicorn .
+UNICORN_ARCHS=aarch64 ./make.sh macos-universal-no
+popd
diff --git a/.travis/macos/upload.sh b/.travis/macos/upload.sh
index 19c80fdf0a..de0ba91f11 100755
--- a/.travis/macos/upload.sh
+++ b/.travis/macos/upload.sh
@@ -2,22 +2,22 @@
 
 . .travis/common/pre-upload.sh
 
-REV_NAME="citra-osx-${GITDATE}-${GITREV}"
+REV_NAME="yuzu-osx-${GITDATE}-${GITREV}"
 ARCHIVE_NAME="${REV_NAME}.tar.gz"
 COMPRESSION_FLAGS="-czvf"
 
 mkdir "$REV_NAME"
 
-cp build/src/citra/citra "$REV_NAME"
-cp -r build/src/citra_qt/citra-qt.app "$REV_NAME"
+cp build/src/yuzu_cmd/yuzu-cmd "$REV_NAME"
+cp -r build/src/yuzu/yuzu.app "$REV_NAME"
 
 # move qt libs into app bundle for deployment
-$(brew --prefix)/opt/qt5/bin/macdeployqt "${REV_NAME}/citra-qt.app"
+$(brew --prefix)/opt/qt5/bin/macdeployqt "${REV_NAME}/yuzu.app"
 
 # move SDL2 libs into folder for deployment
-dylibbundler -b -x "${REV_NAME}/citra" -cd -d "${REV_NAME}/libs" -p "@executable_path/libs/"
+dylibbundler -b -x "${REV_NAME}/yuzu-cmd" -cd -d "${REV_NAME}/libs" -p "@executable_path/libs/"
 
-# Make the changes to make the citra-qt app standalone (i.e. not dependent on the current brew installation).
+# Make the changes to make the yuzu app standalone (i.e. not dependent on the current brew installation).
 # To do this, the absolute references to each and every QT framework must be re-written to point to the local frameworks
 # (in the Contents/Frameworks folder).
 # The "install_name_tool" is used to do so.
@@ -33,8 +33,8 @@ QT_BREWS_PATH=$(grealpath "$(brew --prefix qt5)")
 BREW_PATH=$(brew --prefix)
 QT_VERSION_NUM=5
 
-$BREW_PATH/opt/qt5/bin/macdeployqt "${REV_NAME_ALT}citra-qt.app" \
-    -executable="${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt"
+$BREW_PATH/opt/qt5/bin/macdeployqt "${REV_NAME_ALT}yuzu.app" \
+    -executable="${REV_NAME_ALT}yuzu.app/Contents/MacOS/yuzu"
 
 # These are the files that macdeployqt packed into Contents/Frameworks/ - we don't want those, so we replace them.
 declare -a macos_libs=("QtCore" "QtWidgets" "QtGui" "QtOpenGL" "QtPrintSupport")
@@ -43,7 +43,7 @@ for macos_lib in "${macos_libs[@]}"
 do
     SC_FRAMEWORK_PART=$macos_lib.framework/Versions/$QT_VERSION_NUM/$macos_lib
     # Replace macdeployqt versions of the Frameworks with our own (from /usr/local/opt/qt5/lib/)
-    cp "$BREW_PATH/opt/qt5/lib/$SC_FRAMEWORK_PART" "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART"
+    cp "$BREW_PATH/opt/qt5/lib/$SC_FRAMEWORK_PART" "${REV_NAME_ALT}yuzu.app/Contents/Frameworks/$SC_FRAMEWORK_PART"
 
     # Replace references within the embedded Framework files with "internal" versions.
     for macos_lib2 in "${macos_libs[@]}"
@@ -55,11 +55,11 @@ do
         install_name_tool -change \
             $QT_BREWS_PATH/lib/$RM_FRAMEWORK_PART \
             @executable_path/../Frameworks/$RM_FRAMEWORK_PART \
-            "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART"
+            "${REV_NAME_ALT}yuzu.app/Contents/Frameworks/$SC_FRAMEWORK_PART"
         install_name_tool -change \
             "$BREW_PATH/opt/qt5/lib/$RM_FRAMEWORK_PART" \
             @executable_path/../Frameworks/$RM_FRAMEWORK_PART \
-            "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART"
+            "${REV_NAME_ALT}yuzu.app/Contents/Frameworks/$SC_FRAMEWORK_PART"
     done
 done
 
@@ -71,40 +71,40 @@ declare -a macos_plugins=("Plugins/platforms/libqcocoa.dylib")
 
 for macos_lib in "${macos_plugins[@]}"
 do
-    install_name_tool -id @executable_path/../$macos_lib "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib"
+    install_name_tool -id @executable_path/../$macos_lib "${REV_NAME_ALT}yuzu.app/Contents/$macos_lib"
     for macos_lib2 in "${macos_libs[@]}"
     do
         RM_FRAMEWORK_PART=$macos_lib2.framework/Versions/$QT_VERSION_NUM/$macos_lib2
         install_name_tool -change \
             $QT_BREWS_PATH/lib/$RM_FRAMEWORK_PART \
             @executable_path/../Frameworks/$RM_FRAMEWORK_PART \
-            "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib"
+            "${REV_NAME_ALT}yuzu.app/Contents/$macos_lib"
         install_name_tool -change \
             "$BREW_PATH/opt/qt5/lib/$RM_FRAMEWORK_PART" \
             @executable_path/../Frameworks/$RM_FRAMEWORK_PART \
-            "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib"
+            "${REV_NAME_ALT}yuzu.app/Contents/$macos_lib"
     done
 done
 
 for macos_lib in "${macos_libs[@]}"
 do
     # Debugging info for Travis-CI
-    otool -L "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$macos_lib.framework/Versions/$QT_VERSION_NUM/$macos_lib"
+    otool -L "${REV_NAME_ALT}yuzu.app/Contents/Frameworks/$macos_lib.framework/Versions/$QT_VERSION_NUM/$macos_lib"
 done
 
-# Make the citra-qt.app application launch a debugging terminal.
+# Make the yuzu.app application launch a debugging terminal.
 # Store away the actual binary
-mv ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt-bin
+mv ${REV_NAME_ALT}yuzu.app/Contents/MacOS/yuzu ${REV_NAME_ALT}yuzu.app/Contents/MacOS/yuzu-bin
 
-cat > ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt <<EOL
+cat > ${REV_NAME_ALT}yuzu.app/Contents/MacOS/yuzu <<EOL
 #!/usr/bin/env bash
 cd "\`dirname "\$0"\`"
-chmod +x citra-qt-bin
-open citra-qt-bin --args "\$@"
+chmod +x yuzu-bin
+open yuzu-bin --args "\$@"
 EOL
-# Content that will serve as the launching script for citra (within the .app folder)
+# Content that will serve as the launching script for yuzu (within the .app folder)
 
 # Make the launching script executable
-chmod +x ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt
+chmod +x ${REV_NAME_ALT}yuzu.app/Contents/MacOS/yuzu
 
 . .travis/common/post-upload.sh
diff --git a/appveyor.yml b/appveyor.yml
index 5524eb5762..f491e5f0b5 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -42,9 +42,9 @@ before_build:
   - ps: |
         if ($env:BUILD_TYPE -eq 'msvc') {
           # redirect stderr and change the exit code to prevent powershell from cancelling the build if cmake prints a warning
-          cmd /C 'cmake -G "Visual Studio 15 2017 Win64" -DCITRA_USE_BUNDLED_QT=1 -DCITRA_USE_BUNDLED_SDL2=1 -DCMAKE_USE_OPENSSL=0 .. 2>&1 && exit 0'
+          cmd /C 'cmake -G "Visual Studio 15 2017 Win64" -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_BUNDLED_UNICORN=1 -DCMAKE_USE_OPENSSL=0 .. 2>&1 && exit 0'
         } else {
-          C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DUSE_SYSTEM_CURL=1 -DCITRA_USE_BUNDLED_CURL=1 -DCMAKE_BUILD_TYPE=Release .. 2>&1"
+          C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DUSE_SYSTEM_CURL=1 -DYUZU_USE_BUNDLED_CURL=1 -DCMAKE_BUILD_TYPE=Release .. 2>&1"
         }
   - cd ..
 
@@ -52,7 +52,7 @@ build_script:
   - ps: |
         if ($env:BUILD_TYPE -eq 'msvc') {
           # https://www.appveyor.com/docs/build-phase
-          msbuild msvc_build/citra.sln /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
+          msbuild msvc_build/yuzu.sln /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
         } else {
           C:\msys64\usr\bin\bash.exe -lc 'mingw32-make -C mingw_build/ 2>&1'
         }
@@ -72,9 +72,9 @@ after_build:
 
         if ($env:BUILD_TYPE -eq 'msvc') {
           # Where are these spaces coming from? Regardless, let's remove them
-          $MSVC_BUILD_ZIP = "citra-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
-          $MSVC_BUILD_PDB = "citra-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
-          $MSVC_SEVENZIP = "citra-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
+          $MSVC_BUILD_ZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
+          $MSVC_BUILD_PDB = "yuzu-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
+          $MSVC_SEVENZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
 
           # set the build names as env vars so the artifacts can upload them
           $env:BUILD_ZIP = $MSVC_BUILD_ZIP
@@ -91,8 +91,8 @@ after_build:
           7z a -tzip $MSVC_BUILD_ZIP $RELEASE_DIST\*
           7z a $MSVC_SEVENZIP $RELEASE_DIST
         } else {
-          $MINGW_BUILD_ZIP = "citra-windows-mingw-$GITDATE-$GITREV.zip" -replace " ", ""
-          $MINGW_SEVENZIP = "citra-windows-mingw-$GITDATE-$GITREV.7z" -replace " ", ""
+          $MINGW_BUILD_ZIP = "yuzu-windows-mingw-$GITDATE-$GITREV.zip" -replace " ", ""
+          $MINGW_SEVENZIP = "yuzu-windows-mingw-$GITDATE-$GITREV.7z" -replace " ", ""
           # not going to bother adding separate debug symbols for mingw, so just upload a README for it
           # if someone wants to add them, change mingw to compile with -g and use objdump and strip to separate the symbols from the binary
           $MINGW_NO_DEBUG_SYMBOLS = "README_No_Debug_Symbols.txt"
@@ -111,7 +111,7 @@ after_build:
           mkdir $RELEASE_DIST/platforms
 
           # copy the compiled binaries and other release files to the release folder
-          Get-ChildItem "$CMAKE_BINARY_DIR" -Recurse -Filter "citra*.exe" | Copy-Item -destination $RELEASE_DIST
+          Get-ChildItem "$CMAKE_BINARY_DIR" -Recurse -Filter "yuzu*.exe" | Copy-Item -destination $RELEASE_DIST
           # copy the libcurl dll
           Get-ChildItem "$CMAKE_BINARY_DIR" -Recurse -Filter "libcurl.dll" | Copy-Item -destination $RELEASE_DIST
           Copy-Item -path "$CMAKE_SOURCE_DIR/license.txt" -destination $RELEASE_DIST