mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-24 12:18:46 +08:00
49 lines
1.4 KiB
Nix
49 lines
1.4 KiB
Nix
{
|
|
buildFHSEnv, writeScript, stdenvNoCC, symlinkJoin,
|
|
src,
|
|
oneapi, lmod, cmake, gcc, glibc, binutils,
|
|
config, oneapiArch ? config.oneapiArch or "SSE3"
|
|
}:
|
|
let
|
|
gccFull = symlinkJoin { name = "gcc"; paths = [ gcc gcc.cc gcc.cc.lib glibc.dev binutils.bintools ]; };
|
|
buildEnv = buildFHSEnv
|
|
{
|
|
name = "buildEnv";
|
|
targetPkgs = pkgs: with pkgs; [ zlib (writeTextDir "etc/release" "") gccFull ];
|
|
extraBwrapArgs = [ "--bind" "$out" "$out" ];
|
|
};
|
|
buildScript = writeScript "build"
|
|
''
|
|
. ${lmod}/share/lmod/lmod/init/bash
|
|
module use ${oneapi}/share/intel/modulefiles
|
|
module load tbb compiler-rt oclfpga # dependencies
|
|
module load mpi mkl compiler
|
|
mkdir build
|
|
cd build
|
|
cmake -DCMAKE_INSTALL_PREFIX=$out -DHDF5_INSTALL_CMAKE_DIR=$out/lib/cmake \
|
|
-DHDF5_BUILD_FORTRAN=ON -DHDF5_ENABLE_PARALLEL=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=OFF \
|
|
-DBUILD_TESTING=OFF ..
|
|
make -j$NIX_BUILD_CORES
|
|
make install
|
|
'';
|
|
in stdenvNoCC.mkDerivation
|
|
{
|
|
name = "hdf5-oneapi";
|
|
inherit src;
|
|
dontConfigure = true;
|
|
enableParallelBuilding = true;
|
|
nativeBuildInputs = [ cmake ];
|
|
I_MPI_CC = "icx";
|
|
I_MPI_CXX = "icpx";
|
|
I_MPI_FC = "ifx";
|
|
I_MPI_F90 = "ifx";
|
|
buildPhase =
|
|
''
|
|
mkdir -p $out
|
|
${buildEnv}/bin/buildEnv ${buildScript}
|
|
'';
|
|
dontInstall = true;
|
|
dontFixup = true;
|
|
requiredSystemFeatures = [ "gccarch-exact-${stdenvNoCC.hostPlatform.gcc.arch}" ];
|
|
}
|