1
0
Fork 0
mirror of https://github.com/yshui/picom.git synced 2024-11-18 13:55:36 -05:00
picom/package.nix
Yuxuan Shui 5302d0edbe
tools: add a rudimentary make-a-release script
To make mistake less likely. This is very much untested and subject to
change. We will find out how well this works in next picom release.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-11-13 09:38:40 +00:00

109 lines
2 KiB
Nix

{ asciidoctor
, dbus
, docbook_xml_dtd_45
, docbook_xsl
, fetchFromGitHub
, clang-tools_18
, llvmPackages_18
, lib
, libconfig
, libdrm
, libev
, libGL
, libepoxy
, libX11
, libxcb
, libxdg_basedir
, libXext
, libxml2
, libxslt
, makeWrapper
, meson
, ninja
, pcre2
, pixman
, pkg-config
, python3
, stdenv
, uthash
, xcbutil
, xcbutilimage
, xcbutilrenderutil
, xorgproto
, xwininfo
, withDebug ? false
, git-ignore-nix
, devShell ? false
}:
let
versionFromMeson = s: builtins.head (builtins.match "project\\('picom',.*version: *'([0-9.]*)'.*" s);
in
stdenv.mkDerivation (finalAttrs: {
pname = "picom";
version = versionFromMeson (builtins.readFile ./meson.build);
src = git-ignore-nix.lib.gitignoreSource ./.;
strictDeps = true;
nativeBuildInputs = [
asciidoctor
docbook_xml_dtd_45
docbook_xsl
makeWrapper
meson
ninja
pkg-config
] ++ (lib.optional devShell [
clang-tools_18
llvmPackages_18.clang-unwrapped.python
llvmPackages_18.libllvm
(python3.withPackages (ps: with ps; [
xcffib pip dbus-next pygit2
]))
]);
buildInputs = [
dbus
libconfig
libdrm
libev
libGL
libepoxy
libX11
libxcb
libxdg_basedir
libXext
libxml2
libxslt
pcre2
pixman
uthash
xcbutil
xcbutilimage
xcbutilrenderutil
xorgproto
];
# Use "debugoptimized" instead of "debug" so perhaps picom works better in
# normal usage too, not just temporary debugging.
mesonBuildType = if withDebug then "debugoptimized" else "release";
dontStrip = withDebug;
mesonFlags = [
"-Dwith_docs=true"
];
installFlags = [ "PREFIX=$(out)" ];
# In debug mode, also copy src directory to store. If you then run `gdb picom`
# in the bin directory of picom store path, gdb finds the source files.
postInstall = ''
wrapProgram $out/bin/picom-trans \
--prefix PATH : ${lib.makeBinPath [ xwininfo ]}
'' + lib.optionalString withDebug ''
cp -r ../src $out/
'';
})