Fil-C on Nix

Filnix wiki

mbrock/filnix

shells/baseline.nix

λpkgs, ports, filcc, sarcasm, projeny
let
9inherit pkgs
lib

Keep this list curated: useful interactive tools plus dependencies shared by many downstream packages. Every output is retained, including headers/libs.

12groups=
13shell=
"bash" "coreutils" "findutils" "diffutils" "gnugrep" "gnused" "gawk" "file" "less" "gnutar" "gzip" "which"
27build=
"gnumake" "gnum4" "bison" "flex" "pkgconf" "autoconf" "automake" "libtool"
37compression=
"zlib" "bzip2" "xz" "zstd" "brotli" "libarchive"
45libraries=
"libffi" "gmp" "mpfr" "libmpc" "expat" "libxml2" "pcre2" "libunistring" "libuv" "libevent" "ncurses" "readline" "gdbm"
60network=
"openssl" "openssl-sarcasm" "curlMinimal" "openssh" "git"
67runtimes=
"python312" "perl" "ruby_3_3" "lua"
73data=
"sqlite" "jq"
used by names
78names=
lib.concatListsbuiltins.attrValuesgroups
uses groups lib used by packages
79packages=
lib.genAttrsnames name: ports.${name} // inherit filcc sarcasm projeny;
82manifest=
pkgs.writeText"filc-baseline-manifest.json"
builtins.toJSON
84inherit
groups
85packages=
lib.mapAttrs
λname p
86version=
p.version or "git"
87outputs=
lib.genAttrsp.outputs output: toStringlib.getOutputoutput p
uses lib packages used by baseline
91alternativeOpenSSL=
pkgs.writeShellScriptBin"openssl-sarcasm"
exec ${ports.openssl-sarcasm.bin}/bin/openssl "$@"
used by environment
94environment=
pkgs.buildEnv
95name=
"filc-baseline-environment"
96paths=
lib.mapAttrsToListname: p: lib.getBinp removeAttrspackages "openssl-sarcasm" ++ alternativeOpenSSL
101pathsToLink=
"/bin" "/share/terminfo"
106shell=
pkgs.writeShellScriptBin"filc-baseline-shell"
export PATH=${environment}/bin
export SHELL=${ports.bash}/bin/bash
export SSL_CERT_FILE=${ports.cacert}/etc/ssl/certs/ca-bundle.crt
export CC=clang CXX=clang++ PKG_CONFIG=pkgconf
exec ${ports.bash}/bin/bash --noprofile --rcfile ${pkgs.writeText"filc-baseline-bashrc" '' PS1='[filc-baseline] \w \$ ' ''} "$@"
uses environment used by baseline
115baseline=
pkgs.runCommand"filc-cache-baseline" { }
${pkgs.python3}/bin/python3 ${../tests/baseline.py} ${manifest}
mkdir -p $out/packages $out/bin
cp ${manifest} $out/manifest.json
ln -s ${environment} $out/environment
ln -s ${shell}/bin/filc-baseline-shell $out/bin/filc-baseline-shell
${lib.concatStringsSep"\n" lib.mapAttrsToListname: p: '' mkdir -p $out/packages/${name} ${lib.concatMapStringsSep"\n" output: '' ln -s ${lib.getOutputoutput p} $out/packages/${name}/${output} '' p.outputs} '' packages}
in
inherit baseline shell environment packages manifest groups;