From 684e290a389dbeec9003531a768517210b8aa8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Mon, 14 Apr 2025 10:43:07 +0200 Subject: [PATCH] Add TASYCL 2.1.0 --- overlay.nix | 2 + pkgs/tasycl/default.nix | 87 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 pkgs/tasycl/default.nix diff --git a/overlay.nix b/overlay.nix index 5603e32..22cc2a7 100644 --- a/overlay.nix +++ b/overlay.nix @@ -61,6 +61,8 @@ let stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; }; tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { }; + tasycl = callPackage ./pkgs/tasycl/default.nix { }; + tasycl-acpp = callPackage ./pkgs/tasycl/default.nix { useIntel = false; }; upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { }; }; diff --git a/pkgs/tasycl/default.nix b/pkgs/tasycl/default.nix new file mode 100644 index 0000000..34ce684 --- /dev/null +++ b/pkgs/tasycl/default.nix @@ -0,0 +1,87 @@ +{ + lib, + stdenv, + autoconf, + automake, + autoreconfHook, + boost, + fetchFromGitHub, + gnumake, + libtool, + withCFlags, + + useIntel ? true, + adaptivecpp ? null, + intelPackages ? null, + + useGit ? false, + gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tasycl/tasycl.git", + gitBranch ? "main", + gitCommit ? "78f98dcf60a66e0eaa3b4ebcf55be076bec64825", +}: + +assert !useIntel -> adaptivecpp != null; +assert useIntel -> intelPackages != null; + +let + variant = if useIntel then "intel" else "acpp"; + + syclStdenv = withCFlags [ "-O3" ] (if useIntel then intelPackages.stdenv else stdenv); + + release = rec { + version = "2.1.0"; + src = fetchFromGitHub { + owner = "bsc-pm"; + repo = "tasycl"; + rev = version; + hash = "sha256-0kXnb0lHeQNHR27GTLbJ8xbiICLU8k2+FqEnnFSrzzo="; + }; + }; + + git = rec { + version = src.shortRev; + src = builtins.fetchGit { + url = gitUrl; + ref = gitBranch; + rev = gitCommit; + }; + }; + + source = if (useGit) then git else release; + +in + +syclStdenv.mkDerivation { + pname = "tasycl-${variant}"; + inherit (source) src version; + + enableParallelBuilding = true; + separateDebugInfo = true; + + nativeBuildInputs = [ + autoreconfHook + automake + autoconf + libtool + gnumake + ]; + + buildInputs = [ + boost + ]; + + configureFlags = lib.optionals (!useIntel) [ + "CXX=${lib.getExe adaptivecpp}" + ]; + + # add symlinks so we can explicitly link with tasycl-intel / tasycl-acpp + postInstall = '' + pushd $out/lib + for i in libtasycl* ; do + ln -s "$i" "''\${i/tasycl/tasycl-${variant}}" + done + popd + ''; + + hardeningDisable = [ "all" ]; +}