mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-01 21:17:44 -05:00
This allows building and running under macOS. There is still some issues with dpi but the application compiles and run now.
193 lines
4.5 KiB
YAML
193 lines
4.5 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
env:
|
|
BUILD_TYPE: Release
|
|
|
|
jobs:
|
|
|
|
|
|
linux:
|
|
runs-on: ubuntu-20.04
|
|
name: 🐧 Ubuntu 20.04
|
|
steps:
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: ⬇️ Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
build-essential \
|
|
gcc-10 \
|
|
g++-10 \
|
|
pkg-config \
|
|
cmake \
|
|
make \
|
|
libglfw3-dev \
|
|
libglm-dev \
|
|
libmagic-dev \
|
|
libssl-dev \
|
|
libcapstone-dev \
|
|
nlohmann-json3-dev \
|
|
python3-dev \
|
|
libfreetype-dev \
|
|
|
|
- name: ✋ Build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
CC=gcc-10 CXX=g++-10 cmake ..
|
|
make -j 4
|
|
|
|
|
|
win-manual:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- { msystem: MINGW64, arch: x86_64 }
|
|
#- { msystem: MINGW32, arch: i686 } # currently fail
|
|
name: 🟪 ${{ matrix.msystem }} · ${{ matrix.arch }} · manual
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
env:
|
|
MINGW_INSTALLS: ${{ matrix.msystem }}
|
|
steps:
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: 🟪 Setup MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ matrix.msystem }}
|
|
update: true
|
|
install: >
|
|
mingw-w64-${{ matrix.arch }}-gcc
|
|
mingw-w64-${{ matrix.arch }}-cmake
|
|
mingw-w64-${{ matrix.arch }}-make
|
|
mingw-w64-${{ matrix.arch }}-capstone
|
|
mingw-w64-${{ matrix.arch }}-glfw
|
|
mingw-w64-${{ matrix.arch }}-glm
|
|
mingw-w64-${{ matrix.arch }}-file
|
|
mingw-w64-${{ matrix.arch }}-nlohmann-json
|
|
mingw-w64-${{ matrix.arch }}-openssl
|
|
mingw-w64-${{ matrix.arch }}-polly
|
|
mingw-w64-${{ matrix.arch }}-python
|
|
mingw-w64-${{ matrix.arch }}-freetype
|
|
|
|
- name: ✋ Build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake -G "MinGW Makefiles" ..
|
|
mingw32-make -j 4
|
|
|
|
|
|
win-makepkg:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- { msystem: MINGW64, arch: x86_64 }
|
|
#- { msystem: MINGW32, arch: i686 } # currently fail
|
|
name: 🟪 ${{ matrix.msystem }} · ${{ matrix.arch }} · makepkg
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
|
|
- run: git config --global core.autocrlf input
|
|
shell: bash
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: 🟪 Setup MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ matrix.msystem }}
|
|
update: true
|
|
install: >
|
|
base-devel
|
|
mingw-w64-${{ matrix.arch }}-toolchain
|
|
|
|
- name: 🔧 Build
|
|
run: |
|
|
cd msys2
|
|
makepkg-mingw --noconfirm --noprogressbar -sCLf
|
|
env:
|
|
MINGW_INSTALLS: ${{ matrix.msystem }}
|
|
|
|
- name: '📤 Upload artifact: package'
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
path: msys2/*.zst
|
|
|
|
macos-build:
|
|
runs-on: macos-11.0
|
|
name: 🍎 macOS 11.0
|
|
steps:
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: ⬇️ Install dependencies
|
|
run: |
|
|
brew bundle --no-lock --file dist/Brewfile
|
|
|
|
- name: ✋ Build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++ PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" cmake ..
|
|
make -j 4
|
|
|
|
win-test:
|
|
needs: win-makepkg
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- { msystem: MINGW64, arch: x86_64 }
|
|
#- { msystem: MINGW32, arch: i686 } # currently fail
|
|
name: 🟪 ${{ matrix.msystem }} · ${{ matrix.arch }} · test
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
|
|
- name: 🟪 Setup MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ matrix.msystem }}
|
|
update: true
|
|
|
|
- name: '📥 Download artifacts'
|
|
uses: actions/download-artifact@v2
|
|
|
|
- name: ⚙️ Install
|
|
run: |
|
|
pacman -U --noconfirm --noprogressbar artifact/*.zst
|
|
|
|
- name: ▶️ Test
|
|
run: |
|
|
which ImHex
|