diff --git a/garlic/apps/miniamr/default.nix b/garlic/apps/miniamr/default.nix new file mode 100644 index 0000000..844913f --- /dev/null +++ b/garlic/apps/miniamr/default.nix @@ -0,0 +1,46 @@ +{ + stdenv +, tampi +, clangOmpss2 +, mpi +, nanos6 +, mcxx +, variant +}: + +with stdenv.lib; + +assert (assertOneOf "variant" variant [ "openmp" "openmp-tasks" "ompss-2" ]); + +let + cc=mcxx; +in +stdenv.mkDerivation rec { + name = "miniamr"; + + src = builtins.fetchGit { + url = "ssh://git@bscpm02.bsc.es/ksala/miniamr.git"; + ref = "master"; + }; + + postUnpack = '' + sourceRoot=$sourceRoot/${variant} + ''; + + buildInputs = [ tampi clangOmpss2 mpi nanos6 mcxx ]; + + makeFlags = [ + "CC=${cc.CC}" + "CXX=${cc.CXX}" + ]; + + enableParallelBuilding = true; + + installPhase = '' + mkdir -p $out/bin + cp miniAMR.x $out/bin/ + ''; + + programPath = "/bin/miniAMR.x"; + +} diff --git a/overlay.nix b/overlay.nix index dad6235..d40e804 100644 --- a/overlay.nix +++ b/overlay.nix @@ -303,6 +303,11 @@ let }; heat = callPackage ./garlic/apps/heat/default.nix { }; + + miniamr = callPackage ./garlic/apps/miniamr/default.nix { + variant = "ompss-2"; + }; + # heat = callPackage ./garlic/apps/heat/default.nix { # # FIXME: The heat program must be able to compile with gcc9 and newer # stdenv = self.gcc7Stdenv;