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