Merge branch 'PrismLauncher:develop' into refactor-filter

This commit is contained in:
TheKodeToad 2025-08-20 14:48:15 +01:00 committed by GitHub
commit 0f6d589c6b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 67 additions and 81 deletions

View File

@ -24,7 +24,7 @@ set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${PROJECT_BINARY_DIR}/jars)
######## Set compiler flags ######## ######## Set compiler flags ########
set(CMAKE_CXX_STANDARD_REQUIRED true) set(CMAKE_CXX_STANDARD_REQUIRED true)
set(CMAKE_C_STANDARD_REQUIRED true) set(CMAKE_C_STANDARD_REQUIRED true)
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 20)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
include(GenerateExportHeader) include(GenerateExportHeader)
if(MSVC) if(MSVC)

6
flake.lock generated
View File

@ -18,11 +18,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1754498491, "lastModified": 1755186698,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -63,7 +63,7 @@ bool JavaVersion::isModular() const
return m_parseable && m_major >= 9; return m_parseable && m_major >= 9;
} }
bool JavaVersion::operator<(const JavaVersion& rhs) bool JavaVersion::operator<(const JavaVersion& rhs) const
{ {
if (m_parseable && rhs.m_parseable) { if (m_parseable && rhs.m_parseable) {
auto major = m_major; auto major = m_major;
@ -101,7 +101,7 @@ bool JavaVersion::operator<(const JavaVersion& rhs)
return StringUtils::naturalCompare(m_string, rhs.m_string, Qt::CaseSensitive) < 0; return StringUtils::naturalCompare(m_string, rhs.m_string, Qt::CaseSensitive) < 0;
} }
bool JavaVersion::operator==(const JavaVersion& rhs) bool JavaVersion::operator==(const JavaVersion& rhs) const
{ {
if (m_parseable && rhs.m_parseable) { if (m_parseable && rhs.m_parseable) {
return m_major == rhs.m_major && m_minor == rhs.m_minor && m_security == rhs.m_security && m_prerelease == rhs.m_prerelease; return m_major == rhs.m_major && m_minor == rhs.m_minor && m_security == rhs.m_security && m_prerelease == rhs.m_prerelease;
@ -109,7 +109,7 @@ bool JavaVersion::operator==(const JavaVersion& rhs)
return m_string == rhs.m_string; return m_string == rhs.m_string;
} }
bool JavaVersion::operator>(const JavaVersion& rhs) bool JavaVersion::operator>(const JavaVersion& rhs) const
{ {
return (!operator<(rhs)) && (!operator==(rhs)); return (!operator<(rhs)) && (!operator==(rhs));
} }

View File

@ -20,9 +20,9 @@ class JavaVersion {
JavaVersion& operator=(const QString& rhs); JavaVersion& operator=(const QString& rhs);
bool operator<(const JavaVersion& rhs); bool operator<(const JavaVersion& rhs) const;
bool operator==(const JavaVersion& rhs); bool operator==(const JavaVersion& rhs) const;
bool operator>(const JavaVersion& rhs); bool operator>(const JavaVersion& rhs) const;
bool requiresPermGen() const; bool requiresPermGen() const;
bool defaultsToUtf8() const; bool defaultsToUtf8() const;

View File

@ -90,14 +90,6 @@ class ResourceAPI {
std::optional<std::list<Version>> mcVersions; std::optional<std::list<Version>> mcVersions;
std::optional<ModPlatform::ModLoaderTypes> loaders; std::optional<ModPlatform::ModLoaderTypes> loaders;
VersionSearchArgs(VersionSearchArgs const&) = default;
void operator=(VersionSearchArgs other)
{
pack = other.pack;
mcVersions = other.mcVersions;
loaders = other.loaders;
}
}; };
struct VersionSearchCallbacks { struct VersionSearchCallbacks {
std::function<void(QJsonDocument&, ModPlatform::IndexedPack)> on_succeed; std::function<void(QJsonDocument&, ModPlatform::IndexedPack)> on_succeed;
@ -106,9 +98,6 @@ class ResourceAPI {
struct ProjectInfoArgs { struct ProjectInfoArgs {
ModPlatform::IndexedPack pack; ModPlatform::IndexedPack pack;
ProjectInfoArgs(ProjectInfoArgs const&) = default;
void operator=(ProjectInfoArgs other) { pack = other.pack; }
}; };
struct ProjectInfoCallbacks { struct ProjectInfoCallbacks {
std::function<void(QJsonDocument&, const ModPlatform::IndexedPack&)> on_succeed; std::function<void(QJsonDocument&, const ModPlatform::IndexedPack&)> on_succeed;

View File

@ -76,35 +76,33 @@ stdenv.mkDerivation {
stripJavaArchivesHook stripJavaArchivesHook
]; ];
buildInputs = buildInputs = [
[ cmark
cmark kdePackages.qtbase
kdePackages.qtbase kdePackages.qtnetworkauth
kdePackages.qtnetworkauth kdePackages.quazip
kdePackages.quazip tomlplusplus
tomlplusplus zlib
zlib ]
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_11 ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_11 ] ++ lib.optional gamemodeSupport gamemode;
++ lib.optional gamemodeSupport gamemode;
hardeningEnable = lib.optionals stdenv.hostPlatform.isLinux [ "pie" ]; hardeningEnable = lib.optionals stdenv.hostPlatform.isLinux [ "pie" ];
cmakeFlags = cmakeFlags = [
[ # downstream branding
# downstream branding (lib.cmakeFeature "Launcher_BUILD_PLATFORM" "nixpkgs")
(lib.cmakeFeature "Launcher_BUILD_PLATFORM" "nixpkgs") ]
] ++ lib.optionals (msaClientID != null) [
++ lib.optionals (msaClientID != null) [ (lib.cmakeFeature "Launcher_MSA_CLIENT_ID" (toString msaClientID))
(lib.cmakeFeature "Launcher_MSA_CLIENT_ID" (toString msaClientID)) ]
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
++ lib.optionals stdenv.hostPlatform.isDarwin [ # we wrap our binary manually
# we wrap our binary manually (lib.cmakeFeature "INSTALL_BUNDLE" "nodeps")
(lib.cmakeFeature "INSTALL_BUNDLE" "nodeps") # disable built-in updater
# disable built-in updater (lib.cmakeFeature "MACOSX_SPARKLE_UPDATE_FEED_URL" "''")
(lib.cmakeFeature "MACOSX_SPARKLE_UPDATE_FEED_URL" "''") (lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "${placeholder "out"}/Applications/")
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "${placeholder "out"}/Applications/") ];
];
doCheck = true; doCheck = true;

View File

@ -61,14 +61,13 @@ symlinkJoin {
nativeBuildInputs = [ kdePackages.wrapQtAppsHook ]; nativeBuildInputs = [ kdePackages.wrapQtAppsHook ];
buildInputs = buildInputs = [
[ kdePackages.qtbase
kdePackages.qtbase kdePackages.qtsvg
kdePackages.qtsvg ]
] ++ lib.optional (
++ lib.optional ( lib.versionAtLeast kdePackages.qtbase.version "6" && stdenv.hostPlatform.isLinux
lib.versionAtLeast kdePackages.qtbase.version "6" && stdenv.hostPlatform.isLinux ) kdePackages.qtwayland;
) kdePackages.qtwayland;
postBuild = '' postBuild = ''
wrapQtAppsHook wrapQtAppsHook
@ -76,41 +75,41 @@ symlinkJoin {
qtWrapperArgs = qtWrapperArgs =
let let
runtimeLibs = runtimeLibs = [
[ (lib.getLib stdenv.cc.cc)
(lib.getLib stdenv.cc.cc) ## native versions
## native versions glfw3-minecraft
glfw3-minecraft openal
openal
## openal ## openal
alsa-lib alsa-lib
libjack2 libjack2
libpulseaudio libpulseaudio
pipewire pipewire
## glfw ## glfw
libGL libGL
libX11 libX11
libXcursor libXcursor
libXext libXext
libXrandr libXrandr
libXxf86vm libXxf86vm
udev # oshi udev # oshi
vulkan-loader # VulkanMod's lwjgl vulkan-loader # VulkanMod's lwjgl
] ]
++ lib.optional textToSpeechSupport flite ++ lib.optional textToSpeechSupport flite
++ lib.optional gamemodeSupport gamemode.lib ++ lib.optional gamemodeSupport gamemode.lib
++ lib.optional controllerSupport libusb1 ++ lib.optional controllerSupport libusb1
++ additionalLibs; ++ additionalLibs;
runtimePrograms = [ runtimePrograms = [
mesa-demos mesa-demos
pciutils # need lspci pciutils # need lspci
xrandr # needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 xrandr # needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
] ++ additionalPrograms; ]
++ additionalPrograms;
in in
[ "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" ] [ "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" ]