Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flatpak, desktop integration, CI #210

Merged
merged 1 commit into from
Jun 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@ indent_size = 4
[*.ui]
indent_style = space
indent_size = 1

[*.yaml,*.yml]
indent_style = space
indent_size = 2
76 changes: 76 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Stable Compilation

on:
push:
pull_request:
workflow_dispatch:
inputs:
git-ref:
description: Git Ref (Optional)
required: false

defaults:
run:
shell: bash

jobs:
flatpak:
name: "Flatpak"
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:kde-5.15-21.08
options: --privileged
steps:
- uses: actions/checkout@v2
- uses: bilelmoussaoui/flatpak-github-actions/flatpak-builder@v4
with:
bundle: EasyRPG-Editor.flatpak
manifest-path: builds/flatpak/org.easyrpg.editor.yml
cache-key: flatpak-builder-${{ github.sha }}

docker:
name: ${{ matrix.image }}
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}

strategy:
fail-fast: false
matrix:
image:
- ubuntu:20.04 # LTS | CMake 3.16.3 | G++ 9.3.0 | QT 5.12.8
- debian:11 # stable | CMake 3.18.4 | G++ 10.2.1 | QT 5.15.2
- ubuntu:22.04 # LTS | CMake 3.22.1 | G++ 11.2.0 | QT 5.15.3

steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]

- name: Install dependencies
run: |
export DEBIAN_FRONTEND="noninteractive"
apt-get update
apt-get install -yqq --no-install-recommends --no-install-suggests \
ca-certificates build-essential cmake ninja-build git \
libicu-dev libexpat1-dev qttools5-dev-tools qtbase5-dev-tools \
qtbase5-dev qtmultimedia5-dev libqt5svg5-dev

- name: Clone Repository
uses: actions/checkout@v2
if: github.event.inputs.git-ref == ''
- name: Clone Repository (with custom ref)
uses: actions/checkout@v2
if: github.event.inputs.git-ref != ''
with:
ref: ${{ github.event.inputs.git-ref }}

- name: Compile
run: |
cmake -G Ninja . -B build-ga \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \
-DEDITOR_BUILD_LIBLCF=ON
cmake --build build-ga

- name: Install
run: |
cmake --install build-ga
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ Makefile*
/bin/platforms
*.cbp

# flatpak
/.flatpak-builder

# liblcf
lib/liblcf

Expand Down
19 changes: 18 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -383,9 +383,10 @@ if(EDITOR_BUILD_LIBLCF)

option(BUILD_SHARED_LIBS "Not used. Supresses CMP0077 in liblcf" ON)

# Always build static liblcf
# Always build static liblcf and do not install it
function(add_liblcf)
set(BUILD_SHARED_LIBS OFF)
set(LIBLCF_ENABLE_INSTALL OFF)
add_subdirectory(${LIBLCF_PATH})
endfunction()
add_liblcf()
Expand Down Expand Up @@ -472,4 +473,20 @@ else()
install(TARGETS ${EXE_NAME}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(UNIX)
# Install desktop entry and icon
install(FILES resources/unix/easyrpg-editor.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
# legacy path, remove 2030 :)
install(FILES resources/app/easyrpg.png
DESTINATION ${CMAKE_INSTALL_DATADIR}/pixmaps
RENAME easyrpg-editor.png)
# FIXME: use scalable icon
install(FILES resources/app/easyrpg.png
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps
RENAME easyrpg-editor.png)
# FIXME: Fill appdata file
#install(FILES resources/unix/easyrpg-editor.appdata.xml
# DESTINATION ${CMAKE_INSTALL_DATADIR}/appdata)
endif()
endif()
43 changes: 43 additions & 0 deletions builds/flatpak/org.easyrpg.editor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
app-id: org.easyrpg.editor
runtime: org.kde.Sdk
runtime-version: '5.15-21.08'
sdk: org.kde.Sdk
command: easyrpg-editor
rename-desktop-file: easyrpg-editor.desktop
#rename-appdata-file: easyrpg-editor.appdata.xml
rename-icon: easyrpg-editor
finish-args:
- --share=ipc
- --socket=wayland
- --socket=fallback-x11
- --socket=pulseaudio
# insecure:
- --filesystem=host
# more secure:
# - --filesystem=home
- --device=dri
- --allow=devel
modules:
- name: liblcf
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DLIBLCF_ENABLE_TOOLS=OFF
- -DLIBLCF_WITH_XML=OFF
- -DLIBLCF_ENABLE_TESTS=OFF
sources:
- type: git
url: https://github.com/EasyRPG/liblcf.git
#tag: '0.7.0'
cleanup:
- /include
- /lib/pkgconfig
- /lib/cmake
- /share
- name: editor
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
sources:
- type: git
url: https://github.com/EasyRPG/Editor.git
1 change: 1 addition & 0 deletions resources/unix/easyrpg-editor.appdata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!-- fill me :) -->
12 changes: 12 additions & 0 deletions resources/unix/easyrpg-editor.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Terminal=false
Icon=easyrpg-editor
Type=Application
Categories=Game;Qt;X-Editor;
Exec=easyrpg-editor
Name=EasyRPG Editor
GenericName=Game Editor
Comment=Create and edit RPG Maker games
StartupNotify=true
StartupWMClass=org.easyrpg.easyrpg-editor