update build (#391)

* update build

* remove darwin

* logging

* add unzip

* Update build.yml
This commit is contained in:
Logan McNaughton
2023-08-29 14:36:35 -06:00
committed by GitHub
parent a7a71e5bce
commit 1985475d63
5 changed files with 43 additions and 121 deletions
+3 -2
View File
@@ -17,7 +17,7 @@ jobs:
- uses: actions/checkout@v3
- name: Check shell scripts
run: |
shellcheck -o all build.sh clean.sh link-mac.sh pull_repos.sh
shellcheck -o all build.sh clean.sh pull_repos.sh
- name: Run build script
run: |
git config --global --add safe.directory /__w/simple64/simple64
@@ -35,6 +35,7 @@ jobs:
patch
git
zip
unzip
pacboy: >-
cmake:p
gcc:p
@@ -46,7 +47,7 @@ jobs:
qt6:p
- name: Run build script
run: msys2 -c 'export SIMPLE64_AUTOUPDATE=1; ./build.sh'
run: msys2 -c 'export SIMPLE64_AUTOUPDATE=1; ./build.sh zip'
- name: Upload zip
uses: actions/upload-artifact@v3
with:
+2
View File
@@ -1,4 +1,6 @@
simple64/
discord/
vosk/
*zip
*.dylib
.DS_Store
+36 -28
View File
@@ -9,11 +9,6 @@ UNAME=$(uname -s)
PLATFORM=$(uname -m)
if [[ ${UNAME} == *"MINGW64"* ]]; then
suffix=".dll"
elif [[ ${UNAME} == *"Darwin"* ]]; then
suffix=".dylib"
qt_version=$(ls /usr/local/Cellar/qt)
export CXXFLAGS='-stdlib=libc++'
export LDFLAGS='-mmacosx-version-min=11.0'
else
suffix=".so"
fi
@@ -67,13 +62,7 @@ mkdir -p "${base_dir}/simple64-gui/build"
cd "${base_dir}/simple64-gui/build"
cmake -G Ninja -DCMAKE_BUILD_TYPE="${RELEASE_TYPE}" ..
VERBOSE=1 cmake --build .
if [[ ${UNAME} == *"Darwin"* ]]; then
"/usr/local/Cellar/qt/${qt_version}/bin/macdeployqt" "${base_dir}/simple64-gui/build/simple64-gui.app"
cp -a "${base_dir}/simple64-gui/build/simple64-gui.app" "${install_dir}"
else
cp "${base_dir}/simple64-gui/build/simple64-gui" "${install_dir}"
fi
cp "${base_dir}/simple64-gui/build/simple64-gui" "${install_dir}"
mkdir -p "${base_dir}/parallel-rsp/build"
cd "${base_dir}/parallel-rsp/build"
@@ -87,6 +76,32 @@ cmake -G Ninja -DCMAKE_BUILD_TYPE="${RELEASE_TYPE}" ..
VERBOSE=1 cmake --build .
cp simple64-video-parallel.* "${install_dir}"
if [[ ! -d "${base_dir}/discord" ]]; then
echo "Downloading Discord SDK"
mkdir -p "${base_dir}/discord"
cd "${base_dir}/discord"
wget -q https://dl-game-sdk.discordapp.net/2.5.6/discord_game_sdk.zip
unzip -q discord_game_sdk.zip
rm discord_game_sdk.zip
fi
if [[ ! -d "${base_dir}/vosk" ]]; then
mkdir -p "${base_dir}/vosk"
cd "${base_dir}/vosk"
if [[ ${UNAME} == *"MINGW64"* ]]; then
echo "Downloading Vosk for Windows"
wget -q https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-win64-0.3.45.zip
elif [[ "${PLATFORM}" == "aarch64" ]]; then
echo "Downloading Vosk for Linux aarch64"
wget -q https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-aarch64-0.3.45.zip
else
echo "Downloading Vosk for Linux x86_64"
wget -q https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-x86_64-0.3.45.zip
fi
unzip -jq ./*.zip
rm ./*.zip
fi
if [[ ${UNAME} == *"MINGW64"* ]]; then
cd "${install_dir}"
windeployqt-qt6.exe --no-translations simple64-gui.exe
@@ -121,28 +136,21 @@ if [[ ${UNAME} == *"MINGW64"* ]]; then
cp -v "${MSYSTEM_PREFIX}/bin/libcrypto-3-x64.dll" "${install_dir}" # used by Qt at runtime
cp -v "${MSYSTEM_PREFIX}/bin/libssl-3-x64.dll" "${install_dir}" # used by Qt at runtime
cp -v "${base_dir}/7za.exe" "${install_dir}"
cp -v "${base_dir}/simple64-gui/discord/discord_game_sdk.dll" "${install_dir}"
cp -v "${base_dir}/simple64-input-qt/vosk/x86_64/vosk.dll" "${install_dir}"
elif [[ ${UNAME} == *"Darwin"* ]]; then
cp "${base_dir}/simple64-gui/discord/discord_game_sdk.dylib" "${install_dir}"
cd "${base_dir}"
sh ./link-mac.sh
cp -v "${base_dir}/discord/lib/x86_64/discord_game_sdk.dll" "${install_dir}"
cp -v "${base_dir}/vosk/libvosk.dll" "${install_dir}/vosk.dll"
else
cp "${base_dir}/vosk/libvosk.so" "${install_dir}"
if [[ "${PLATFORM}" == "aarch64" ]]; then
my_os=linux_aarch64
cp "${base_dir}/simple64-input-qt/vosk/aarch64/libvosk.so" "${install_dir}"
else
my_os=linux_x86_64
cp "${base_dir}/simple64-gui/discord/libdiscord_game_sdk.so" "${install_dir}"
cp "${base_dir}/simple64-input-qt/vosk/x86_64/libvosk.so" "${install_dir}"
cp "${base_dir}/discord/lib/x86_64/discord_game_sdk.so" "${install_dir}/libdiscord_game_sdk.so"
fi
fi
if [[ "$1" != "nozip" ]]; then
if [[ ${UNAME} != *"Darwin"* ]]; then
cd "${base_dir}"
rm -f "${base_dir}/"*.zip
HASH=$(git rev-parse --short HEAD)
zip --symlinks -r "simple64-${my_os}-${HASH}.zip" simple64
fi
if [[ "$1" == "zip" ]]; then
cd "${base_dir}"
rm -f "${base_dir}/"*.zip
HASH=$(git rev-parse --short HEAD)
zip --symlinks -r "simple64-${my_os}-${HASH}.zip" simple64
fi
+2
View File
@@ -10,3 +10,5 @@ rm -rf simple64-input-qt/build
rm -rf simple64-input-raphnetraw/build
rm -rf parallel-rsp/build
rm -rf parallel-rdp-standalone/build
rm -rf discord
rm -rf vosk
-91
View File
@@ -1,91 +0,0 @@
#!/usr/bin/env bash
set -e
contents=simple64/simple64-gui.app/Contents
# Get files in correct directories
mv simple64/font.ttf "${contents}/MacOS"
mv simple64/libmupen64plus.dylib "${contents}/MacOS"
mv simple64/simple64-audio-sdl2.dylib "${contents}/MacOS"
mv simple64/simple64-input-qt.dylib "${contents}/MacOS"
mv simple64/simple64-input-raphnetraw.dylib "${contents}/MacOS"
mv simple64/simple64-rsp-parallel.dylib "${contents}/MacOS"
mv simple64/simple64-video-parallel.dylib "${contents}/MacOS"
mv simple64/mupen64plus.ini "${contents}/MacOS"
mv simple64/mupencheat.txt "${contents}/MacOS"
mv simple64/pif.ntsc.rom "${contents}/MacOS"
mv simple64/pif.pal.rom "${contents}/MacOS"
mv simple64/discord_game_sdk.dylib "${contents}/MacOS"
# SDL
cp /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib "${contents}/Frameworks"
otool -L "${contents}/Frameworks/libSDL2-2.0.0.dylib"
cp /usr/local/opt/sdl2_net/lib/libSDL2_net-2.0.0.dylib "${contents}/Frameworks"
install_name_tool -change /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/../Frameworks/libSDL2-2.0.0.dylib "${contents}/Frameworks/libSDL2_net-2.0.0.dylib"
otool -L "${contents}/Frameworks/libSDL2_net-2.0.0.dylib"
# libpng
cp /usr/local/opt/libpng/lib/libpng16.16.dylib "${contents}/Frameworks"
otool -L "${contents}/Frameworks/libpng16.16.dylib"
# hidapi
cp /usr/local/opt/hidapi/lib/libhidapi.0.dylib "${contents}/Frameworks"
otool -L "${contents}/Frameworks/libhidapi.0.dylib"
# freetype
cp /usr/local/opt/freetype/lib/libfreetype.6.dylib "${contents}/Frameworks"
install_name_tool -change /usr/local/opt/libpng/lib/libpng16.16.dylib @executable_path/../Frameworks/libpng16.16.dylib "${contents}/Frameworks/libfreetype.6.dylib"
otool -L "${contents}/Frameworks/libfreetype.6.dylib"
# simple64-gui
# nothing to link
otool -L "${contents}/MacOS/simple64-gui"
# libmupen64plus.dylib
install_name_tool -change /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/../Frameworks/libSDL2-2.0.0.dylib "${contents}/MacOS/libmupen64plus.dylib"
install_name_tool -change /usr/local/opt/sdl2_net/lib/libSDL2_net-2.0.0.dylib @executable_path/../Frameworks/libSDL2_net-2.0.0.dylib "${contents}/MacOS/libmupen64plus.dylib"
install_name_tool -change /usr/local/opt/libpng/lib/libpng16.16.dylib @executable_path/../Frameworks/libpng16.16.dylib "${contents}/MacOS/libmupen64plus.dylib"
otool -L "${contents}/MacOS/libmupen64plus.dylib"
# simple64-audio-sdl2.dylib
install_name_tool -change /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/../Frameworks/libSDL2-2.0.0.dylib "${contents}/MacOS/simple64-audio-sdl2.dylib"
otool -L "${contents}/MacOS/simple64-audio-sdl2.dylib"
# simple64-input-qt.dylib
install_name_tool -change /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/../Frameworks/libSDL2-2.0.0.dylib "${contents}/MacOS/simple64-input-qt.dylib"
install_name_tool -change /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets "${contents}/MacOS/simple64-input-qt.dylib"
install_name_tool -change /usr/local/opt/qt/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui "${contents}/MacOS/simple64-input-qt.dylib"
install_name_tool -change /usr/local/opt/qt/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore "${contents}/MacOS/simple64-input-qt.dylib"
otool -L "${contents}/MacOS/simple64-input-qt.dylib"
# simple64-input-raphnetraw.dylib
install_name_tool -change /usr/local/opt/hidapi/lib/libhidapi.0.dylib @executable_path/../Frameworks/libhidapi.0.dylib "${contents}/MacOS/simple64-input-raphnetraw.dylib"
otool -L "${contents}/MacOS/simple64-input-raphnetraw.dylib"
# simple64-rsp-parallel.dylib
otool -L "${contents}/MacOS/simple64-rsp-parallel.dylib"
# simple64-video-parallel.dylib
otool -L "${contents}/MacOS/simple64-video-parallel.dylib"
# Time to create the DMG
# 1. Create symlink to Applications folder
ln -s /Applications simple64/Applications
# 2. Create DMG
HASH=$(git rev-parse --short HEAD)
hdiutil create -volname simple64 -srcfolder simple64 -ov -format UDZO "simple64/simple64-osx-${HASH}.dmg"