{ pkgs ? import {} }: let inherit (pkgs.lib) callPackageWith; inherit (pkgs.lib) callPackagesWith; #callPackage = callPackageWith (pkgs); callPackage = callPackageWith (pkgs // self.bsc); callPackages = callPackagesWith (pkgs // self.bsc); self.bsc = rec { # Custom OpenMPI with mpi_cxx enabled for TAMPI openmpi = callPackage ./bsc/openmpi/default.nix { enableCxx = true; }; # Load the default implementation #mpi = pkgs.mpich; #mpi = pkgs.openmpi; mpi = openmpi; # Our OpenMPI variant # Load the default compiler #stdenv = pkgs.gcc7Stdenv; #stdenv = pkgs.gcc9Stdenv; #stdenv = pkgs.gcc10Stdenv; stdenv = pkgs.clangStdenv; binutils = pkgs.binutils; coreutils = pkgs.coreutils; fftw = callPackage ./bsc/fftw/default.nix { mpi = mpi; }; extrae = callPackage ./bsc/extrae/default.nix { mpi = mpi; }; tampi = callPackage ./bsc/tampi/default.nix { mpi = mpi; }; nanos6 = callPackage ./bsc/nanos6/default.nix { extrae = extrae; }; nanos6-git = callPackage ./bsc/nanos6/git.nix { extrae = extrae; }; # # clang-ompss2 = import ./bsc/cc-wrapper/default.nix { ## inherit stdenv binutils coreutils ; ## stdenv = bsc.stdenv; # coreutils = pkgs.coreutils; # bintools = pkgs.binutils; # gnugrep = pkgs.gnugrep; # stdenvNoCC = pkgs.stdenvNoCC; # libc = pkgs.glibc; # nativeTools = false; # nativeLibc = false; # cc = clang-ompss2-unwrapped; # }; # gcc = lib.makeOverridable (import ./bsc/cc-wrapper/default.nix) { # nativeTools = false; # nativeLibc = false; # isGNU = true; # buildPackages = { # inherit (prevStage) stdenv; # }; # cc = prevStage.gcc-unwrapped; # bintools = self.binutils; # libc = getLibc self; # inherit (self) stdenvNoCC coreutils gnugrep; # shell = self.bash + "/bin/bash"; # }; #stdenv = stdenvClangOmpss; # WrappedICC = import ../patches/cc-wrapper { # inherit stdenv binutils coreutils ; # libc = glibc; # nativeTools = false; # nativeLibc = false; # cc = icc-native; # }; # # # stdenvICC = (overrideCC stdenv WrappedICC) // { isICC = true; }; # # stdenvIntelfSupported = if (WrappedICC != null) then stdenvICC else stdenv; # # stdenvIntelIfSupportedElseClang = if (WrappedICC != null) then stdenvICC else clangStdenv; # # intelMKLIfSupported = if (WrappedICC != null) then intel-mkl else pkgs.blas; # }; # llvmPackages_10 = callPackage ../development/compilers/llvm/10 ({ # inherit (stdenvAdapters) overrideCC; # buildLlvmTools = buildPackages.llvmPackages_10.tools; # targetLlvmLibraries = targetPackages.llvmPackages_10.libraries; # } // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) { # stdenv = gcc7Stdenv; # }); # llvmPackages_latest = llvmPackages_10; # # cpic = callPackage ./bsc/cpic/default.nix { # stdenv = stdenv_nanos6; # tampi = tampi; # mpi = mpi; # nanos6 = nanos6-git; ## llvm-ompss2 = llvm-ompss2; # }; dummy = callPackage ./bsc/dummy/default.nix { }; chroot = callPackage ./test/chroot.nix {}; # llvmOmpss2Packages = callPackage bsc/llvm-ompss2/11/default.nix {}; clang-ompss2-unwrapped = callPackage ./bsc/llvm-ompss2/clang.nix { stdenv = pkgs.llvmPackages_10.stdenv; }; clang-ompss2 = callPackage bsc/llvm-ompss2/default.nix { nanos6 = nanos6-git; inherit clang-ompss2-unwrapped; }; stdenv-nanos6 = pkgs.clangStdenv.override { cc = clang-ompss2; }; test-clang-ompss2 = callPackage ./test/compilers/clang-ompss2.nix { stdenv = stdenv-nanos6; nanos6 = nanos6-git; inherit clang-ompss2; }; cpic = callPackage ./bsc/cpic/default.nix { stdenv = stdenv-nanos6; tampi = tampi; mpi = mpi; nanos6 = nanos6-git; # llvm-ompss2 = llvm-ompss2; }; }; in pkgs // self