mcpelauncher-client: init at 1.1.2-qt6

Co-authored-by: Aleksana QwQ <me@aleksana.moe>
This commit is contained in:
Synth Morxemplum
2024-12-15 21:29:00 +08:00
committed by aleksana
co-authored by Aleksana QwQ
parent 5be46b778e
commit 90267ec8ee
2 changed files with 150 additions and 0 deletions
@@ -0,0 +1,25 @@
diff --git a/ext/glfw.cmake b/ext/glfw.cmake
index 5487f32..feeb89f 100644
--- a/ext/glfw.cmake
+++ b/ext/glfw.cmake
@@ -1,18 +1,2 @@
-include(FetchContent)
-
-set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
-set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
-set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
-set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
-
-FetchContent_Declare(
- glfw3_ext
- URL "https://github.com/minecraft-linux/glfw/archive/fce9121962bc0a21c39e2d6f8e08bad30c566c72.zip"
-)
-
-FetchContent_GetProperties(glfw3_ext)
-if(NOT glfw3_ext_POPULATED)
- FetchContent_Populate(glfw3_ext)
- add_subdirectory(${glfw3_ext_SOURCE_DIR} ${glfw3_ext_BINARY_DIR})
-endif()
+find_package(glfw3 REQUIRED)
add_library(glfw3 ALIAS glfw)
\ No newline at end of file
@@ -0,0 +1,125 @@
{
lib,
clangStdenv,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
openssl,
zlib,
libpng,
libglvnd,
xorg,
libevdev,
curl,
pulseaudio,
qt6,
glfw,
withQtWebview ? true,
withQtErrorWindow ? true,
fetchzip,
}:
# gcc doesn't support __has_feature
clangStdenv.mkDerivation (finalAttrs: {
pname = "mcpelauncher-client";
version = "1.1.2-qt6";
# NOTE: check mcpelauncher-ui-qt when updating
src = fetchFromGitHub {
owner = "minecraft-linux";
repo = "mcpelauncher-manifest";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-PmCq6Zgtp17UV0kIbNouFwj/DMiTqwE31+tTb2LUp5o=";
};
patches = [
./dont_download_glfw_client.patch
# These are upcoming changes that have been merged upstream. Once these get in a release, remove these patches.
(fetchpatch {
url = "https://github.com/minecraft-linux/game-window/commit/feea8c0e0720eea7093ed95745c17f36d6c40671.diff";
hash = "sha256-u4uveoKwwklEooT+i+M9kZ0PshjL1IfWhlltmulsQJo=";
stripLen = 1;
extraPrefix = "game-window/";
})
(fetchpatch {
url = "https://github.com/minecraft-linux/mcpelauncher-client/commit/db9c31e46d7367867c85a0d0aba42c8144cdf795.diff";
hash = "sha256-za/9oZYwKCYyZ1BXQ/zeEjRy81B1NpTlPHEfWAOtzHk=";
stripLen = 1;
extraPrefix = "mcpelauncher-client/";
})
];
# FORTIFY_SOURCE breaks libc_shim and the project will fail to compile
hardeningDisable = [ "fortify" ];
nativeBuildInputs =
[
cmake
pkg-config
]
++ lib.optionals (withQtWebview || withQtErrorWindow) [
qt6.wrapQtAppsHook
];
buildInputs =
[
openssl
zlib
libpng
libglvnd
xorg.libX11
xorg.libXi
xorg.libXtst
libevdev
curl
pulseaudio
glfw
]
++ lib.optionals (withQtWebview || withQtErrorWindow) [
qt6.qtbase
qt6.qttools
qt6.qtwayland
]
++ lib.optionals withQtWebview [
qt6.qtwebengine
];
cmakeFlags = [
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_NLOHMANN_JSON_EXT" (
toString (fetchzip {
url = "https://github.com/nlohmann/json/releases/download/v3.7.3/include.zip";
hash = "sha256-h8czZ4f5vZqvHkDVQawrQdUeQnWxewu4OONisqlrmmM=";
stripRoot = false;
})
))
(lib.cmakeBool "USE_OWN_CURL" false)
(lib.cmakeBool "ENABLE_DEV_PATHS" false)
(lib.cmakeFeature "GAMEWINDOW_SYSTEM" "GLFW")
(lib.cmakeBool "USE_SDL3_AUDIO" false)
(lib.cmakeBool "BUILD_WEBVIEW" withQtWebview)
(lib.cmakeBool "XAL_WEBVIEW_USE_CLI" (!withQtWebview))
(lib.cmakeBool "XAL_WEBVIEW_USE_QT" withQtWebview)
(lib.cmakeBool "ENABLE_QT_ERROR_UI" withQtErrorWindow)
];
meta = {
description = "Unofficial Minecraft Bedrock Edition launcher with CLI";
homepage = "https://minecraft-linux.github.io";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
aleksana
morxemplum
];
mainProgram = "mcpelauncher-client";
platforms = lib.platforms.unix;
# Minecraft Bedrock Edition is raising minimal OpenGL version to OpenGL ES 3.1
# which is currently not supported on macOS.
# https://github.com/minecraft-linux/mcpelauncher-manifest/issues/1042
# https://help.minecraft.net/hc/en-us/articles/30298767427597-Upcoming-OS-Sunset-Announcements-in-Minecraft
# The program is also not tested on darwin. Any help from darwin users are welcomed.
badPlatforms = lib.platforms.darwin;
};
})