diff --git a/pkgs/desktops/lomiri/applications/morph-browser/default.nix b/pkgs/desktops/lomiri/applications/morph-browser/default.nix index 7b0b9d732ce4..f09374ba3f96 100644 --- a/pkgs/desktops/lomiri/applications/morph-browser/default.nix +++ b/pkgs/desktops/lomiri/applications/morph-browser/default.nix @@ -15,18 +15,21 @@ lomiri-ui-toolkit, mesa, pkg-config, - qqc2-suru-style, + qqc2-suru-style ? null, + qt5compat ? null, qtbase, qtdeclarative, - qtquickcontrols2, - qtsystems, + qtquickcontrols2 ? null, + qtsystems ? null, qttools, qtwebengine, wrapQtAppsHook, xvfb-run, + withDocumentation ? true, }: let + withQt6 = lib.strings.versionAtLeast qtbase.version "6"; listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix; in stdenv.mkDerivation (finalAttrs: { @@ -42,6 +45,8 @@ stdenv.mkDerivation (finalAttrs: { outputs = [ "out" + ] + ++ lib.optionals withDocumentation [ "doc" ]; @@ -55,16 +60,22 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace doc/CMakeLists.txt \ --replace-fail 'COMMAND ''${QDOC_BIN} -qt5' 'COMMAND ''${QDOC_BIN}' + '' + + lib.optionalString (!withDocumentation) '' + substituteInPlace CMakeLists.txt \ + --replace-fail 'add_subdirectory(doc)' 'message(WARNING "[Nix] Not building documentation")' ''; - strictDeps = true; + strictDeps = !withQt6; nativeBuildInputs = [ cmake gettext pkg-config - qttools # qdoc wrapQtAppsHook + ] + ++ lib.optionals withDocumentation [ + qttools # qdoc ]; buildInputs = [ @@ -79,9 +90,20 @@ stdenv.mkDerivation (finalAttrs: { lomiri-content-hub lomiri-ui-extras lomiri-ui-toolkit + ] + ++ lib.optionals (!withQt6) [ + # Not ported to Qt6 yet, explicitly disabled in the Qt6 build + # https://gitlab.com/ubports/development/core/morph-browser/-/blob/4f20c943e78694818d1b80b5563bd89901230e75/src/app/browserapplication.cpp#L196 qqc2-suru-style + + # Folded into qtdeclarative in Qt6 qtquickcontrols2 + + # Will prolly want this in the future, but needs porting to Qt6 qtsystems + ] + ++ lib.optionals withQt6 [ + qt5compat ]; nativeCheckInputs = [ @@ -92,11 +114,14 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "CLICK_MODE" false) - (lib.cmakeBool "ENABLE_QT6" (lib.strings.versionAtLeast qtbase.version "6")) - (lib.cmakeBool "WERROR" true) + (lib.cmakeBool "ENABLE_QT6" withQt6) + (lib.cmakeBool "WERROR" (!withQt6)) # Porting WIP ]; - doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; + doCheck = + stdenv.buildPlatform.canExecute stdenv.hostPlatform + # Hard dependency on Qt5 still + && (!withQt6); disabledTests = [ # Don't care about linter failures @@ -115,6 +140,8 @@ stdenv.mkDerivation (finalAttrs: { lomiri-ui-toolkit qtwebengine qtdeclarative + ] + ++ lib.optionals (!withQt6) [ qtquickcontrols2 qtsystems ] @@ -132,7 +159,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = gitUpdater { }; - tests = { + tests = lib.optionalAttrs (!withQt6) { # Test of morph-browser itself standalone = nixosTests.morph-browser; diff --git a/pkgs/desktops/lomiri/default.nix b/pkgs/desktops/lomiri/default.nix index 97614c9f68d5..032c15476d72 100644 --- a/pkgs/desktops/lomiri/default.nix +++ b/pkgs/desktops/lomiri/default.nix @@ -16,6 +16,12 @@ let inherit (self) callPackage; in { + #### Core Apps + morph-browser = callPackage ./applications/morph-browser { + # get_target_property() called with non-existent target "Qt6::qdoc". + withDocumentation = !useQt6; + }; + #### Data lomiri-schemas = callPackage ./data/lomiri-schemas { }; lomiri-sounds = callPackage ./data/lomiri-sounds { }; @@ -62,7 +68,6 @@ let lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { }; lomiri-system-settings = callPackage ./applications/lomiri-system-settings/wrapper.nix { }; lomiri-terminal-app = callPackage ./applications/lomiri-terminal-app { }; - morph-browser = callPackage ./applications/morph-browser { }; teleports = callPackage ./applications/teleports { }; #### Data