diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libdrm')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch | 48 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libdrm/default.nix | 42 |
2 files changed, 90 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch b/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch new file mode 100644 index 000000000000..478534e65e51 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch @@ -0,0 +1,48 @@ +From 9e05fece7918edce9c6aa5a1f1ea375108e5b2be Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io> +Date: Fri, 2 Aug 2019 10:26:37 +0100 +Subject: [PATCH] meson: support for custom nm path +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When cross-compiling target toolchains i.e. binutils are often +prefixed by its target architecture. This patch gives the user +to option to specify the nm used during the build process. + +Signed-off-by: Jörg Thalheim <joerg@thalheim.io> +--- + meson.build | 2 +- + meson_options.txt | 6 ++++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index e292554a..64607139 100644 +--- a/meson.build ++++ b/meson.build +@@ -327,7 +327,7 @@ pkg.generate( + ) + + env_test = environment() +-env_test.set('NM', find_program('nm').path()) ++env_test.set('NM', find_program(get_option('nm-path')).path()) + + if with_libkms + subdir('libkms') +diff --git a/meson_options.txt b/meson_options.txt +index 8af33f1c..b4f46a52 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -141,3 +141,9 @@ option( + value : false, + description : 'Enable support for using udev instead of mknod.', + ) ++option( ++ 'nm-path', ++ type : 'string', ++ description : 'path to nm', ++ value : 'nm' ++) +-- +2.22.0 + diff --git a/nixpkgs/pkgs/development/libraries/libdrm/default.nix b/nixpkgs/pkgs/development/libraries/libdrm/default.nix new file mode 100644 index 000000000000..29d59659f90d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libdrm/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, pkgconfig, meson, ninja, libpthreadstubs, libpciaccess, valgrind-light }: + +stdenv.mkDerivation rec { + pname = "libdrm"; + version = "2.4.99"; + + src = fetchurl { + url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.bz2"; + sha256 = "0pnsw4bmajzdbz8pk4wswdmw93shhympf2q9alhbnpfjgsf57gsd"; + }; + + outputs = [ "out" "dev" "bin" ]; + + nativeBuildInputs = [ pkgconfig meson ninja ]; + buildInputs = [ libpthreadstubs libpciaccess valgrind-light ]; + + patches = [ ./cross-build-nm-path.patch ]; + + postPatch = '' + for a in */*-symbol-check ; do + patchShebangs $a + done + ''; + + mesonFlags = + [ + "-Dnm-path=${stdenv.cc.targetPrefix}nm" + "-Dinstall-test-programs=true" ] + ++ stdenv.lib.optionals (stdenv.isAarch32 || stdenv.isAarch64) + [ "-Dtegra=true" "-Detnaviv=true" ] + ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-Dintel=false" + ; + + enableParallelBuilding = true; + + meta = { + homepage = https://dri.freedesktop.org/libdrm/; + description = "Library for accessing the kernel's Direct Rendering Manager"; + license = "bsd"; + platforms = stdenv.lib.platforms.unix; + }; +} |