depot/third_party/nixpkgs/pkgs/by-name/mi/miracle-wm/package.nix
Default email 5ca88bfbb9 Project import generated by Copybara.
GitOrigin-RevId: 9f918d616c5321ad374ae6cb5ea89c9e04bf3e58
2024-07-31 10:19:44 +00:00

105 lines
2.3 KiB
Nix

{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
nixosTests,
boost,
cmake,
glib,
glm,
gtest,
libevdev,
libglvnd,
libnotify,
libuuid,
libxkbcommon,
mesa,
mir,
nlohmann_json,
pcre2,
pkg-config,
yaml-cpp,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "miracle-wm";
version = "0.3.0";
src = fetchFromGitHub {
owner = "mattkae";
repo = "miracle-wm";
rev = "v${finalAttrs.version}";
hash = "sha256-Ss93yI33e+XFjbKedbBjmYHkjPeWUWxEStwNTgTszA4=";
};
postPatch =
''
substituteInPlace session/usr/local/share/wayland-sessions/miracle-wm.desktop.in \
--replace-fail '@CMAKE_INSTALL_FULL_BINDIR@/miracle-wm' 'miracle-wm'
''
+ lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
substituteInPlace CMakeLists.txt \
--replace-fail 'add_subdirectory(tests/)' ""
'';
strictDeps = true;
# Source has a path "session/usr/local/...", don't break references to that
dontFixCmake = true;
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
boost
glib
glm
libevdev
libglvnd
libnotify
libuuid
libxkbcommon
mesa # gbm.h
mir
nlohmann_json
pcre2
yaml-cpp
];
checkInputs = [ gtest ];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
checkPhase = ''
runHook preCheck
./bin/miracle-wm-tests
runHook postCheck
'';
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
providedSessions = [ "miracle-wm" ];
tests.vm = nixosTests.miracle-wm;
};
meta = with lib; {
description = "Tiling Wayland compositor based on Mir";
longDescription = ''
miracle-wm is a Wayland compositor based on Mir. It features a tiling window manager at its core, very much in
the style of i3 and sway. The intention is to build a compositor that is flashier and more feature-rich than
either of those compositors, like swayfx.
See the user guide for info on how to use miracle-wm: https://github.com/mattkae/miracle-wm/blob/v${finalAttrs.version}/USERGUIDE.md
'';
homepage = "https://github.com/mattkae/miracle-wm";
license = licenses.gpl3Only;
mainProgram = "miracle-wm";
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.linux;
};
})