diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/gnome-builder/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/gnome-builder/default.nix | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix new file mode 100644 index 000000000000..da7b70cecd2a --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix @@ -0,0 +1,157 @@ +{ lib, stdenv +, ctags +, appstream-glib +, desktop-file-utils +, docbook_xsl +, docbook_xml_dtd_43 +, fetchurl +, flatpak +, gnome3 +, libgit2-glib +, gobject-introspection +, glade +, gspell +, gtk-doc +, gtk3 +, gtksourceview4 +, json-glib +, jsonrpc-glib +, libdazzle +, libpeas +, libportal +, libxml2 +, meson +, ninja +, ostree +, pcre +, pcre2 +, pkg-config +, python3 +, sysprof +, template-glib +, vala +, vte +, webkitgtk +, wrapGAppsHook +, dbus +, xvfb_run +}: + +stdenv.mkDerivation rec { + pname = "gnome-builder"; + version = "3.38.2"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "jFNco64yoZC1TZbTIHGVf+wBYYQHo2JRiMZFHngzYTs="; + }; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + docbook_xsl + docbook_xml_dtd_43 + gobject-introspection + gtk-doc + meson + ninja + pkg-config + python3 + python3.pkgs.wrapPython + wrapGAppsHook + ]; + + buildInputs = [ + ctags + flatpak + gnome3.devhelp + glade + libgit2-glib + libpeas + libportal + vte + gspell + gtk3 + gtksourceview4 + json-glib + jsonrpc-glib + libdazzle + libxml2 + ostree + pcre + pcre2 + python3 + sysprof + template-glib + vala + webkitgtk + ]; + + checkInputs = [ + dbus + xvfb_run + ]; + + outputs = [ "out" "devdoc" ]; + + prePatch = '' + patchShebangs build-aux/meson/post_install.py + ''; + + mesonFlags = [ + "-Dpython_libprefix=${python3.libPrefix}" + "-Ddocs=true" + + # Making the build system correctly detect clang header and library paths + # is difficult. Somebody should look into fixing this. + "-Dplugin_clang=false" + + # Do not try to check if appstream images exist + "-Dnetwork_tests=false" + ]; + + # Some tests fail due to being unable to find the Vte typelib, and I don't + # understand why. Somebody should look into fixing this. + doCheck = true; + + checkPhase = '' + export NO_AT_BRIDGE=1 + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --print-errorlogs + ''; + + pythonPath = with python3.pkgs; requiredPythonModules [ pygobject3 ]; + + preFixup = '' + buildPythonPath "$out $pythonPath" + gappsWrapperArgs+=( + --prefix PYTHONPATH : "$program_PYTHONPATH" + ) + + # Ensure that all plugins get their interpreter paths fixed up. + find $out/lib -name \*.py -type f -print0 | while read -d "" f; do + chmod a+x "$f" + done + ''; + + passthru.updateScript = gnome3.updateScript { packageName = pname; }; + + meta = with lib; { + description = "An IDE for writing GNOME-based software"; + longDescription = '' + Global search, auto-completion, source code map, documentation + reference, and other features expected in an IDE, but with a focus + on streamlining GNOME-based development projects. + + This package does not pull in the dependencies needed for every + plugin. If you find that a plugin you wish to use doesn't work, we + currently recommend running gnome-builder inside a nix-shell with + appropriate dependencies loaded. + ''; + homepage = "https://wiki.gnome.org/Apps/Builder"; + license = licenses.gpl3Plus; + maintainers = teams.gnome.members; + platforms = platforms.linux; + }; +} |