summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.nix/adaptive-cpp.nix60
-rw-r--r--default.nix4
2 files changed, 64 insertions, 0 deletions
diff --git a/.nix/adaptive-cpp.nix b/.nix/adaptive-cpp.nix
new file mode 100644
index 0000000..a39d9b7
--- /dev/null
+++ b/.nix/adaptive-cpp.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, makeWrapper
+, boost
+, llvmPackages
+, lld
+, python3
+}:
+
+let
+ version = "25.02.0";
+in stdenv.mkDerivation {
+ pname = "adaptive-cpp-kel-custom";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "AdaptiveCpp";
+ repo = "AdaptiveCpp";
+ tag = "v${version}";
+ sha256 = "sha256-vXfw8+xn3/DYxUKp3QGdQ8sEbDwyk+8jDCyuvQOXigc=";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ makeWrapper
+ ];
+
+ buildInputs = [
+ boost
+ llvmPackages.openmp
+ llvmPackages.libclang
+ llvmPackages.llvm
+ python3
+ ];
+
+ cmakeFlags = [
+ "-DCLANG_INCLUDE_PATH=${llvmPackages.libclang.dev}/include"
+ ];
+
+ postInstall = ''
+ if [ -d "$out/include/AdaptiveCpp" ]; then
+ mv $out/include/AdaptiveCpp .hidden-fake
+ mv .hidden-fake/* $out/include/
+ rmdir .hidden-fake
+ fi
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/syclcc-clang \
+ --prefix PATH : ${lib.makeBinPath [ lld python3 ]} \
+ --add-flags "-L${llvmPackages.openmp}/lib" \
+ --add-flags "-I${llvmPackages.openmp.dev}/include" \
+ '';
+
+ postPatch = ''
+ patchShebangs .
+ '';
+}
diff --git a/default.nix b/default.nix
index ee3c963..ef0bc3d 100644
--- a/default.nix
+++ b/default.nix
@@ -6,6 +6,9 @@
ref = "master";
}).outPath + "/default.nix"){
}).gasp
+, adaptive-cpp ? (pkgs.callPackage ./.nix/adaptivecpp.nix {
+ inherit stdenv;
+ })
}:
let
@@ -126,6 +129,7 @@ in rec {
inherit forstio;
inherit stdenv;
inherit clang-tools;
+ inherit adaptive-cpp;
openmp = pkgs.llvmPackages_17.openmp;
build_examples = "false";