aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--default.nix2
-rw-r--r--flake.lock31
-rw-r--r--flake.nix9
-rw-r--r--launcher/CMakeLists.txt2
-rw-r--r--nix/NIX.md (renamed from packages/nix/NIX.md)0
-rw-r--r--nix/default.nix (renamed from packages/nix/polymc/default.nix)36
-rw-r--r--nix/flake-compat.nix (renamed from packages/nix/flake-compat.nix)4
-rw-r--r--program_info/CMakeLists.txt3
-rw-r--r--program_info/polymc.manifest.in (renamed from program_info/polymc.manifest)6
-rw-r--r--program_info/polymc.rc.in (renamed from program_info/polymc.rc)6
11 files changed, 41 insertions, 60 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fcc2512d..31b2f23b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -128,6 +128,8 @@ message(STATUS "Git commit: ${Launcher_GIT_COMMIT}")
message(STATUS "Git refspec: ${Launcher_GIT_REFSPEC}")
set(Launcher_RELEASE_VERSION_NAME "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}")
+set(Launcher_RELEASE_VERSION_NAME4 "${Launcher_RELEASE_VERSION_NAME}.0")
+set(Launcher_RELEASE_VERSION_NAME4_COMMA "${Launcher_VERSION_MAJOR},${Launcher_VERSION_MINOR},${Launcher_VERSION_HOTFIX},0")
string(TIMESTAMP TODAY "%Y-%m-%d")
set(Launcher_RELEASE_TIMESTAMP "${TODAY}")
diff --git a/default.nix b/default.nix
index 5abfc1bd..146942d5 100644
--- a/default.nix
+++ b/default.nix
@@ -1 +1 @@
-(import packages/nix/flake-compat.nix).defaultNix
+(import nix/flake-compat.nix).defaultNix
diff --git a/flake.lock b/flake.lock
index e3c490fd..ccdd51da 100644
--- a/flake.lock
+++ b/flake.lock
@@ -3,11 +3,11 @@
"flake-compat": {
"flake": false,
"locked": {
- "lastModified": 1648199409,
- "narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=",
+ "lastModified": 1650374568,
+ "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "64a525ee38886ab9028e6f61790de0832aa3ef03",
+ "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
@@ -34,11 +34,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1648219316,
- "narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=",
+ "lastModified": 1653326962,
+ "narHash": "sha256-W8feCYqKTsMre4nAEpv5Kx1PVFC+hao/LwqtB2Wci/8=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634",
+ "rev": "41cc1d5d9584103be4108c1815c350e07c807036",
"type": "github"
},
"original": {
@@ -48,28 +48,11 @@
"type": "github"
}
},
- "quazip": {
- "flake": false,
- "locked": {
- "lastModified": 1643049383,
- "narHash": "sha256-LcJY6yd6GyeL7X5MP4L94diceM1TYespWByliBsjK98=",
- "owner": "stachenov",
- "repo": "quazip",
- "rev": "09ec1d10c6d627f895109b21728dda000cbfa7d1",
- "type": "github"
- },
- "original": {
- "owner": "stachenov",
- "repo": "quazip",
- "type": "github"
- }
- },
"root": {
"inputs": {
"flake-compat": "flake-compat",
"libnbtplusplus": "libnbtplusplus",
- "nixpkgs": "nixpkgs",
- "quazip": "quazip"
+ "nixpkgs": "nixpkgs"
}
}
},
diff --git a/flake.nix b/flake.nix
index e59d6be8..f2247bed 100644
--- a/flake.nix
+++ b/flake.nix
@@ -5,10 +5,9 @@
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-compat = { url = "github:edolstra/flake-compat"; flake = false; };
libnbtplusplus = { url = "github:multimc/libnbtplusplus"; flake = false; };
- quazip = { url = "github:stachenov/quazip"; flake = false; };
};
- outputs = { self, nixpkgs, libnbtplusplus, quazip, ... }:
+ outputs = { self, nixpkgs, libnbtplusplus, ... }:
let
# Generate a user-friendly version number.
version = builtins.substring 0 8 self.lastModifiedDate;
@@ -23,7 +22,11 @@
pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system});
in
{
- packages = forAllSystems (system: { polymc = pkgs.${system}.libsForQt5.callPackage ./packages/nix/polymc { inherit version self quazip libnbtplusplus; }; });
+ packages = forAllSystems (system: {
+ polymc = pkgs.${system}.libsForQt5.callPackage ./nix { inherit version self libnbtplusplus; };
+ polymc-qt6 = pkgs.${system}.qt6Packages.callPackage ./nix { inherit version self libnbtplusplus; };
+ });
+
defaultPackage = forAllSystems (system: self.packages.${system}.polymc);
apps = forAllSystems (system: { polymc = { type = "app"; program = "${self.defaultPackage.${system}}/bin/polymc"; }; });
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index b3af12a6..bbf80185 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -963,7 +963,7 @@ qt5_add_resources(LAUNCHER_RESOURCES
######## Windows resource files ########
if(WIN32)
- set(LAUNCHER_RCS ../${Launcher_Branding_WindowsRC})
+ set(LAUNCHER_RCS ${CMAKE_CURRENT_BINARY_DIR}/../${Launcher_Branding_WindowsRC})
endif()
# Add executable
diff --git a/packages/nix/NIX.md b/nix/NIX.md
index 1ceba9a3..1ceba9a3 100644
--- a/packages/nix/NIX.md
+++ b/nix/NIX.md
diff --git a/packages/nix/polymc/default.nix b/nix/default.nix
index e352209a..cce40e63 100644
--- a/packages/nix/polymc/default.nix
+++ b/nix/default.nix
@@ -1,5 +1,5 @@
-{ lib
-, mkDerivation
+{ stdenv
+, lib
, fetchFromGitHub
, cmake
, ninja
@@ -7,7 +7,7 @@
, jdk
, zlib
, file
-, makeWrapper
+, wrapQtAppsHook
, xorg
, libpulseaudio
, qtbase
@@ -18,7 +18,6 @@
, self
, version
, libnbtplusplus
-, quazip
}:
let
@@ -37,41 +36,34 @@ let
gameLibraryPath = libpath + ":/run/opengl-driver/lib";
in
-mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "polymc";
inherit version;
src = lib.cleanSource self;
- nativeBuildInputs = [ cmake ninja file makeWrapper ];
- buildInputs = [ qtbase jdk zlib ];
+ nativeBuildInputs = [ cmake ninja jdk file wrapQtAppsHook ];
+ buildInputs = [ qtbase quazip zlib ];
dontWrapQtApps = true;
- postPatch = lib.optionalString (msaClientID != "") ''
- # add client ID
- substituteInPlace CMakeLists.txt \
- --replace '17b47edd-c884-4997-926d-9e7f9a6b4647' '${msaClientID}'
- '';
-
postUnpack = ''
- # Copy submodules inputs
- rm -rf source/libraries/{libnbtplusplus,quazip}
- mkdir source/libraries/{libnbtplusplus,quazip}
+ # Copy libnbtplusplus
+ rm -rf source/libraries/libnbtplusplus
+ mkdir source/libraries/libnbtplusplus
cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus
- cp -a ${quazip}/* source/libraries/quazip
- chmod a+r+w source/libraries/{libnbtplusplus,quazip}/*
+ chmod a+r+w source/libraries/libnbtplusplus/*
'';
cmakeFlags = [
"-GNinja"
- "-DLauncher_PORTABLE=OFF"
- ];
+ "-DENABLE_LTO=on"
+ "-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qtbase.version}"
+ ] ++ lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
postInstall = ''
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
- wrapProgram $out/bin/polymc \
- "''${qtWrapperArgs[@]}" \
+ wrapQtApp $out/bin/polymc \
--set GAME_LIBRARY_PATH ${gameLibraryPath} \
--prefix POLYMC_JAVA_PATHS : ${jdk}/lib/openjdk/bin/java:${jdk8}/lib/openjdk/bin/java \
--prefix PATH : ${lib.makeBinPath [ xorg.xrandr ]}
diff --git a/packages/nix/flake-compat.nix b/nix/flake-compat.nix
index bb7ee13e..8b6cb99c 100644
--- a/packages/nix/flake-compat.nix
+++ b/nix/flake-compat.nix
@@ -1,9 +1,9 @@
let
- lock = builtins.fromJSON (builtins.readFile ../../flake.lock);
+ lock = builtins.fromJSON (builtins.readFile ../flake.lock);
inherit (lock.nodes.flake-compat.locked) rev narHash;
flake-compat = fetchTarball {
url = "https://github.com/edolstra/flake-compat/archive/${rev}.tar.gz";
sha256 = narHash;
};
in
-import flake-compat { src = ../..; }
+import flake-compat { src = ../.; }
diff --git a/program_info/CMakeLists.txt b/program_info/CMakeLists.txt
index 60549d8d..2cbef1b6 100644
--- a/program_info/CMakeLists.txt
+++ b/program_info/CMakeLists.txt
@@ -21,3 +21,6 @@ set(Launcher_Portable_File "program_info/portable.txt" PARENT_SCOPE)
configure_file(org.polymc.PolyMC.desktop.in org.polymc.PolyMC.desktop)
configure_file(org.polymc.PolyMC.metainfo.xml.in org.polymc.PolyMC.metainfo.xml)
+configure_file(polymc.rc.in polymc.rc @ONLY)
+configure_file(polymc.manifest.in polymc.manifest @ONLY)
+configure_file(polymc.ico polymc.ico COPYONLY)
diff --git a/program_info/polymc.manifest b/program_info/polymc.manifest.in
index 2d9eb165..0eefacac 100644
--- a/program_info/polymc.manifest
+++ b/program_info/polymc.manifest.in
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
- <assemblyIdentity name="PolyMC.Application.1" type="win32" version="1.0.0.0" />
+ <assemblyIdentity name="PolyMC.Application.1" type="win32" version="@Launcher_RELEASE_VERSION_NAME4@" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
@@ -16,15 +16,13 @@
<description>Custom Minecraft launcher for managing multiple installs.</description>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
- <!--The ID below indicates app support for Windows Vista -->
- <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates app support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!--The ID below indicates app support for Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!--The ID below indicates app support for Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
- <!--The ID below indicates app support for Windows 10 -->
+ <!--The ID below indicates app support for Windows 10/11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
diff --git a/program_info/polymc.rc b/program_info/polymc.rc.in
index 011e944b..0ea9b73a 100644
--- a/program_info/polymc.rc
+++ b/program_info/polymc.rc.in
@@ -7,7 +7,7 @@ IDI_ICON1 ICON DISCARDABLE "polymc.ico"
1 RT_MANIFEST "polymc.manifest"
VS_VERSION_INFO VERSIONINFO
-FILEVERSION 1,0,0,0
+FILEVERSION @Launcher_RELEASE_VERSION_NAME4_COMMA@
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
BEGIN
@@ -17,9 +17,9 @@ BEGIN
BEGIN
VALUE "CompanyName", "MultiMC & PolyMC Contributors"
VALUE "FileDescription", "PolyMC"
- VALUE "FileVersion", "1.0.0.0"
+ VALUE "FileVersion", "@Launcher_RELEASE_VERSION_NAME4@"
VALUE "ProductName", "PolyMC"
- VALUE "ProductVersion", "1"
+ VALUE "ProductVersion", "@Launcher_RELEASE_VERSION_NAME4@"
END
END
BLOCK "VarFileInfo"