976550ef [nostalgia/sample_project] Add missing type descriptors 1fb0a866 [nostalgia/core] Fix CompactPalette TypeName and TypeVersion eb46aeeb [nfde] Fix compiler warnings on Gtk build 9244b735 [nostalgia] Fix non-Linux non-Apple systems not to build GLFW for Wayland 3fba36b4 [nfde] Make only option BUILD_SHARED_LIBS if not already set 6ddb6b42 Merge commit '5461f6700dac79e9e71e3966f8a1270706c385ba' 5461f670 Squashed 'deps/nfde/' changes from 28ade5a5c..5786fabce 1ecc7aa7 Merge commit '26c8cc348eacea01237cd64e1a68d0df8141e848' 26c8cc34 Squashed 'deps/glfw/' changes from 7d5a16ce7..7b6aead9f fc25c12d Merge commit 'ae51a422787bc3b720ff1748c0219c8f33363427' ae51a422 Squashed 'deps/imgui/' changes from f33737806..2db79d086 6c71e1e2 [nostalgia/core/studio,studio] Give TileSheetEditor Ctrl-A and Ctrl-G for selection 2ede01e7 [nostalgia/core/studio] Fix build deacd4ab [nostalgia/core/studio] Fix PaletteEditor add/remove color commands git-subtree-dir: deps/nostalgia git-subtree-split: 976550ef6fa269cf1e367e880f148b0ad7b1b163
177 lines
6.9 KiB
YAML
177 lines
6.9 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
clang-format:
|
|
|
|
name: ClangFormat check
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Format code
|
|
# ClangFormat 14 has a bug, which seems to be fixed in ClangFormat 15. Until GitHub-hosted runners support ClangFormat 15, we will stay at ClangFormat 13.
|
|
run: find src/ test/ -iname '*.c' -or -iname '*.cpp' -or -iname '*.m' -or -iname '*.mm' -or -iname '*.h' -or -iname '*.hpp' | xargs clang-format-13 -i -style=file
|
|
- name: Check diff
|
|
run: git diff --exit-code
|
|
|
|
build-ubuntu:
|
|
|
|
name: Ubuntu ${{ matrix.os.name }} - ${{ matrix.compiler.name }}, ${{ matrix.portal.name }}, ${{ matrix.autoappend.name }}, ${{ matrix.shared_lib.name }}, C++${{ matrix.cppstd }}
|
|
runs-on: ${{ matrix.os.label }}
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ {label: ubuntu-latest, name: latest}, {label: ubuntu-20.04, name: 20.04} ]
|
|
portal: [ {flag: OFF, dep: libgtk-3-dev, name: GTK}, {flag: ON, dep: libdbus-1-dev, name: Portal} ] # The NFD_PORTAL setting defaults to OFF (i.e. uses GTK)
|
|
autoappend: [ {flag: OFF, name: NoAppendExtn} ] # By default the NFD_PORTAL mode does not append extensions, because it breaks some features of the portal
|
|
compiler: [ {c: gcc, cpp: g++, name: GCC}, {c: clang, cpp: clang++, name: Clang} ] # The default compiler is gcc/g++
|
|
cppstd: [20, 11]
|
|
shared_lib: [ {flag: OFF, name: Static} ]
|
|
include:
|
|
- os: {label: ubuntu-latest, name: latest}
|
|
portal: {flag: ON, dep: libdbus-1-dev, name: Portal}
|
|
autoappend: {flag: ON, name: AutoAppendExtn}
|
|
compiler: {c: gcc, cpp: g++, name: GCC}
|
|
cppstd: 11
|
|
shared_lib: {flag: OFF, name: Static}
|
|
- os: {label: ubuntu-latest, name: latest}
|
|
portal: {flag: ON, dep: libdbus-1-dev, name: Portal}
|
|
autoappend: {flag: ON, name: AutoAppendExtn}
|
|
compiler: {c: clang, cpp: clang++, name: Clang}
|
|
cppstd: 11
|
|
shared_lib: {flag: OFF, name: Static}
|
|
- os: {label: ubuntu-latest, name: latest}
|
|
portal: {flag: ON, dep: libdbus-1-dev, name: Portal}
|
|
autoappend: {flag: ON, name: NoAppendExtn}
|
|
compiler: {c: gcc, cpp: g++, name: GCC}
|
|
cppstd: 11
|
|
shared_lib: {flag: ON, name: Shared}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Installing Dependencies
|
|
run: sudo apt-get update && sudo apt-get install ${{ matrix.portal.dep }}
|
|
- name: Configure
|
|
run: mkdir build && mkdir install && cd build && cmake -DCMAKE_INSTALL_PREFIX="../install" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=${{ matrix.compiler.c }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cpp }} -DCMAKE_CXX_STANDARD=${{ matrix.cppstd }} -DCMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic" -DCMAKE_CXX_FLAGS="-Wall -Wextra -Werror -pedantic" -DNFD_PORTAL=${{ matrix.portal.flag }} -DNFD_APPEND_EXTENSION=${{ matrix.autoappend.flag }} -DBUILD_SHARED_LIBS=${{ matrix.shared_lib.flag }} -DNFD_BUILD_TESTS=ON ..
|
|
- name: Build
|
|
run: cmake --build build --target install
|
|
- name: Upload test binaries
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Ubuntu ${{ matrix.os.name }} - ${{ matrix.compiler.name }}, ${{ matrix.portal.name }}, ${{ matrix.autoappend.name }}, ${{ matrix.shared_lib.name }}, C++${{ matrix.cppstd }}
|
|
path: |
|
|
build/src/*
|
|
build/test/*
|
|
|
|
build-macos-clang:
|
|
|
|
name: MacOS ${{ matrix.os.name }} - Clang, ${{ matrix.shared_lib.name }}
|
|
runs-on: ${{ matrix.os.label }}
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ {label: macos-latest, name: latest}, {label: macos-11, name: 11} ]
|
|
shared_lib: [ {flag: OFF, name: Static} ]
|
|
include:
|
|
- os: {label: macos-latest, name: latest}
|
|
shared_lib: {flag: ON, name: Shared}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Configure
|
|
run: mkdir build && mkdir install && cd build && cmake -DCMAKE_INSTALL_PREFIX="../install" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic" -DCMAKE_CXX_FLAGS="-Wall -Wextra -Werror -pedantic" -DBUILD_SHARED_LIBS=${{ matrix.shared_lib.flag }} -DNFD_BUILD_TESTS=ON ..
|
|
- name: Build
|
|
run: cmake --build build --target install
|
|
- name: Upload test binaries
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: MacOS ${{ matrix.os.name }} - Clang, ${{ matrix.shared_lib.name }}
|
|
path: |
|
|
build/src/*
|
|
build/test/*
|
|
|
|
build-windows-msvc:
|
|
|
|
name: Windows latest - MSVC, ${{ matrix.shared_lib.name }}
|
|
runs-on: windows-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
shared_lib: [ {flag: OFF, name: Static}, {flag: ON, name: Shared} ]
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Configure
|
|
run: mkdir build && mkdir install && cd build && cmake -DCMAKE_INSTALL_PREFIX="../install" -DBUILD_SHARED_LIBS=${{ matrix.shared_lib.flag }} -DNFD_BUILD_TESTS=ON ..
|
|
- name: Build
|
|
run: cmake --build build --target install --config Release
|
|
- name: Upload test binaries
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Windows latest - MSVC, ${{ matrix.shared_lib.name }}
|
|
path: |
|
|
build/src/Release/*
|
|
build/test/Release/*
|
|
|
|
build-windows-clang:
|
|
|
|
name: Windows latest - Clang, Static
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Configure
|
|
run: mkdir build && mkdir install && cd build && cmake -DCMAKE_INSTALL_PREFIX="../install" -T ClangCL -DNFD_BUILD_TESTS=ON ..
|
|
- name: Build
|
|
run: cmake --build build --target install --config Release
|
|
- name: Upload test binaries
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Windows latest - Clang, Static
|
|
path: |
|
|
build/src/Release/*
|
|
build/test/Release/*
|
|
|
|
build-windows-mingw:
|
|
|
|
name: Windows latest - MinGW, Static
|
|
runs-on: windows-latest
|
|
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Set up MinGW-w64
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
path-type: minimal
|
|
install: >-
|
|
base-devel
|
|
mingw-w64-x86_64-gcc
|
|
mingw-w64-x86_64-cmake
|
|
- name: Configure
|
|
run: mkdir build && mkdir install && cd build && cmake -DCMAKE_INSTALL_PREFIX="../install" -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -G 'MSYS Makefiles' -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Wall -Wextra -Werror -pedantic" -DCMAKE_CXX_FLAGS="-Wall -Wextra -Werror -pedantic" -DNFD_BUILD_TESTS=ON ..
|
|
- name: Build
|
|
run: cmake --build build --target install
|
|
- name: Upload test binaries
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Windows latest - MinGW, Static
|
|
path: |
|
|
build/src/*
|
|
build/test/*
|