{ stdenv, fetchFromGitHub, cmake, pkgconfig , arrayfire, expat, fontconfig, freeimage, freetype, boost , mesa, libGLU, libGL, glfw3, SDL2, cudatoolkit }: stdenv.mkDerivation rec { pname = "forge"; version = "1.0.4"; src = fetchFromGitHub { owner = "arrayfire"; repo = "forge"; rev = "v${version}"; sha256 = "00pmky6kccd7pwi8sma79qpmzr2f9pbn6gym3gyqm64yckw6m484"; fetchSubmodules = true; }; nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ expat fontconfig freetype boost.out boost.dev freeimage mesa libGLU libGL glfw3 SDL2 cudatoolkit arrayfire ]; meta = with stdenv.lib; { description = "An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend"; longDescription = '' An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend. The goal of Forge is to provide high performance OpenGL visualizations for C/C++ applications that use CUDA/OpenCL. Forge uses OpenGL >=3.3 forward compatible contexts, so please make sure you have capable hardware before trying it out. ''; license = licenses.bsd3; homepage = "https://arrayfire.com/"; platforms = platforms.linux; maintainers = with maintainers; [ chessai ]; }; }