2024-09-01 12:08:31 +00:00
|
|
|
# SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <stenzek@gmail.com>
|
|
|
|
# SPDX-License-Identifier: CC-BY-NC-ND-4.0
|
|
|
|
|
2024-08-06 04:12:08 +00:00
|
|
|
app-id: "org.duckstation.DuckStation"
|
|
|
|
runtime: "org.kde.Platform"
|
|
|
|
runtime-version: "6.7"
|
|
|
|
sdk: "org.kde.Sdk"
|
|
|
|
sdk-extensions:
|
|
|
|
- "org.freedesktop.Sdk.Extension.llvm17"
|
2024-08-12 03:26:43 +00:00
|
|
|
add-extensions:
|
|
|
|
"org.freedesktop.Platform.ffmpeg-full":
|
|
|
|
directory: "lib/ffmpeg"
|
|
|
|
version: "23.08"
|
|
|
|
add-ld-path: "."
|
|
|
|
autodownload: true
|
2024-08-06 04:12:08 +00:00
|
|
|
|
|
|
|
command: "duckstation-qt"
|
|
|
|
|
|
|
|
finish-args:
|
|
|
|
- "--device=all"
|
|
|
|
- "--allow=bluetooth"
|
|
|
|
- "--share=network"
|
|
|
|
- "--share=ipc"
|
|
|
|
- "--socket=pulseaudio"
|
|
|
|
- "--talk-name=org.freedesktop.ScreenSaver"
|
|
|
|
|
|
|
|
# Wayland is disabled due to various QtWayland issues, causing broken UI.
|
|
|
|
- "--socket=x11"
|
|
|
|
- "--env=QT_QPA_PLATFORM=xcb"
|
|
|
|
|
|
|
|
modules:
|
|
|
|
# Dependencies.
|
|
|
|
- "modules/20-sdl2.yaml"
|
|
|
|
- "modules/21-libbacktrace.yaml"
|
|
|
|
- "modules/22-shaderc.yaml"
|
|
|
|
- "modules/23-spirv-cross.yaml"
|
|
|
|
- "modules/24-cpuinfo.yaml"
|
|
|
|
- "modules/25-discord-rpc.yaml"
|
|
|
|
- "modules/26-soundtouch.yaml"
|
2024-08-25 04:39:40 +00:00
|
|
|
- "modules/27-lunasvg.yaml"
|
2024-08-06 04:12:08 +00:00
|
|
|
|
|
|
|
# Main module.
|
|
|
|
- name: duckstation
|
|
|
|
buildsystem: cmake-ninja
|
|
|
|
builddir: true
|
|
|
|
no-make-install: true
|
|
|
|
build-options:
|
|
|
|
# Preserve debug information, it is needed for backtraces.
|
|
|
|
strip: false
|
|
|
|
no-debuginfo: true
|
|
|
|
|
|
|
|
# Prevent flatpak defaults of fortify etc from creeping in.
|
|
|
|
cflags: ""
|
|
|
|
cflags-override: true
|
|
|
|
cxxflags: ""
|
|
|
|
cxxflags-override: true
|
|
|
|
|
|
|
|
config-opts:
|
|
|
|
# Flatpak build does not appear to default to Release.
|
|
|
|
- "-DCMAKE_BUILD_TYPE=Release"
|
|
|
|
|
|
|
|
# We're not running tests as part of the flatpak build.
|
|
|
|
- '-DBUILD_TESTS=OFF'
|
|
|
|
|
|
|
|
# Make sure we're using ThinLTO.
|
|
|
|
- "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
|
|
|
|
- "-DCMAKE_C_COMPILER=/usr/lib/sdk/llvm17/bin/clang"
|
|
|
|
- "-DCMAKE_CXX_COMPILER=/usr/lib/sdk/llvm17/bin/clang++"
|
|
|
|
- "-DCMAKE_EXE_LINKER_FLAGS_INIT=-fuse-ld=lld"
|
|
|
|
- "-DCMAKE_MODULE_LINKER_FLAGS_INIT=-fuse-ld=lld"
|
|
|
|
- "-DCMAKE_SHARED_LINKER_FLAGS_INIT=-fuse-ld=lld"
|
|
|
|
sources:
|
|
|
|
- type: dir
|
|
|
|
path: ../..
|
|
|
|
|
|
|
|
post-install:
|
|
|
|
# Copy the binary distribution.
|
|
|
|
- "cp -a bin \"${FLATPAK_DEST}\""
|
|
|
|
|
|
|
|
# Manually copy desktop file/metadata, it's not done as part of the regular build.
|
|
|
|
- >-
|
|
|
|
install -Dm644
|
|
|
|
"${FLATPAK_BUILDER_BUILDDIR}/scripts/org.duckstation.DuckStation.png"
|
|
|
|
"${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/org.duckstation.DuckStation.png"
|
|
|
|
- >-
|
|
|
|
install -Dm644
|
|
|
|
"${FLATPAK_BUILDER_BUILDDIR}/scripts/org.duckstation.DuckStation.desktop"
|
|
|
|
"${FLATPAK_DEST}/share/applications/org.duckstation.DuckStation.desktop"
|
|
|
|
- >-
|
|
|
|
install -Dm644
|
|
|
|
"${FLATPAK_BUILDER_BUILDDIR}/scripts/flatpak/org.duckstation.DuckStation.metainfo.xml"
|
|
|
|
"${FLATPAK_DEST}/share/metainfo/org.duckstation.DuckStation.metainfo.xml"
|
2024-08-12 03:26:43 +00:00
|
|
|
|
|
|
|
# Ensure ffmpeg-full mount point exists.
|
|
|
|
- "mkdir -p \"${FLATPAK_DEST}/lib/ffmpeg\""
|