Update CmakeScript and CI
This commit is contained in:
92
.gitea/workflows/build.yml
Normal file
92
.gitea/workflows/build.yml
Normal file
@@ -0,0 +1,92 @@
|
||||
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: |
|
||||
mkdir -p build_artifacts
|
||||
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
|
||||
zip -r build_artifacts/${name}.zip bin-$name
|
||||
done
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux-builds
|
||||
path: build_artifacts/*.zip
|
||||
build-macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Build
|
||||
run: |
|
||||
mkdir -p build_artifacts
|
||||
cmake -DCMAKE_INSTALL_PREFIX=bin-macos-universal -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -B build .
|
||||
cmake --build build
|
||||
cmake --install build
|
||||
mkdir -p artifacts/macos-universal
|
||||
cp -r bin-macos-universal/* artifacts/macos-universal/
|
||||
zip -r build_artifacts/macos-universal.zip bin-macos-universal
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: macos-build
|
||||
path: build_artifacts/*.zip
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-linux, build-macos]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
path: release_files
|
||||
|
||||
- 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: "Automated Build ${{ env.TAG_NAME }}"
|
||||
tag_name: ${{ env.TAG_NAME }}
|
||||
body: |
|
||||
**Automated prerelease build**
|
||||
Commit: ${{ github.sha }}
|
||||
Triggered by: ${{ github.actor }}
|
||||
files: release_files/**/*.zip
|
||||
@@ -22,14 +22,21 @@ source/pc/stb_vorbis.c
|
||||
source/pc/wav.cpp
|
||||
source/3ds/cbmd.cpp
|
||||
source/3ds/cwav.cpp
|
||||
source/3ds/lz11.cpp)
|
||||
source/3ds/lz11.cpp
|
||||
)
|
||||
|
||||
# set include dirs
|
||||
target_include_directories(bannertool PUBLIC
|
||||
source
|
||||
source/3ds
|
||||
source/pc)
|
||||
source/pc
|
||||
)
|
||||
|
||||
# define VERSION
|
||||
target_compile_definitions(bannertool PUBLIC
|
||||
-DVERSION_MAJOR=${VERSION_MAJOR}
|
||||
-DVERSION_MINOR=${VERSION_MINOR}
|
||||
-DVERSION_MICRO=${VERSION_MICRO})
|
||||
-DVERSION_MICRO=${VERSION_MICRO}
|
||||
)
|
||||
|
||||
install(TARGETS bannertool DESTINATION bin)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
Copyright (C) 2024-2025 tobid7
|
||||
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:
|
||||
|
||||
Reference in New Issue
Block a user