mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-10-06 04:27:27 +03:00
commit
438d8ffdcf
92
pkgs/by-name/po/pocl/package.nix
Normal file
92
pkgs/by-name/po/pocl/package.nix
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
cmake,
|
||||
pkg-config,
|
||||
hwloc,
|
||||
llvmPackages,
|
||||
libxml2, # required for statically linked llvm
|
||||
spirv-llvm-translator,
|
||||
spirv-tools,
|
||||
lttng-ust,
|
||||
ocl-icd,
|
||||
python3,
|
||||
runCommand,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
||||
let
|
||||
clang = llvmPackages.clangUseLLVM;
|
||||
# Workaround to make sure libclang finds libgcc.a and libgcc_s.so when
|
||||
# invoked from within libpocl
|
||||
clangWrapped = runCommand "clang-pocl" { nativeBuildInputs = [ makeWrapper ]; } ''
|
||||
mkdir -p $out/bin
|
||||
cp -r ${clang}/bin/* $out/bin/
|
||||
LIBGCC_DIR=$(dirname $(find ${stdenv.cc.cc}/lib/ -name libgcc.a))
|
||||
for F in ${clang}/bin/ld*; do
|
||||
BASENAME=$(basename "$F")
|
||||
rm -f $out/bin/$BASENAME
|
||||
makeWrapper ${clang}/bin/$BASENAME $out/bin/$BASENAME \
|
||||
--add-flags "-L$LIBGCC_DIR" \
|
||||
--add-flags "-L${stdenv.cc.cc.lib}/lib"
|
||||
done
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pocl";
|
||||
version = "6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pocl";
|
||||
repo = "pocl";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-NHR9yrI6Odb/s/OBnEVifdcLEXvwqzAMZWpGViv2cJg=";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DKERNELLIB_HOST_CPU_VARIANTS=distro"
|
||||
# avoid the runtime linker pulling in a different llvm e.g. from graphics drivers
|
||||
"-DSTATIC_LLVM=ON"
|
||||
"-DENABLE_POCL_BUILDING=OFF"
|
||||
"-DPOCL_ICD_ABSOLUTE_PATH=ON"
|
||||
"-DENABLE_ICD=ON"
|
||||
"-DCLANG=${clangWrapped}/bin/clang"
|
||||
"-DCLANGXX=${clangWrapped}/bin/clang++"
|
||||
"-DENABLE_REMOTE_CLIENT=ON"
|
||||
"-DENABLE_REMOTE_SERVER=ON"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
clangWrapped
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
hwloc
|
||||
libxml2
|
||||
llvmPackages.llvm
|
||||
llvmPackages.libclang
|
||||
lttng-ust
|
||||
ocl-icd
|
||||
spirv-tools
|
||||
spirv-llvm-translator
|
||||
];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "A portable open source (MIT-licensed) implementation of the OpenCL standard";
|
||||
homepage = "http://portablecl.org";
|
||||
changelog = "https://github.com/pocl/pocl/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
jansol
|
||||
xddxdd
|
||||
];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
Loading…
Reference in New Issue
Block a user