nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
Jonathan Ringer 9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00

184 lines
3.2 KiB
Nix

{ stdenv
, fetchurl
, perl
, python3
, ruby
, bison
, gperf
, cmake
, ninja
, pkg-config
, gettext
, gobject-introspection
, libnotify
, gnutls
, libgcrypt
, gtk3
, wayland
, libwebp
, enchant2
, xorg
, libxkbcommon
, epoxy
, at-spi2-core
, libxml2
, libsoup
, libsecret
, libxslt
, harfbuzz
, libpthreadstubs
, pcre
, nettle
, libtasn1
, p11-kit
, libidn
, libedit
, readline
, libGL
, libGLU
, libintl
, openjpeg
, enableGeoLocation ? true
, geoclue2
, sqlite
, enableGLES ? true
, gst-plugins-base
, gst-plugins-bad
, woff2
, bubblewrap
, libseccomp
, systemd
, xdg-dbus-proxy
, substituteAll
, glib
}:
assert enableGeoLocation -> geoclue2 != null;
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "webkitgtk";
version = "2.30.3";
outputs = [ "out" "dev" ];
separateDebugInfo = stdenv.isLinux;
src = fetchurl {
url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
sha256 = "0zsy3say94d9bhaan0l6mfr59z03a5x4kngyy8b2i20n77q19skd";
};
patches = optionals stdenv.isLinux [
(substituteAll {
src = ./fix-bubblewrap-paths.patch;
inherit (builtins) storeDir;
})
./libglvnd-headers.patch
];
preConfigure = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
# Ignore gettext in cmake_prefix_path so that find_program doesn't
# pick up the wrong gettext. TODO: Find a better solution for
# this, maybe make cmake not look up executables in
# CMAKE_PREFIX_PATH.
cmakeFlags+=" -DCMAKE_IGNORE_PATH=${getBin gettext}/bin"
'';
nativeBuildInputs = [
bison
cmake
gettext
gobject-introspection
gperf
ninja
perl
pkg-config
python3
ruby
glib # for gdbus-codegen
] ++ stdenv.lib.optionals stdenv.isLinux [
wayland # for wayland-scanner
];
buildInputs = [
at-spi2-core
enchant2
epoxy
gnutls
gst-plugins-bad
gst-plugins-base
harfbuzz
libGL
libGLU
libgcrypt
libidn
libintl
libnotify
libpthreadstubs
libsecret
libtasn1
libwebp
libxkbcommon
libxml2
libxslt
nettle
openjpeg
p11-kit
pcre
sqlite
woff2
] ++ (with xorg; [
libXdamage
libXdmcp
libXt
libXtst
]) ++ optionals stdenv.isDarwin [
libedit
readline
] ++ optionals stdenv.isLinux [
bubblewrap
libseccomp
systemd
wayland
xdg-dbus-proxy
] ++ optional enableGeoLocation geoclue2;
propagatedBuildInputs = [
gtk3
libsoup
];
cmakeFlags = [
"-DENABLE_INTROSPECTION=ON"
"-DPORT=GTK"
"-DUSE_LIBHYPHEN=OFF"
"-DUSE_WPE_RENDERER=OFF"
] ++ optionals stdenv.isDarwin [
"-DENABLE_GRAPHICS_CONTEXT_3D=OFF"
"-DENABLE_GTKDOC=OFF"
"-DENABLE_MINIBROWSER=OFF"
"-DENABLE_OPENGL=OFF"
"-DENABLE_QUARTZ_TARGET=ON"
"-DENABLE_VIDEO=ON"
"-DENABLE_WEBGL=OFF"
"-DENABLE_WEB_AUDIO=OFF"
"-DENABLE_X11_TARGET=OFF"
"-DUSE_ACCELERATE=0"
"-DUSE_SYSTEM_MALLOC=ON"
] ++ optional (stdenv.isLinux && enableGLES) "-DENABLE_GLES2=ON";
postPatch = ''
patchShebangs .
'';
meta = {
description = "Web content rendering engine, GTK port";
homepage = "https://webkitgtk.org/";
license = licenses.bsd2;
platforms = platforms.linux ++ platforms.darwin;
maintainers = teams.gnome.members;
};
}