mirror of
https://github.com/kaesaecracker/nixos-configuration.git
synced 2025-01-18 18:40:14 +01:00
66 lines
1.4 KiB
Nix
66 lines
1.4 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
cfg = config.my.buildtools;
|
|
in {
|
|
options.my.buildtools = {
|
|
native = lib.mkEnableOption "include native build tools";
|
|
dotnet = lib.mkEnableOption "include dotnet build tools";
|
|
rust = lib.mkEnableOption "include rust build tools";
|
|
jetbrains-remote-server = lib.mkEnableOption "setup jetbrais IDE installs so -remote-dev-server can be started";
|
|
};
|
|
|
|
config = lib.mkMerge [
|
|
(lib.mkIf cfg.native
|
|
{
|
|
environment.systemPackages = with pkgs; [
|
|
cmake
|
|
gnumake
|
|
gcc
|
|
gdb
|
|
llvmPackages_latest.llvm
|
|
llvmPackages.clangUseLLVM
|
|
];
|
|
})
|
|
(lib.mkIf cfg.dotnet {
|
|
environment = {
|
|
systemPackages = with pkgs; [
|
|
dotnet-sdk_8
|
|
|
|
zlib zlib.dev
|
|
openssl
|
|
icu
|
|
];
|
|
variables = {
|
|
DOTNET_CLI_TELEMETRY_OPTOUT = "1";
|
|
};
|
|
};
|
|
})
|
|
(lib.mkIf cfg.rust {
|
|
environment.systemPackages = with pkgs; [
|
|
cargo
|
|
rustc
|
|
rustfmt
|
|
clippy
|
|
cargo-generate
|
|
];
|
|
})
|
|
(lib.mkIf cfg.jetbrains-remote-server {
|
|
environment.systemPackages = with pkgs.jetbrains; [
|
|
jdk # required for all of them
|
|
rider
|
|
clion
|
|
pycharm-professional
|
|
];
|
|
my.allowUnfreePackages = [
|
|
"rider"
|
|
"clion"
|
|
"pycharm-professional"
|
|
];
|
|
})
|
|
];
|
|
}
|