jetbrains: configurable vmoptions
All products are now configurable through `config.jetbrains.vmoptions` Closes #107032
This commit is contained in:
parent
83bd601310
commit
e3c8f10cbb
@ -1,5 +1,6 @@
|
|||||||
{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf
|
{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf, writeText
|
||||||
, coreutils, gnugrep, which, git, unzip, libsecret, libnotify
|
, coreutils, gnugrep, which, git, unzip, libsecret, libnotify
|
||||||
|
, vmopts ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{ name, product, version, src, wmClass, jdk, meta }:
|
{ name, product, version, src, wmClass, jdk, meta }:
|
||||||
@ -9,6 +10,11 @@ with stdenv.lib;
|
|||||||
let loName = toLower product;
|
let loName = toLower product;
|
||||||
hiName = toUpper product;
|
hiName = toUpper product;
|
||||||
execName = concatStringsSep "-" (init (splitString "-" name));
|
execName = concatStringsSep "-" (init (splitString "-" name));
|
||||||
|
vmoptsName = loName
|
||||||
|
+ ( if (with stdenv.hostPlatform; (is32bit || isDarwin))
|
||||||
|
then ""
|
||||||
|
else "64" )
|
||||||
|
+ ".vmoptions";
|
||||||
in
|
in
|
||||||
|
|
||||||
with stdenv; lib.makeOverridable mkDerivation rec {
|
with stdenv; lib.makeOverridable mkDerivation rec {
|
||||||
@ -26,6 +32,8 @@ with stdenv; lib.makeOverridable mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vmoptsFile = optionalString (vmopts != null) (writeText vmoptsName vmopts);
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper patchelf unzip ];
|
nativeBuildInputs = [ makeWrapper patchelf unzip ];
|
||||||
|
|
||||||
patchPhase = lib.optionalString (!stdenv.isDarwin) ''
|
patchPhase = lib.optionalString (!stdenv.isDarwin) ''
|
||||||
@ -72,7 +80,8 @@ with stdenv; lib.makeOverridable mkDerivation rec {
|
|||||||
--set JDK_HOME "$jdk" \
|
--set JDK_HOME "$jdk" \
|
||||||
--set ${hiName}_JDK "$jdk" \
|
--set ${hiName}_JDK "$jdk" \
|
||||||
--set ANDROID_JAVA_HOME "$jdk" \
|
--set ANDROID_JAVA_HOME "$jdk" \
|
||||||
--set JAVA_HOME "$jdk"
|
--set JAVA_HOME "$jdk" \
|
||||||
|
--set ${hiName}_VM_OPTIONS ${vmoptsFile}
|
||||||
|
|
||||||
ln -s "$item/share/applications" $out/share
|
ln -s "$item/share/applications" $out/share
|
||||||
'';
|
'';
|
||||||
|
@ -2,12 +2,13 @@
|
|||||||
, python
|
, python
|
||||||
, jdk, cmake, libxml2, zlib, python3, ncurses5
|
, jdk, cmake, libxml2, zlib, python3, ncurses5
|
||||||
, dotnet-sdk_3
|
, dotnet-sdk_3
|
||||||
|
, vmopts ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
mkJetBrainsProduct = callPackage ./common.nix { };
|
mkJetBrainsProduct = callPackage ./common.nix { inherit vmopts; };
|
||||||
# Sorted alphabetically
|
# Sorted alphabetically
|
||||||
|
|
||||||
buildClion = { name, version, src, license, description, wmClass, ... }:
|
buildClion = { name, version, src, license, description, wmClass, ... }:
|
||||||
|
@ -21648,6 +21648,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {
|
jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {
|
||||||
|
vmopts = config.jetbrains.vmopts or null;
|
||||||
jdk = jetbrains.jdk;
|
jdk = jetbrains.jdk;
|
||||||
}) // {
|
}) // {
|
||||||
jdk = callPackage ../development/compilers/jetbrains-jdk { };
|
jdk = callPackage ../development/compilers/jetbrains-jdk { };
|
||||||
|
Loading…
Reference in New Issue
Block a user