terraform-providers.auth0: 1.9.1 -> 1.10.0 (#375919)
[NixPkgs.git] / pkgs / by-name / vu / vulkan-loader / package.nix
blob96ad2fa8407ec27429730c8abd4f438480b5bed2
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   fetchpatch,
6   cmake,
7   pkg-config,
8   libX11,
9   libxcb,
10   libXrandr,
11   wayland,
12   moltenvk,
13   vulkan-headers,
14   addDriverRunpath,
15   enableX11 ? stdenv.hostPlatform.isLinux,
16   testers,
19 stdenv.mkDerivation (finalAttrs: {
20   pname = "vulkan-loader";
21   version = "1.3.296.0";
23   src = fetchFromGitHub {
24     owner = "KhronosGroup";
25     repo = "Vulkan-Loader";
26     rev = "vulkan-sdk-${finalAttrs.version}";
27     hash = "sha256-6GHZUiYL3gDWN61SaLiD/3xXSoQb1rx6U5eu1cl8ZwM=";
28   };
30   patches =
31     [ ./fix-pkgconfig.patch ]
32     ++ lib.optionals stdenv.hostPlatform.is32bit [
33       # Backport patch to support 64-bit inodes on 32-bit systems
34       # FIXME: remove in next update
35       (fetchpatch {
36         url = "https://github.com/KhronosGroup/Vulkan-Loader/commit/ecd88b5c6b1e4c072c55c8652d76513d74c5ad4e.patch";
37         hash = "sha256-Ea+v+RfmVl8fRbkr2ETM3/7R4vp+jw7hvTq2hnw4V/0=";
38       })
39     ];
41   nativeBuildInputs = [
42     cmake
43     pkg-config
44   ];
45   buildInputs =
46     [ vulkan-headers ]
47     ++ lib.optionals enableX11 [
48       libX11
49       libxcb
50       libXrandr
51     ]
52     ++ lib.optionals stdenv.hostPlatform.isLinux [
53       wayland
54     ];
56   cmakeFlags =
57     [
58       "-DCMAKE_INSTALL_INCLUDEDIR=${vulkan-headers}/include"
59       (lib.cmakeBool "BUILD_WSI_XCB_SUPPORT" enableX11)
60       (lib.cmakeBool "BUILD_WSI_XLIB_SUPPORT" enableX11)
61     ]
62     ++ lib.optional stdenv.hostPlatform.isDarwin "-DSYSCONFDIR=${moltenvk}/share"
63     ++ lib.optional stdenv.hostPlatform.isLinux "-DSYSCONFDIR=${addDriverRunpath.driverLink}/share"
64     ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "-DUSE_GAS=OFF";
66   outputs = [
67     "out"
68     "dev"
69   ];
71   doInstallCheck = true;
73   installCheckPhase = ''
74     grep -q "${vulkan-headers}/include" $dev/lib/pkgconfig/vulkan.pc || {
75       echo vulkan-headers include directory not found in pkg-config file
76       exit 1
77     }
78   '';
80   passthru = {
81     tests.pkg-config = testers.hasPkgConfigModules {
82       package = finalAttrs.finalPackage;
83     };
84   };
86   meta = with lib; {
87     description = "LunarG Vulkan loader";
88     homepage = "https://www.lunarg.com";
89     platforms = platforms.unix ++ platforms.windows;
90     license = licenses.asl20;
91     maintainers = [ maintainers.ralith ];
92     broken = finalAttrs.version != vulkan-headers.version;
93     pkgConfigModules = [ "vulkan" ];
94   };