23b612e36f
GitOrigin-RevId: ae5c332cbb5827f6b1f02572496b141021de335f
160 lines
4.3 KiB
Nix
160 lines
4.3 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchFromGitLab
|
|
, fetchpatch
|
|
, testers
|
|
, cmake
|
|
, cmake-extras
|
|
, pkg-config
|
|
, wrapQtAppsHook
|
|
, gsettings-qt
|
|
, gtest
|
|
, libqtdbustest
|
|
, libqtdbusmock
|
|
, libuuid
|
|
, lomiri-api
|
|
, lomiri-app-launch
|
|
, lomiri-url-dispatcher
|
|
, lttng-ust
|
|
, mir
|
|
, process-cpp
|
|
, qtbase
|
|
, qtdeclarative
|
|
, qtsensors
|
|
, valgrind
|
|
, protobuf
|
|
, glm
|
|
, boost
|
|
, properties-cpp
|
|
, glib
|
|
, validatePkgConfig
|
|
, wayland
|
|
, xwayland
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
# Not regular qtmir, experimental support for Mir 2.x
|
|
# Currently following https://gitlab.com/ubports/development/core/qtmir/-/tree/personal/mariogrip/desktop-development
|
|
pname = "qtmir-mir2";
|
|
version = "0.7.2-unstable-2024-01-08";
|
|
|
|
src = fetchFromGitLab {
|
|
owner = "ubports";
|
|
repo = "development/core/qtmir";
|
|
rev = "ae0d87415d5c9ed2c4fd2284ba0807d23d564bb0";
|
|
hash = "sha256-fE8ttCC0FNavs91pASGGG7k7nKVg2lD3JK0WTmCA3gM=";
|
|
};
|
|
|
|
outputs = [
|
|
"out"
|
|
"dev"
|
|
];
|
|
|
|
patches = [
|
|
# Mir 2.15 compatibility patch
|
|
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/70 merged into branch
|
|
(fetchpatch {
|
|
name = "0001-qtmir-Update-for-Mir-2.15-removals.patch";
|
|
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/ead5cacd4d69094ab956627f4dd94ecaff1fd69e.patch";
|
|
hash = "sha256-hUUUnYwhNH3gm76J21M8gA5okaRd/Go03ZFJ4qn0JUo=";
|
|
})
|
|
|
|
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/72 merged in branch
|
|
(fetchpatch {
|
|
name = "0002-qtmir-Add-more-better-GNUInstallDirs-variables-usage.patch";
|
|
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/87e2cd31052ce15e9625c1327807a320ee5d12af.patch";
|
|
hash = "sha256-MTE9tHw+xJhraEO1up7dLg0UIcmfHXgWOeuyYrVu2wc=";
|
|
})
|
|
|
|
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/73 merged in branch
|
|
(fetchpatch {
|
|
name = "0003-qtmir-CMakeLists-Only-require-test-dependencies-when-building-tests.patch";
|
|
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/b7144e67bcbb4cfbd2283d5d05146fb22b7d8cd4.patch";
|
|
hash = "sha256-Afbj40MopztchDnk6fphTYk86YrQkiK8L1e/oXiL1Mw=";
|
|
})
|
|
|
|
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/74 merged in branch
|
|
(fetchpatch {
|
|
name = "0004-qtmir-CMakeLists-Drop-call-of-Qt-internal-macro.patch";
|
|
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/8f9c599a4dbc4cf35e289157fd0c82df55b9f8d9.patch";
|
|
hash = "sha256-SMAErXnlMtVleWRPgO4xuUI7gAAy6W18LxtgXgetRA4=";
|
|
})
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace CMakeLists.txt \
|
|
--replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" \
|
|
--replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/plugins/platforms" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}/platforms" \
|
|
|
|
substituteInPlace data/xwayland.qtmir.desktop \
|
|
--replace '/usr/bin/Xwayland' 'Xwayland'
|
|
'';
|
|
|
|
strictDeps = true;
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
glib # glib-compile-schemas
|
|
pkg-config
|
|
validatePkgConfig
|
|
wrapQtAppsHook
|
|
];
|
|
|
|
buildInputs = [
|
|
cmake-extras
|
|
boost
|
|
gsettings-qt
|
|
libuuid
|
|
lomiri-api
|
|
lomiri-app-launch
|
|
lomiri-url-dispatcher
|
|
lttng-ust
|
|
mir
|
|
process-cpp
|
|
protobuf
|
|
qtbase
|
|
qtdeclarative
|
|
qtsensors
|
|
valgrind
|
|
|
|
glm # included by mir header
|
|
wayland # mirwayland asks for this
|
|
properties-cpp # included by l-a-l header
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
# Needs Xwayland on PATH for desktop file, else launching X11 applications crashes qtmir
|
|
xwayland
|
|
];
|
|
|
|
checkInputs = [
|
|
gtest
|
|
libqtdbustest
|
|
libqtdbusmock
|
|
];
|
|
|
|
cmakeFlags = [
|
|
(lib.cmakeBool "NO_TESTS" (!finalAttrs.finalPackage.doCheck))
|
|
(lib.cmakeBool "WITH_MIR2" true)
|
|
];
|
|
|
|
postInstall = ''
|
|
glib-compile-schemas $out/share/glib-2.0/schemas
|
|
'';
|
|
|
|
# Tests currently unavailable when building with Mir2
|
|
doCheck = false;
|
|
|
|
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
|
|
|
meta = with lib; {
|
|
description = "QPA plugin to make Qt a Mir server";
|
|
homepage = "https://gitlab.com/ubports/development/core/qtmir";
|
|
license = licenses.lgpl3Only;
|
|
maintainers = teams.lomiri.members;
|
|
platforms = platforms.linux;
|
|
pkgConfigModules = [
|
|
"qtmirserver"
|
|
];
|
|
};
|
|
})
|