Restructured option passing
parent
6b60e8fb25
commit
17006132fb
15
default.nix
15
default.nix
|
@ -1,16 +1,3 @@
|
||||||
{ pkgs ? import <nixpkgs> {} }:
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
|
||||||
pkgs.callPackage ./derivation.nix {
|
pkgs.callPackage ./derivation.nix {}
|
||||||
extraCmakeFlags = [
|
|
||||||
"-DGINKGO_BUILD_SHARED_LIBS=OFF"
|
|
||||||
"-DGINKGO_BUILD_TESTING=OFF"
|
|
||||||
"-DGINKGO_BUILD_TESTS=OFF"
|
|
||||||
"-DGINKGO_BUILD_MPI=OFF"
|
|
||||||
"-DGINKGO_BUILD_REFERENCE=ON"
|
|
||||||
"-DGINKGO_BUILD_CUDA=OFF"
|
|
||||||
"-DGINKGO_BUILD_BENCHMARKS=OFF"
|
|
||||||
"-DGINKGO_BUILD_EXAMPLES=OFF"
|
|
||||||
"-DGINKGO_BUILD_HWLOC=OFF"
|
|
||||||
"-DGINKGO_BUILD_DOC=OFF"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
|
@ -5,13 +5,17 @@
|
||||||
, ninja
|
, ninja
|
||||||
, gtest
|
, gtest
|
||||||
, mold
|
, mold
|
||||||
, clang_14
|
, clang
|
||||||
, cppCompiler ? clang_14
|
, cppCompiler ? clang
|
||||||
, hwloc
|
, hwloc
|
||||||
, gflags
|
, gflags
|
||||||
, rapidjson
|
, rapidjson
|
||||||
, extraBuildInputs ? []
|
|
||||||
, extraCmakeFlags ? []
|
## optional backends
|
||||||
|
, hipSupport ? false, hip, rocthrust
|
||||||
|
, cudaSupport ? false, cudatoolkit
|
||||||
|
, ompSupport ? false
|
||||||
|
, mpiSupport ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -24,10 +28,12 @@ let
|
||||||
rev = "234594c92b58e2384dfb43c2d08e7f43e2b58e7a";
|
rev = "234594c92b58e2384dfb43c2d08e7f43e2b58e7a";
|
||||||
sha256 = "eKQfuXnTMGgEzuksXzZE4QR5ILfVbw+dK9IsRdmalQc=";
|
sha256 = "eKQfuXnTMGgEzuksXzZE4QR5ILfVbw+dK9IsRdmalQc=";
|
||||||
};
|
};
|
||||||
extra_build_inputs = extraBuildInputs;
|
|
||||||
base_cmake_flags = [
|
base_cmake_flags = [
|
||||||
|
"-DGINKGO_BUILD_TESTS=OFF"
|
||||||
|
"-DGINKGO_BUILD_BENCHMARKS=OFF"
|
||||||
|
"-DGINKGO_BUILD_EXAMPLES=OFF"
|
||||||
|
"-DGINKGO_BUILD_HWLOC=OFF"
|
||||||
];
|
];
|
||||||
extra_cmake_flags = extraCmakeFlags;
|
|
||||||
native_build_inputs = [
|
native_build_inputs = [
|
||||||
cmake
|
cmake
|
||||||
ninja
|
ninja
|
||||||
|
@ -38,7 +44,9 @@ let
|
||||||
build_inputs = [
|
build_inputs = [
|
||||||
gflags
|
gflags
|
||||||
rapidjson
|
rapidjson
|
||||||
];
|
]
|
||||||
|
++ lib.optional cudaSupport cudatoolkit
|
||||||
|
++ lib.optional hipSupport [ hip, rocthrust ];
|
||||||
in stdenvNoCC.mkDerivation {
|
in stdenvNoCC.mkDerivation {
|
||||||
pname = "${basename}";
|
pname = "${basename}";
|
||||||
version = version;
|
version = version;
|
||||||
|
@ -47,12 +55,38 @@ in stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
nativeBuildInputs = native_build_inputs;
|
nativeBuildInputs = native_build_inputs;
|
||||||
|
|
||||||
buildInputs = build_inputs ++ extra_build_inputs;
|
buildInputs = build_inputs;
|
||||||
|
|
||||||
|
cmakeFlags = base_cmake_flags
|
||||||
|
++ lib.optional cudaSupport [
|
||||||
|
"-DGINKGO_BUILD_CUDA=ON"
|
||||||
|
]
|
||||||
|
++ lib.optional (!cudaSupport) [
|
||||||
|
"-DGINKGO_BUILD_CUDA=OFF"
|
||||||
|
]
|
||||||
|
++ lib.optional hipSupport [
|
||||||
|
"-DGINKGO_BUILD_HIP=ON"
|
||||||
|
]
|
||||||
|
++ lib.optional (!hipSupport) [
|
||||||
|
"-DGINKGO_BUILD_HIP=OFF"
|
||||||
|
]
|
||||||
|
++ lib.optional ompSupport [
|
||||||
|
"-DGINKGO_BUILD_OMP=ON"
|
||||||
|
]
|
||||||
|
++ lib.optional (!ompSupport) [
|
||||||
|
"-DGINKGO_BUILD_OMP=OFF"
|
||||||
|
]
|
||||||
|
++ lib.optional mpiSupport [
|
||||||
|
"-DGINKGO_BUILD_MPI=ON"
|
||||||
|
]
|
||||||
|
++ lib.optional (!mpiSupport) [
|
||||||
|
"-DGINKGO_BUILD_MPI=OFF"
|
||||||
|
];
|
||||||
|
|
||||||
cmakeFlags = base_cmake_flags ++ extra_cmake_flags;
|
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./ver_1_5_cmake.patch
|
./ver_1_5_cmake.patch
|
||||||
];
|
];
|
||||||
|
|
53
release.nix
53
release.nix
|
@ -10,62 +10,17 @@ in
|
||||||
ginkgo-project = {
|
ginkgo-project = {
|
||||||
ginkgo = {
|
ginkgo = {
|
||||||
reference = pkgs.callPackage ./derivation.nix {
|
reference = pkgs.callPackage ./derivation.nix {
|
||||||
extraCmakeFlags = [
|
|
||||||
"-DGINKGO_BUILD_CUDA=OFF"
|
|
||||||
"-DGINKGO_BUILD_BENCHMARKS=OFF"
|
|
||||||
"-DGINKGO_BUILD_EXAMPLES=OFF"
|
|
||||||
"-DGINKGO_BUILD_HWLOC=OFF"
|
|
||||||
"-DGINKGO_BUILD_HIP=OFF"
|
|
||||||
"-DGINKGO_BUILD_OMP=OFF"
|
|
||||||
"-DGINKGO_BUILD_MPI=OFF"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
cuda = pkgs.callPackage ./derivation.nix {
|
cuda = pkgs.callPackage ./derivation.nix {
|
||||||
extraCmakeFlags = [
|
cudaSupport = true;
|
||||||
"-DGINKGO_BUILD_CUDA=ON"
|
|
||||||
"-DGINKGO_BUILD_BENCHMARKS=OFF"
|
|
||||||
"-DGINKGO_BUILD_EXAMPLES=OFF"
|
|
||||||
"-DGINKGO_BUILD_HWLOC=OFF"
|
|
||||||
"-DGINKGO_BUILD_HIP=OFF"
|
|
||||||
"-DGINKGO_BUILD_OMP=OFF"
|
|
||||||
"-DGINKGO_BUILD_MPI=OFF"
|
|
||||||
];
|
|
||||||
extraBuildInputs = [
|
|
||||||
pkgs.cudatoolkit
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
hip = pkgs.callPackage ./derivation.nix {
|
hip = pkgs.callPackage ./derivation.nix {
|
||||||
cppCompiler = pkgs.clang;
|
cppCompiler = pkgs.llvmPackages_rocm.clang;
|
||||||
extraCmakeFlags = [
|
hipSupport = true;
|
||||||
"-DGINKGO_BUILD_CUDA=OFF"
|
|
||||||
"-DGINKGO_BUILD_BENCHMARKS=OFF"
|
|
||||||
"-DGINKGO_BUILD_EXAMPLES=OFF"
|
|
||||||
"-DGINKGO_BUILD_HWLOC=OFF"
|
|
||||||
"-DGINKGO_BUILD_HIP=ON"
|
|
||||||
"-DGINKGO_BUILD_OMP=OFF"
|
|
||||||
"-DGINKGO_BUILD_MPI=OFF"
|
|
||||||
];
|
|
||||||
extraBuildInputs = [
|
|
||||||
pkgs.hip
|
|
||||||
pkgs.rocthrust
|
|
||||||
pkgs.hipblas
|
|
||||||
pkgs.hipsparse
|
|
||||||
pkgs.rocrand
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
omp = pkgs.callPackage ./derivation.nix {
|
omp = pkgs.callPackage ./derivation.nix {
|
||||||
cppCompiler = pkgs.gcc12;
|
cppCompiler = pkgs.gcc12;
|
||||||
extraCmakeFlags = [
|
ompSupport = true;
|
||||||
"-DGINKGO_BUILD_CUDA=OFF"
|
|
||||||
"-DGINKGO_BUILD_BENCHMARKS=OFF"
|
|
||||||
"-DGINKGO_BUILD_EXAMPLES=OFF"
|
|
||||||
"-DGINKGO_BUILD_HWLOC=OFF"
|
|
||||||
"-DGINKGO_BUILD_OMP=ON"
|
|
||||||
"-DGINKGO_BUILD_HIP=OFF"
|
|
||||||
"-DGINKGO_BUILD_MPI=OFF"
|
|
||||||
];
|
|
||||||
extraBuildInputs = [
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue