Merge pull request #147 from Minion3665/enhancement/update-nix-derivation

This commit is contained in:
flow 2022-10-21 19:04:35 -03:00 committed by GitHub
commit 7a8c963722
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 62 additions and 15 deletions

View File

@ -1,21 +1,59 @@
# How to import # Running on Nix
To import with flakes use ## Putting it in your system configuration
### On flakes-enabled nix
#### Directly installing
The `prismlauncher` flake provides a package which you can install along with
the rest of your packages
```nix ```nix
# In your flake.nix:
{ {
inputs = { inputs = {
prismlauncher.url = "github:PrismLauncher/PrismLauncher"; prismlauncher.url = "github:PrismLauncher/PrismLauncher";
}; };
...
nixpkgs.overlays = [ inputs.prismlauncher.overlay ]; ## Within configuration.nix
environment.systemPackages = with pkgs; [ prismlauncher ]; ##
} }
``` ```
To import without flakes use channels: ```nix
# And in your system configuration:
environment.systemPackages = [ prismlauncher.packages.${pkgs.system}.prismlauncher ];
# Or in your home-manager configuration:
home.packages = [ prismlauncher.packages.${pkgs.system}.prismlauncher ];
```
#### Using the overlay
Alternatively, you can overlay the prismlauncher version in nixpkgs which will
allow you to install using `pkgs` as you normally would while also using the
latest version
```nix
# In your flake.nix:
{
inputs = {
prismlauncher.url = "github:PrismLauncher/PrismLauncher";
};
}
```
```nix
# And in your system configuration:
nixpkgs.overlays = [ inputs.prismlauncher.overlay ];
environment.systemPackages = [ pkgs.prismlauncher ];
# Or in your home-manager configuration:
config.nixpkgs.overlays = [ inputs.prismlauncher.overlay ];
home.packages = [ pkgs.prismlauncher ];
```
### Without flakes-enabled nix
#### Using channels
```sh ```sh
nix-channel --add https://github.com/PrismLauncher/PrismLauncher/archive/master.tar.gz prismlauncher nix-channel --add https://github.com/PrismLauncher/PrismLauncher/archive/master.tar.gz prismlauncher
@ -23,9 +61,10 @@ nix-channel --update prismlauncher
nix-env -iA prismlauncher nix-env -iA prismlauncher
``` ```
or alternatively you can use #### Using the overlay
```nix ```nix
# In your configuration.nix:
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).overlay (import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).overlay
@ -34,3 +73,11 @@ or alternatively you can use
environment.systemPackages = with pkgs; [ prismlauncher ]; environment.systemPackages = with pkgs; [ prismlauncher ];
} }
``` ```
## Running ad-hoc
If you're on a flakes-enabled nix you can run the launcher in one-line
```sh
nix run github:PrismLauncher/PrismLauncher
```

View File

@ -59,20 +59,20 @@ stdenv.mkDerivation rec {
# Copy libnbtplusplus # Copy libnbtplusplus
rm -rf source/libraries/libnbtplusplus rm -rf source/libraries/libnbtplusplus
mkdir source/libraries/libnbtplusplus mkdir source/libraries/libnbtplusplus
cp -a ${libnbtplusplus}/* source/libraries/libnbtplusplus ln -s ${libnbtplusplus}/* source/libraries/libnbtplusplus
chmod a+r+w source/libraries/libnbtplusplus/* chmod -R +r+w source/libraries/libnbtplusplus
# Copy tomlplusplus # Copy tomlplusplus
rm -rf source/libraries/tomlplusplus rm -rf source/libraries/tomlplusplus
mkdir source/libraries/tomlplusplus mkdir source/libraries/tomlplusplus
cp -a ${tomlplusplus}/* source/libraries/tomlplusplus ln -s ${tomlplusplus}/* source/libraries/tomlplusplus
chmod a+r+w source/libraries/tomlplusplus/* chmod -R +r+w source/libraries/tomlplusplus
''; '';
cmakeFlags = [ cmakeFlags = [
"-GNinja" "-GNinja"
"-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qtbase.version}" "-DLauncher_QT_VERSION_MAJOR=${lib.versions.major qtbase.version}"
] ++ lib.optionals enableLTO [ "-DENABLE_LTO=on" ] ] ++ lib.optionals enableLTO [ "-DENABLE_LTO=on" ]
++ lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]; ++ lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ];
# we have to check if the system is NixOS before adding stdenv.cc.cc.lib (#923) # we have to check if the system is NixOS before adding stdenv.cc.cc.lib (#923)
postInstall = '' postInstall = ''
@ -96,6 +96,6 @@ stdenv.mkDerivation rec {
''; '';
platforms = platforms.unix; platforms = platforms.unix;
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = with maintainers; [ starcraft66 kloenk ]; maintainers = with maintainers; [ minion3665 Scrumplex ];
}; };
} }