2020-01-31 00:29:21 +00:00
|
|
|
{ lib, stdenv, fetchurl, meson, pkgconfig, ninja
|
2018-11-26 07:12:45 +00:00
|
|
|
, libffi, libxml2, wayland
|
2015-02-19 17:57:13 +00:00
|
|
|
, expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0)
|
2020-07-03 04:13:00 +01:00
|
|
|
, withDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform
|
|
|
|
, graphviz-nox, doxygen, libxslt, xmlto, python3
|
2020-01-31 14:36:41 +00:00
|
|
|
, docbook_xsl, docbook_xml_dtd_45, docbook_xml_dtd_42
|
2015-02-19 02:31:19 +00:00
|
|
|
}:
|
2012-12-02 10:20:07 +00:00
|
|
|
|
2015-02-19 02:31:19 +00:00
|
|
|
# Require the optional to be enabled until upstream fixes or removes the configure flag
|
2015-02-19 17:57:13 +00:00
|
|
|
assert expat != null;
|
2015-02-19 02:31:19 +00:00
|
|
|
|
2020-02-04 21:16:04 +00:00
|
|
|
let
|
|
|
|
isCross = stdenv.buildPlatform != stdenv.hostPlatform;
|
|
|
|
in stdenv.mkDerivation rec {
|
2019-03-21 03:09:21 +00:00
|
|
|
pname = "wayland";
|
2020-01-31 00:29:21 +00:00
|
|
|
version = "1.18.0";
|
2012-12-02 10:20:07 +00:00
|
|
|
|
|
|
|
src = fetchurl {
|
2019-03-21 03:09:21 +00:00
|
|
|
url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
|
2020-01-31 00:29:21 +00:00
|
|
|
sha256 = "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6";
|
2012-12-02 10:20:07 +00:00
|
|
|
};
|
|
|
|
|
2020-07-03 04:13:00 +01:00
|
|
|
outputs = [ "out" ] ++ lib.optionals withDocumentation [ "doc" "man" ];
|
2019-01-31 14:47:51 +00:00
|
|
|
separateDebugInfo = true;
|
|
|
|
|
2020-01-31 14:36:41 +00:00
|
|
|
mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];
|
|
|
|
|
|
|
|
postPatch = lib.optionalString withDocumentation ''
|
|
|
|
patchShebangs doc/doxygen/gen-doxygen.py
|
2020-02-04 21:16:04 +00:00
|
|
|
substituteInPlace egl/meson.build --replace \
|
|
|
|
"find_program('nm').path()" \
|
|
|
|
"find_program('${stdenv.cc.targetPrefix}nm').path()"
|
2020-01-31 14:36:41 +00:00
|
|
|
'';
|
2018-11-26 07:12:45 +00:00
|
|
|
|
2020-05-27 18:12:43 +01:00
|
|
|
depsBuildBuild = [
|
|
|
|
pkgconfig
|
|
|
|
];
|
|
|
|
|
2018-11-26 07:12:45 +00:00
|
|
|
nativeBuildInputs = [
|
2020-01-31 00:29:21 +00:00
|
|
|
meson pkgconfig ninja
|
2020-02-04 21:16:04 +00:00
|
|
|
] ++ lib.optionals isCross [
|
|
|
|
wayland # For wayland-scanner during the build
|
2020-01-31 14:36:41 +00:00
|
|
|
] ++ lib.optionals withDocumentation [
|
|
|
|
(graphviz-nox.override { pango = null; }) # To avoid an infinite recursion
|
|
|
|
doxygen libxslt xmlto python3 docbook_xml_dtd_45
|
2018-11-26 07:12:45 +00:00
|
|
|
];
|
2015-02-19 02:31:19 +00:00
|
|
|
|
2020-01-31 14:36:41 +00:00
|
|
|
buildInputs = [ libffi expat libxml2
|
|
|
|
] ++ lib.optionals withDocumentation [
|
|
|
|
docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42
|
|
|
|
];
|
2012-12-02 10:20:07 +00:00
|
|
|
|
|
|
|
meta = {
|
2020-01-31 00:29:21 +00:00
|
|
|
description = "Core Wayland window system code and protocol";
|
|
|
|
longDescription = ''
|
|
|
|
Wayland is a project to define a protocol for a compositor to talk to its
|
|
|
|
clients as well as a library implementation of the protocol.
|
|
|
|
The wayland protocol is essentially only about input handling and buffer
|
|
|
|
management, but also handles drag and drop, selections, window management
|
|
|
|
and other interactions that must go through the compositor (but not
|
|
|
|
rendering).
|
|
|
|
'';
|
2020-04-01 02:11:51 +01:00
|
|
|
homepage = "https://wayland.freedesktop.org/";
|
2020-01-31 00:29:21 +00:00
|
|
|
license = lib.licenses.mit; # Expat version
|
2015-06-01 20:01:53 +01:00
|
|
|
platforms = lib.platforms.linux;
|
2020-01-31 00:29:21 +00:00
|
|
|
maintainers = with lib.maintainers; [ primeos codyopel ];
|
2012-12-02 10:20:07 +00:00
|
|
|
};
|
2015-02-19 17:57:13 +00:00
|
|
|
|
|
|
|
passthru.version = version;
|
2012-12-02 10:20:07 +00:00
|
|
|
}
|