mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-19 04:26:52 -04:00
Merge pull request #1220 from sungsphinx/sdl3-flatpak-stuff
Fix building with SDL3 from git, Flatpak improvements
This commit is contained in:
commit
b1999b5942
3
.gitignore
vendored
3
.gitignore
vendored
@ -95,6 +95,9 @@ fontscache.txt
|
|||||||
# Android source files need to be included
|
# Android source files need to be included
|
||||||
!android/app/src/main/java/com/classicube
|
!android/app/src/main/java/com/classicube
|
||||||
|
|
||||||
|
# Flatpak wrapper which needs to be included
|
||||||
|
!misc/linux/flatpak/ClassiCubeLauncher
|
||||||
|
|
||||||
# CMake files
|
# CMake files
|
||||||
CMakeFiles/
|
CMakeFiles/
|
||||||
CMakeCache.txt
|
CMakeCache.txt
|
||||||
|
3
misc/linux/flatpak/ClassiCubeLauncher
Normal file
3
misc/linux/flatpak/ClassiCubeLauncher
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
mkdir -p ${XDG_DATA_HOME}/ClassiCube
|
||||||
|
cd ${XDG_DATA_HOME}/ClassiCube && exec ClassiCube $@
|
78
misc/linux/flatpak/net.classicube.flatpak.client.SDL3.json
Normal file
78
misc/linux/flatpak/net.classicube.flatpak.client.SDL3.json
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"id": "net.classicube.flatpak.client",
|
||||||
|
"runtime": "org.freedesktop.Platform",
|
||||||
|
"runtime-version": "23.08",
|
||||||
|
"sdk": "org.freedesktop.Sdk",
|
||||||
|
"command": "ClassiCubeLauncher",
|
||||||
|
"finish-args": [
|
||||||
|
"--socket=wayland",
|
||||||
|
"--socket=fallback-x11",
|
||||||
|
"--device=dri",
|
||||||
|
"--share=network",
|
||||||
|
"--share=ipc",
|
||||||
|
"--socket=pulseaudio"
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "SDL3",
|
||||||
|
"buildsystem": "cmake-ninja",
|
||||||
|
"builddir": true,
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/libsdl-org/SDL.git",
|
||||||
|
"branch": "main"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cleanup": [
|
||||||
|
"/bin/sdl3-config",
|
||||||
|
"/include",
|
||||||
|
"/lib/libSDL3.la",
|
||||||
|
"/lib/libSDL3main.a",
|
||||||
|
"/lib/libSDL3main.la",
|
||||||
|
"/lib/libSDL3_test.a",
|
||||||
|
"/lib/libSDL3_test.la",
|
||||||
|
"/lib/cmake",
|
||||||
|
"/share/aclocal",
|
||||||
|
"/lib/pkgconfig"
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "libdecor",
|
||||||
|
"buildsystem": "meson",
|
||||||
|
"config-opts": [
|
||||||
|
"-Ddemo=false"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitlab.freedesktop.org/libdecor/libdecor.git"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cleanup": [
|
||||||
|
"/include",
|
||||||
|
"/lib/pkgconfig"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ClassiCube",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"gcc -fno-math-errno src/*.c -o src/ClassiCube -rdynamic -lpthread -lGL -DCC_WIN_BACKEND=CC_WIN_BACKEND_SDL3 -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -DCC_BUILD_FLATPAK -L /app/lib -lSDL3",
|
||||||
|
"install -Dm755 src/ClassiCube -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm755 misc/linux/flatpak/ClassiCubeLauncher -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.classicube.flatpak.client.svg",
|
||||||
|
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.desktop ${FLATPAK_DEST}/share/applications/net.classicube.flatpak.client.desktop",
|
||||||
|
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.classicube.flatpak.client.metainfo.xml"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ClassiCube/ClassiCube.git"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
34
misc/linux/flatpak/net.classicube.flatpak.client.X11.json
Normal file
34
misc/linux/flatpak/net.classicube.flatpak.client.X11.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"id": "net.classicube.flatpak.client",
|
||||||
|
"runtime": "org.freedesktop.Platform",
|
||||||
|
"runtime-version": "23.08",
|
||||||
|
"sdk": "org.freedesktop.Sdk",
|
||||||
|
"command": "ClassiCubeLauncher",
|
||||||
|
"finish-args": [
|
||||||
|
"--socket=x11",
|
||||||
|
"--device=dri",
|
||||||
|
"--share=network",
|
||||||
|
"--share=ipc",
|
||||||
|
"--socket=pulseaudio"
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "ClassiCube",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"gcc -fno-math-errno src/*.c -o src/ClassiCube -O1 -DCC_BUILD_FLATPAK -DCC_GFX_BACKEND=CC_GFX_BACKEND_GL2 -rdynamic -lm -lpthread -lX11 -lXi -lGL -ldl",
|
||||||
|
"install -Dm755 src/ClassiCube -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm755 misc/linux/flatpak/ClassiCubeLauncher -t ${FLATPAK_DEST}/bin",
|
||||||
|
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.classicube.flatpak.client.svg",
|
||||||
|
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.desktop ${FLATPAK_DEST}/share/applications/net.classicube.flatpak.client.desktop",
|
||||||
|
"install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.classicube.flatpak.client.metainfo.xml"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/ClassiCube/ClassiCube.git"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1,29 +0,0 @@
|
|||||||
id: net.classicube.flatpak.client
|
|
||||||
runtime: org.freedesktop.Platform
|
|
||||||
runtime-version: '23.08'
|
|
||||||
sdk: org.freedesktop.Sdk
|
|
||||||
command: ClassiCubeLauncher
|
|
||||||
finish-args:
|
|
||||||
- --socket=x11
|
|
||||||
- --device=dri
|
|
||||||
- --share=network
|
|
||||||
- --share=ipc
|
|
||||||
- --socket=pulseaudio
|
|
||||||
modules:
|
|
||||||
- name: ClassiCube
|
|
||||||
buildsystem: simple
|
|
||||||
build-commands:
|
|
||||||
- gcc -fno-math-errno src/*.c -o src/ClassiCube -O1 -DCC_BUILD_FLATPAK -DCC_BUILD_GLMODERN -rdynamic -lm -lpthread -lX11 -lXi -lGL -ldl
|
|
||||||
- install -Dm755 src/ClassiCube -t ${FLATPAK_DEST}/bin
|
|
||||||
- install -Dm755 ClassiCubeLauncher -t ${FLATPAK_DEST}/bin
|
|
||||||
- install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/net.classicube.flatpak.client.svg
|
|
||||||
- install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.desktop ${FLATPAK_DEST}/share/applications/net.classicube.flatpak.client.desktop
|
|
||||||
- install -Dm644 misc/linux/flatpak/net.classicube.flatpak.client.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.classicube.flatpak.client.metainfo.xml
|
|
||||||
sources:
|
|
||||||
- type: dir
|
|
||||||
path: ../../../
|
|
||||||
- type: script
|
|
||||||
dest-filename: ClassiCubeLauncher
|
|
||||||
commands:
|
|
||||||
- mkdir -p ${XDG_DATA_HOME}/ClassiCube
|
|
||||||
- cd ${XDG_DATA_HOME}/ClassiCube && exec /app/bin/ClassiCube "$@"
|
|
@ -203,12 +203,12 @@ static int MapNativeKey(SDL_Keycode k) {
|
|||||||
case SDLK_RALT: return CCKEY_RALT;
|
case SDLK_RALT: return CCKEY_RALT;
|
||||||
case SDLK_RGUI: return CCKEY_RWIN;
|
case SDLK_RGUI: return CCKEY_RWIN;
|
||||||
|
|
||||||
case SDLK_AUDIONEXT: return CCKEY_MEDIA_NEXT;
|
case SDLK_MEDIA_NEXT_TRACK: return CCKEY_MEDIA_NEXT;
|
||||||
case SDLK_AUDIOPREV: return CCKEY_MEDIA_PREV;
|
case SDLK_MEDIA_PREVIOUS_TRACK: return CCKEY_MEDIA_PREV;
|
||||||
case SDLK_AUDIOPLAY: return CCKEY_MEDIA_PLAY;
|
case SDLK_MEDIA_PLAY: return CCKEY_MEDIA_PLAY;
|
||||||
case SDLK_AUDIOSTOP: return CCKEY_MEDIA_STOP;
|
case SDLK_MEDIA_STOP: return CCKEY_MEDIA_STOP;
|
||||||
|
|
||||||
case SDLK_AUDIOMUTE: return CCKEY_VOLUME_MUTE;
|
case SDLK_MUTE: return CCKEY_VOLUME_MUTE;
|
||||||
case SDLK_VOLUMEDOWN: return CCKEY_VOLUME_DOWN;
|
case SDLK_VOLUMEDOWN: return CCKEY_VOLUME_DOWN;
|
||||||
case SDLK_VOLUMEUP: return CCKEY_VOLUME_UP;
|
case SDLK_VOLUMEUP: return CCKEY_VOLUME_UP;
|
||||||
}
|
}
|
||||||
@ -217,7 +217,7 @@ static int MapNativeKey(SDL_Keycode k) {
|
|||||||
|
|
||||||
static void OnKeyEvent(const SDL_Event* e) {
|
static void OnKeyEvent(const SDL_Event* e) {
|
||||||
cc_bool pressed = e->key.state == SDL_PRESSED;
|
cc_bool pressed = e->key.state == SDL_PRESSED;
|
||||||
int key = MapNativeKey(e->key.keysym.sym);
|
int key = MapNativeKey(e->key.key);
|
||||||
if (key) Input_Set(key, pressed);
|
if (key) Input_Set(key, pressed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,12 +395,10 @@ cc_result Window_OpenFileDialog(const struct OpenFileDialogArgs* args) {
|
|||||||
pattern[str.length] = '\0';
|
pattern[str.length] = '\0';
|
||||||
filters[0].name = args->description;
|
filters[0].name = args->description;
|
||||||
filters[0].pattern = pattern;
|
filters[0].pattern = pattern;
|
||||||
filters[1].name = NULL;
|
|
||||||
filters[1].pattern = NULL;
|
|
||||||
|
|
||||||
dlgCallback = args->Callback;
|
dlgCallback = args->Callback;
|
||||||
save_filters = NULL;
|
save_filters = NULL;
|
||||||
SDL_ShowOpenFileDialog(DialogCallback, NULL, win_handle, filters, NULL, false);
|
SDL_ShowOpenFileDialog(DialogCallback, NULL, win_handle, filters, 1, NULL, false);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,7 +422,7 @@ cc_result Window_SaveFileDialog(const struct SaveFileDialogArgs* args) {
|
|||||||
|
|
||||||
dlgCallback = args->Callback;
|
dlgCallback = args->Callback;
|
||||||
save_filters = filters;
|
save_filters = filters;
|
||||||
SDL_ShowSaveFileDialog(DialogCallback, NULL, win_handle, filters, defName);
|
SDL_ShowSaveFileDialog(DialogCallback, NULL, win_handle, filters, 1, defName);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user