forked from rarias/jungle
102 lines
1.8 KiB
Nix
102 lines
1.8 KiB
Nix
{
|
|
stdenv,
|
|
ocl-icd,
|
|
opencl-headers,
|
|
pocl,
|
|
clinfo,
|
|
writableTmpDirAsHomeHook,
|
|
runCommand,
|
|
lib,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "opencl-pocl-test";
|
|
version = "1.0.0";
|
|
|
|
src = ./opencl.c;
|
|
|
|
dontUnpack = true;
|
|
dontConfigure = true;
|
|
|
|
buildInputs = [
|
|
ocl-icd
|
|
opencl-headers
|
|
];
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
$CC -Wall -Wextra -D CL_TARGET_OPENCL_VERSION=100 $src -o ocl-hello -lOpenCL
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/bin
|
|
cp ocl-hello $out/bin
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru = {
|
|
test-icd =
|
|
runCommand "custom-clinfo"
|
|
{
|
|
nativeBuildInputs =
|
|
assert !(lib.hasPrefix "pocl" ocl-icd.pname);
|
|
[
|
|
clinfo
|
|
finalAttrs.finalPackage
|
|
pocl
|
|
writableTmpDirAsHomeHook
|
|
];
|
|
|
|
env.POCL_DEBUG = "error,warn";
|
|
|
|
requiredSystemFeatures = [ "sys-devices" ];
|
|
}
|
|
|
|
''
|
|
set -x
|
|
|
|
mkdir $out
|
|
|
|
clinfo -l >$out/clinfo
|
|
clinfo >$out/clinfo-full
|
|
|
|
ocl-hello >$out/hello
|
|
|
|
for i in $out/*; do
|
|
grep "Portable Computing Language" $i
|
|
done
|
|
|
|
echo $OCL_ICD_VENDORS >$out/env
|
|
|
|
grep "pocl.*/etc/OpenCL/vendors" $out/env
|
|
|
|
set +x
|
|
'';
|
|
# this needs: ocl-icd = pocl-noicd
|
|
test-noicd =
|
|
runCommand "custom-clinfo"
|
|
{
|
|
nativeBuildInputs = [
|
|
finalAttrs.finalPackage
|
|
writableTmpDirAsHomeHook
|
|
];
|
|
|
|
env.POCL_DEBUG = "error,warn";
|
|
|
|
requiredSystemFeatures = [ "sys-devices" ];
|
|
}
|
|
|
|
''
|
|
ocl-hello >$out
|
|
|
|
grep "Portable Computing Language" $out
|
|
'';
|
|
};
|
|
})
|