wayland: fix build on non-Linux

The Wayland libraries themselves only build on Linux, but other
platforms need wayland-scanner for cross-compiling to Linux.  So for
them, disable the libraries so only wayland-scanner is built.
This commit is contained in:
Alyssa Ross 2021-02-17 05:17:07 +00:00 committed by Michael Weiss
parent 6f73a8570c
commit 4d8adb49d5
No known key found for this signature in database
GPG Key ID: 5BE487C4D4771D83

View File

@ -10,7 +10,8 @@
, libxml2
, wayland
, expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0)
, withDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform
, withLibraries ? stdenv.isLinux
, withDocumentation ? withLibraries && stdenv.hostPlatform == stdenv.buildPlatform
, graphviz-nox
, doxygen
, libxslt
@ -21,6 +22,9 @@
, docbook_xml_dtd_42
}:
# Documentation is only built when building libraries.
assert withDocumentation -> withLibraries;
# Require the optional to be enabled until upstream fixes or removes the configure flag
assert expat != null;
let
@ -45,7 +49,10 @@ stdenv.mkDerivation rec {
outputs = [ "out" ] ++ lib.optionals withDocumentation [ "doc" "man" ];
separateDebugInfo = true;
mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];
mesonFlags = [
"-Dlibraries=${lib.boolToString withLibraries}"
"-Ddocumentation=${lib.boolToString withDocumentation}"
];
postPatch = lib.optionalString withDocumentation ''
patchShebangs doc/doxygen/gen-doxygen.py
@ -71,16 +78,17 @@ stdenv.mkDerivation rec {
];
buildInputs = [
libffi
expat
libxml2
] ++ lib.optionals withLibraries [
libffi
] ++ lib.optionals withDocumentation [
docbook_xsl
docbook_xml_dtd_45
docbook_xml_dtd_42
];
meta = {
meta = with lib; {
description = "Core Wayland window system code and protocol";
longDescription = ''
Wayland is a project to define a protocol for a compositor to talk to its
@ -91,9 +99,9 @@ stdenv.mkDerivation rec {
rendering).
'';
homepage = "https://wayland.freedesktop.org/";
license = lib.licenses.mit; # Expat version
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ primeos codyopel ];
license = licenses.mit; # Expat version
platforms = if withLibraries then platforms.linux else platforms.unix;
maintainers = with maintainers; [ primeos codyopel ];
};
passthru.version = version;