Update CmakeScript and CI
Some checks failed
Build bannertool / build-macos (push) Successful in 4s
Build bannertool / release (push) Has been cancelled
Build bannertool / build-linux (push) Has been cancelled

This commit is contained in:
2025-10-31 21:29:55 +01:00
parent 7d7d8b6291
commit 94bc212b96
3 changed files with 105 additions and 14 deletions

View File

@@ -0,0 +1,83 @@
name: Build bannertool
on:
push:
branches:
- '*'
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Tools
run: |
sudo apt update
sudo apt install -y build-essential make cmake zip \
gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
gcc-x86-64-linux-gnu g++-x86-64-linux-gnu \
gcc-i686-linux-gnu g++-i686-linux-gnu \
gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
- name: Download Cross-Build
run: git clone https://dev.npid7.de/tobid7/cross-build
- name: Build Targets
run: |
declare -A TARGETS=(
["linux-i386"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-i386.cmake"
["linux-x86_64"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-x86_64.cmake"
["linux-armhf"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-armhf.cmake"
["linux-aarch64"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/linux-aarch64.cmake"
["windows-x86_64"]="-DCMAKE_TOOLCHAIN_FILE=cross-build/cmake/windows-mingw-x86_64.cmake"
)
for name in "${!TARGETS[@]}"; do
cmake ${TARGETS[$name]} -DCMAKE_INSTALL_PREFIX=bin-$name -B build-$name .
cmake --build build-$name --parallel
cmake --install build-$name
mkdir -p artifacts/$name
cp -r bin-$name/* artifacts/$name/
done
build-macos:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: |
cmake -DCMAKE_INSTALL_PREFIX=bin-macos-universal -DCMAKE_OSX_ARCHITECTURE="x86_64;arm64" -B build .
cmake --build build
cmake --install build
mkdir -p artifacts/macos-universal
cp -r bin-macos-universal/* artifacts/macos-universal/
release:
runs-on: ubuntu-latest
needs: [build-linux, build-macos]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Prepare Files
run: |
mkdir -p release_files
for d in artifacts/*; do
name=$(basename "$d")
zip -r "release_files/$name.zip" "$d"
done
- name: Get Date
run: echo "TAG_NAME=v$(date -u +'%Y%m%d-%H%M%S')" >> $GITHUB_ENV
- name: Upload to Gitea
uses: akkuman/gitea-release-action@v1
with:
token: ${{ secrets.TOKEN }}
prerelease: true
name: "Dev build ${{ env.TAG_NAME }}"
tag_name: ${{ env.TAG_NAME }}
body: |
**Automated build**
Commit: ${{ github.sha }}
Triggered by: ${{ github.actor }}
files: release_files/*.zip

View File

@@ -22,14 +22,21 @@ source/pc/stb_vorbis.c
source/pc/wav.cpp source/pc/wav.cpp
source/3ds/cbmd.cpp source/3ds/cbmd.cpp
source/3ds/cwav.cpp source/3ds/cwav.cpp
source/3ds/lz11.cpp) source/3ds/lz11.cpp
)
# set include dirs # set include dirs
target_include_directories(bannertool PUBLIC target_include_directories(bannertool PUBLIC
source source
source/3ds source/3ds
source/pc) source/pc
)
# define VERSION # define VERSION
target_compile_definitions(bannertool PUBLIC target_compile_definitions(bannertool PUBLIC
-DVERSION_MAJOR=${VERSION_MAJOR} -DVERSION_MAJOR=${VERSION_MAJOR}
-DVERSION_MINOR=${VERSION_MINOR} -DVERSION_MINOR=${VERSION_MINOR}
-DVERSION_MICRO=${VERSION_MICRO}) -DVERSION_MICRO=${VERSION_MICRO}
)
install(TARGETS bannertool DESTINATION bin)

View File

@@ -1,3 +1,4 @@
Copyright (C) 2024-2025 tobid7
Copyright (C) 2015-2017 Steveice10 Copyright (C) 2015-2017 Steveice10
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: