about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/vulkan-loader
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/vulkan-loader')
-rw-r--r--nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix45
-rw-r--r--nixpkgs/pkgs/development/libraries/vulkan-loader/fix-pkgconfig.patch14
2 files changed, 59 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix b/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
new file mode 100644
index 000000000000..a4cb0ae82330
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libX11, libxcb
+, libXrandr, wayland, moltenvk, vulkan-headers, addOpenGLRunpath }:
+
+stdenv.mkDerivation rec {
+  pname = "vulkan-loader";
+  version = "1.3.254";
+
+  src = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "Vulkan-Loader";
+    rev = "v${version}";
+    hash = "sha256-bxmDhKDM+OOTsSJEoGXlWPZciBcwevv0e4gHweH46JU=";
+  };
+
+  patches = [ ./fix-pkgconfig.patch ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ vulkan-headers ]
+    ++ lib.optionals (!stdenv.isDarwin) [ libX11 libxcb libXrandr wayland ];
+
+  cmakeFlags = [ "-DCMAKE_INSTALL_INCLUDEDIR=${vulkan-headers}/include" ]
+    ++ lib.optional stdenv.isDarwin "-DSYSCONFDIR=${moltenvk}/share"
+    ++ lib.optional stdenv.isLinux "-DSYSCONFDIR=${addOpenGLRunpath.driverLink}/share"
+    ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "-DUSE_GAS=OFF";
+
+  outputs = [ "out" "dev" ];
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    grep -q "${vulkan-headers}/include" $dev/lib/pkgconfig/vulkan.pc || {
+      echo vulkan-headers include directory not found in pkg-config file
+      exit 1
+    }
+  '';
+
+  meta = with lib; {
+    description = "LunarG Vulkan loader";
+    homepage    = "https://www.lunarg.com";
+    platforms   = platforms.unix;
+    license     = licenses.asl20;
+    maintainers = [ maintainers.ralith ];
+    broken = (version != vulkan-headers.version);
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/vulkan-loader/fix-pkgconfig.patch b/nixpkgs/pkgs/development/libraries/vulkan-loader/fix-pkgconfig.patch
new file mode 100644
index 000000000000..42295a67d466
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/vulkan-loader/fix-pkgconfig.patch
@@ -0,0 +1,14 @@
+diff --git a/loader/vulkan.pc.in b/loader/vulkan.pc.in
+index 153815577..584b15273 100644
+--- a/loader/vulkan.pc.in
++++ b/loader/vulkan.pc.in
+@@ -1,7 +1,5 @@
+-prefix=@CMAKE_INSTALL_PREFIX@
+-exec_prefix=${prefix}
+-libdir=${exec_prefix}/@CMAKE_INSTALL_REL_LIBDIR_PC@
+-includedir=${prefix}/@CMAKE_INSTALL_REL_INCLUDEDIR_PC@
++libdir=@CMAKE_INSTALL_LIBDIR@
++includedir=@CMAKE_INSTALL_INCLUDEDIR@
+
+ Name: @CMAKE_PROJECT_NAME@
+ Description: Vulkan Loader