mirror of https://github.com/AxioDL/metaforce.git
Improvements to install target
This commit is contained in:
parent
7bb6b06e2d
commit
5d65131966
|
@ -2,6 +2,8 @@ name: Build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- main
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '*.json'
|
- '*.json'
|
||||||
- '*.md'
|
- '*.md'
|
||||||
|
@ -85,7 +87,7 @@ jobs:
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: metaforce-${{env.METAFORCE_VERSION}}-linux-${{matrix.cc}}-x86_64
|
name: metaforce-${{env.METAFORCE_VERSION}}-linux-${{matrix.preset}}-x86_64
|
||||||
path: build/install
|
path: build/install
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
|
@ -167,8 +169,9 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- name: MSVC
|
# Disabled due to memory constraints
|
||||||
preset: msvc
|
# - name: MSVC
|
||||||
|
# preset: msvc
|
||||||
- name: Clang
|
- name: Clang
|
||||||
preset: clang
|
preset: clang
|
||||||
|
|
||||||
|
@ -233,5 +236,5 @@ jobs:
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: metaforce-${{env.METAFORCE_VERSION}}-win32-${{matrix.oname}}-x86_64
|
name: metaforce-${{env.METAFORCE_VERSION}}-win32-${{matrix.preset}}-x86_64
|
||||||
path: ${{env.BUILD_DIR}}/install
|
path: ${{env.BUILD_DIR}}/install
|
||||||
|
|
|
@ -84,9 +84,6 @@ jobs:
|
||||||
- name: Print buildcache stats
|
- name: Print buildcache stats
|
||||||
run: buildcache -s
|
run: buildcache -s
|
||||||
|
|
||||||
- name: Split debug information
|
|
||||||
run: ci/split-debug-linux.sh
|
|
||||||
|
|
||||||
- name: Upload debug information
|
- name: Upload debug information
|
||||||
if: ${{matrix.name == 'Clang'}}
|
if: ${{matrix.name == 'Clang'}}
|
||||||
env:
|
env:
|
||||||
|
@ -100,10 +97,10 @@ jobs:
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: metaforce-${{env.METAFORCE_VERSION}}-linux-${{matrix.cc}}-x86_64
|
name: metaforce-${{env.METAFORCE_VERSION}}-linux-${{matrix.preset}}-x86_64
|
||||||
path: |
|
path: |
|
||||||
Metaforce-*.AppImage
|
build/install/Metaforce-*.AppImage
|
||||||
debug.tar.*
|
build/install/debug.tar.*
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
name: Build macOS (AppleClang universal)
|
name: Build macOS (AppleClang universal)
|
||||||
|
@ -187,10 +184,10 @@ jobs:
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: metaforce-${{env.METAFORCE_VERSION}}-macos-appleclang-x86_64
|
name: metaforce-${{env.METAFORCE_VERSION}}-macos-appleclang-universal
|
||||||
path: |
|
path: |
|
||||||
Metaforce *.dmg
|
build/install/Metaforce *.dmg
|
||||||
debug.tar.*
|
build/install/debug.tar.*
|
||||||
|
|
||||||
build-windows-msvc:
|
build-windows-msvc:
|
||||||
name: Build Windows (MSVC x86_64)
|
name: Build Windows (MSVC x86_64)
|
||||||
|
@ -251,22 +248,14 @@ jobs:
|
||||||
SENTRY_URL: ${{secrets.SENTRY_URL}}
|
SENTRY_URL: ${{secrets.SENTRY_URL}}
|
||||||
run: |
|
run: |
|
||||||
& "$env:RUNNER_WORKSPACE\temp\sentry-cli.exe" upload-dif --org axiodl --project metaforce --include-sources `
|
& "$env:RUNNER_WORKSPACE\temp\sentry-cli.exe" upload-dif --org axiodl --project metaforce --include-sources `
|
||||||
metaforce.exe metaforce.pdb hecl.exe hecl.pdb metaforce-gui.exe metaforce-gui.pdb visigen.exe visigen.pdb
|
*.exe *.pdb
|
||||||
|
|
||||||
- name: Compress PDBs
|
|
||||||
working-directory: ${{github.workspace}}/build/install
|
|
||||||
run: 7z a -t7z debug.7z metaforce.pdb hecl.pdb metaforce-gui.pdb visigen.pdb
|
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: metaforce-${{env.METAFORCE_VERSION}}-win32-msvc-x86_64
|
name: metaforce-${{env.METAFORCE_VERSION}}-win32-msvc-x86_64
|
||||||
path: |
|
path: |
|
||||||
build/install/metaforce.exe
|
build/install/*.exe
|
||||||
build/install/metaforce-gui.exe
|
|
||||||
build/install/hecl.exe
|
|
||||||
build/install/visigen.exe
|
|
||||||
build/install/crashpad_handler.exe
|
|
||||||
build/install/debug.7z
|
build/install/debug.7z
|
||||||
|
|
||||||
build-windows-clang:
|
build-windows-clang:
|
||||||
|
@ -338,18 +327,10 @@ jobs:
|
||||||
- name: Print buildcache stats
|
- name: Print buildcache stats
|
||||||
run: buildcache -s
|
run: buildcache -s
|
||||||
|
|
||||||
- name: Compress PDBs
|
|
||||||
working-directory: ${{github.workspace}}/build/install
|
|
||||||
run: 7z a -t7z debug.7z metaforce.pdb hecl.pdb metaforce-gui.pdb visigen.pdb
|
|
||||||
|
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: metaforce-${{env.METAFORCE_VERSION}}-win32-clang-x86_64
|
name: metaforce-${{env.METAFORCE_VERSION}}-win32-clang-x86_64
|
||||||
path: |
|
path: |
|
||||||
build/install/metaforce.exe
|
build/install/*.exe
|
||||||
build/install/metaforce-gui.exe
|
|
||||||
build/install/hecl.exe
|
|
||||||
build/install/visigen.exe
|
|
||||||
build/install/crashpad_handler.exe
|
|
||||||
build/install/debug.7z
|
build/install/debug.7z
|
||||||
|
|
|
@ -560,8 +560,8 @@ if (TARGET metaforce-gui)
|
||||||
install(TARGETS metaforce-gui DESTINATION ${BIN_PREFIX})
|
install(TARGETS metaforce-gui DESTINATION ${BIN_PREFIX})
|
||||||
list(APPEND DSYM_ONLY_TARGETS metaforce-gui)
|
list(APPEND DSYM_ONLY_TARGETS metaforce-gui)
|
||||||
# we have to rename here, cmake is inflexible about bundle naming
|
# we have to rename here, cmake is inflexible about bundle naming
|
||||||
install(CODE "execute_process(COMMAND rm -fr ${BIN_PREFIX}/Metaforce.app)")
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND rm -fr Metaforce.app)")
|
||||||
install(CODE "execute_process(COMMAND mv ${BIN_PREFIX}/metaforce-gui.app ${BIN_PREFIX}/Metaforce.app)")
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND mv metaforce-gui.app Metaforce.app)")
|
||||||
set(BIN_PREFIX "${BIN_PREFIX}/Metaforce.app/Contents/MacOS")
|
set(BIN_PREFIX "${BIN_PREFIX}/Metaforce.app/Contents/MacOS")
|
||||||
else()
|
else()
|
||||||
list(APPEND BINARY_TARGETS metaforce-gui)
|
list(APPEND BINARY_TARGETS metaforce-gui)
|
||||||
|
@ -573,7 +573,25 @@ if (CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
install(FILES $<TARGET_PDB_FILE:${target}> DESTINATION ${BIN_PREFIX} OPTIONAL)
|
install(FILES $<TARGET_PDB_FILE:${target}> DESTINATION ${BIN_PREFIX} OPTIONAL)
|
||||||
elseif (APPLE)
|
elseif (APPLE)
|
||||||
install(CODE "execute_process(COMMAND dsymutil ${BIN_PREFIX}/${target})")
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND dsymutil ${target})")
|
||||||
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND strip -S ${target})")
|
||||||
|
elseif (UNIX)
|
||||||
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND objcopy --only-keep-debug ${target} ${target}.dbg)")
|
||||||
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND objcopy --strip-debug --add-gnu-debuglink=${target}.dbg ${target})")
|
||||||
endif ()
|
endif ()
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
set(DEBUG_FILES_LIST ${BINARY_TARGETS} ${DSYM_ONLY_TARGETS})
|
||||||
|
if (WIN32)
|
||||||
|
list(TRANSFORM DEBUG_FILES_LIST APPEND ".pdb")
|
||||||
|
list(JOIN DEBUG_FILES_LIST " " DEBUG_FILES)
|
||||||
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND 7z a -t7z \"${CMAKE_INSTALL_PREFIX}/debug.7z\" ${DEBUG_FILES})")
|
||||||
|
elseif (APPLE)
|
||||||
|
list(TRANSFORM DEBUG_FILES_LIST APPEND ".dSYM")
|
||||||
|
list(JOIN DEBUG_FILES_LIST " " DEBUG_FILES)
|
||||||
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND tar acfv \"${CMAKE_INSTALL_PREFIX}/debug.tar.xz\" ${DEBUG_FILES})")
|
||||||
|
elseif (UNIX)
|
||||||
|
list(TRANSFORM DEBUG_FILES_LIST APPEND ".dbg")
|
||||||
|
list(JOIN DEBUG_FILES_LIST " " DEBUG_FILES)
|
||||||
|
install(CODE "execute_process(WORKING_DIRECTORY \"${BIN_PREFIX}\" COMMAND tar -I \"xz -9 -T0\" -cvf \"${CMAKE_INSTALL_PREFIX}/debug.tar.xz\" ${DEBUG_FILES})")
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
|
@ -447,12 +447,12 @@ public:
|
||||||
[[nodiscard]] const_iterator cbegin() const noexcept { return begin(); }
|
[[nodiscard]] const_iterator cbegin() const noexcept { return begin(); }
|
||||||
[[nodiscard]] const_iterator cend() const noexcept { return end(); }
|
[[nodiscard]] const_iterator cend() const noexcept { return end(); }
|
||||||
|
|
||||||
[[nodiscard]] auto rbegin() const noexcept { return std::make_reverse_iterator(end()); }
|
[[nodiscard]] const_reverse_iterator rbegin() const noexcept { return std::make_reverse_iterator(end()); }
|
||||||
[[nodiscard]] auto rend() const noexcept { return std::make_reverse_iterator(begin()); }
|
[[nodiscard]] const_reverse_iterator rend() const noexcept { return std::make_reverse_iterator(begin()); }
|
||||||
[[nodiscard]] auto rbegin() noexcept { return std::make_reverse_iterator(end()); }
|
[[nodiscard]] reverse_iterator rbegin() noexcept { return std::make_reverse_iterator(end()); }
|
||||||
[[nodiscard]] auto rend() noexcept { return std::make_reverse_iterator(begin()); }
|
[[nodiscard]] reverse_iterator rend() noexcept { return std::make_reverse_iterator(begin()); }
|
||||||
[[nodiscard]] auto crbegin() const noexcept { return rbegin(); }
|
[[nodiscard]] const_reverse_iterator crbegin() const noexcept { return rbegin(); }
|
||||||
[[nodiscard]] auto crend() const noexcept { return rend(); }
|
[[nodiscard]] const_reverse_iterator crend() const noexcept { return rend(); }
|
||||||
|
|
||||||
[[nodiscard]] T& operator[](size_t idx) {
|
[[nodiscard]] T& operator[](size_t idx) {
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
|
shopt -s extglob
|
||||||
|
|
||||||
# Get linuxdeploy
|
# Get linuxdeploy
|
||||||
|
cd "$RUNNER_WORKSPACE"
|
||||||
curl -OL https://github.com/encounter/linuxdeploy/releases/download/continuous/linuxdeploy-$(uname -m).AppImage
|
curl -OL https://github.com/encounter/linuxdeploy/releases/download/continuous/linuxdeploy-$(uname -m).AppImage
|
||||||
curl -OL https://github.com/encounter/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-$(uname -m).AppImage
|
curl -OL https://github.com/encounter/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-$(uname -m).AppImage
|
||||||
chmod +x linuxdeploy-$(uname -m).AppImage linuxdeploy-plugin-qt-$(uname -m).AppImage
|
chmod +x linuxdeploy-$(uname -m).AppImage linuxdeploy-plugin-qt-$(uname -m).AppImage
|
||||||
|
|
||||||
# Build AppImage
|
# Build AppImage
|
||||||
mkdir -p appdir/usr/{bin,share/{applications,icons/hicolor}}
|
cd "$GITHUB_WORKSPACE"
|
||||||
cp build/install/{hecl,metaforce-gui,metaforce,visigen} appdir/usr/bin
|
mkdir -p build/appdir/usr/{bin,share/{applications,icons/hicolor}}
|
||||||
cp -r metaforce-gui/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} appdir/usr/share/icons/hicolor
|
cp build/install/!(*.*) build/appdir/usr/bin
|
||||||
cp metaforce-gui/platforms/freedesktop/metaforce.desktop appdir/usr/share/applications
|
cp -r metaforce-gui/platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} build/appdir/usr/share/icons/hicolor
|
||||||
VERSION="$METAFORCE_VERSION" NO_STRIP=1 ./linuxdeploy-$(uname -m).AppImage --appdir appdir --plugin qt --output appimage
|
cp metaforce-gui/platforms/freedesktop/metaforce.desktop build/appdir/usr/share/applications
|
||||||
|
|
||||||
|
cd build/install
|
||||||
|
VERSION="$METAFORCE_VERSION" NO_STRIP=1 "$RUNNER_WORKSPACE"/linuxdeploy-$(uname -m).AppImage \
|
||||||
|
--appdir "$GITHUB_WORKSPACE"/build/appdir \
|
||||||
|
--plugin qt --output appimage
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
cd build/install
|
cd build/install
|
||||||
mv metaforce-gui.app Metaforce.app
|
# remove debug files before package
|
||||||
|
rm -r Metaforce.app/Contents/MacOS/*.dSYM
|
||||||
# order is important
|
# order is important
|
||||||
for i in visigen hecl metaforce crashpad_handler; do
|
for i in visigen hecl metaforce crashpad_handler; do
|
||||||
codesign --timestamp --options runtime -s "$CODESIGN_IDENT" Metaforce.app/Contents/MacOS/$i
|
codesign --timestamp --options runtime -s "$CODESIGN_IDENT" Metaforce.app/Contents/MacOS/$i
|
||||||
done
|
done
|
||||||
macdeployqt Metaforce.app -sign-for-notarization="$CODESIGN_IDENT" -no-strip
|
macdeployqt Metaforce.app -sign-for-notarization="$CODESIGN_IDENT" -no-strip
|
||||||
create-dmg Metaforce.app --identity="$CODESIGN_IDENT" "$GITHUB_WORKSPACE"
|
create-dmg Metaforce.app --identity="$CODESIGN_IDENT" .
|
||||||
xcrun altool -t osx -f "$GITHUB_WORKSPACE"/*.dmg --primary-bundle-id com.axiodl.Metaforce --notarize-app \
|
xcrun altool -t osx -f --primary-bundle-id com.axiodl.Metaforce --notarize-app \
|
||||||
-u "$ASC_USERNAME" -p "$ASC_PASSWORD" --team-id "$ASC_TEAM_ID"
|
-u "$ASC_USERNAME" -p "$ASC_PASSWORD" --team-id "$ASC_TEAM_ID" -- *.dmg
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/bash -ex
|
|
||||||
cd build/install
|
|
||||||
for f in hecl metaforce-gui metaforce visigen; do
|
|
||||||
objcopy --only-keep-debug $f $f.dbg
|
|
||||||
objcopy --strip-debug --add-gnu-debuglink=$f.dbg $f
|
|
||||||
done
|
|
||||||
tar acfv "$GITHUB_WORKSPACE"/debug.tar.xz -- *.dbg
|
|
|
@ -1,9 +1,3 @@
|
||||||
#!/bin/bash -ex
|
#!/bin/bash -ex
|
||||||
cd build/install/metaforce-gui.app/Contents/MacOS
|
cd build/install/Metaforce.app/Contents/MacOS
|
||||||
for f in hecl metaforce-gui metaforce visigen; do
|
|
||||||
dsymutil $f
|
|
||||||
strip -S $f
|
|
||||||
done
|
|
||||||
sentry-cli upload-dif --org axiodl --project metaforce {hecl,metaforce-gui,metaforce,visigen}{,.dSYM} --include-sources
|
sentry-cli upload-dif --org axiodl --project metaforce {hecl,metaforce-gui,metaforce,visigen}{,.dSYM} --include-sources
|
||||||
tar acfv "$GITHUB_WORKSPACE"/debug.tar.xz -- *.dSYM
|
|
||||||
rm -r -- *.dSYM
|
|
||||||
|
|
Loading…
Reference in New Issue