1 Commits

Author SHA1 Message Date
c64ae3c2f0 Update CmakeScript and CI 2025-10-31 21:29:55 +01:00
3 changed files with 104 additions and 14 deletions

View File

@@ -0,0 +1,82 @@
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_ARCHITECURE="x86_64;arm64" -B build .
cmake --build build
cmake --install build
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

@@ -15,21 +15,28 @@ set(VERSION_MICRO "0")
# Add executable # Add executable
add_executable(bannertool add_executable(bannertool
source/cmd.cpp source/cmd.cpp
source/main.cpp source/main.cpp
source/pc/stb_image.c source/pc/stb_image.c
source/pc/stb_vorbis.c 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: