ninja-build / ninja

a small build system with a focus on speed

Home Page:https://ninja-build.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

1.12: qtwebengine-everywhere-opensource-src-5.15.13 build broken

0-wiz-0 opened this issue · comments

I'm not sure yet if this is a bug in ninja or the ninja generator, but I don't know enough about this, so let's start here.

My observation is that after updating ninja in pkgsrc (called ninja-build there) to 1.12.0, the build of qtwebengine-everywhere-opensource-src-5.15.13 broke. A (probably generated) header file is not found:

In file included from ../../3rdparty/chromium/content/browser/appcache/appcache_internals_ui.cc:25:
../../3rdparty/chromium/content/public/browser/browser_context.h:21:10: fatal error: components/spellcheck/spellcheck_buildflags.h: No such file or directory
   21 | #include "components/spellcheck/spellcheck_buildflags.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

With everything else the same but using ninja 1.11.1 instead, the build succeeds.

The distfile is 300MB, the codebase is huge, and I don't even know what generates the ninja files, so any help is very welcome.

Seems I am affected also:

dev-build/ninja
Installed versions: 1.12.0^t{tbz2}(08:35:14 16.04.24)(-doc -test)

In file included from ../../../../../qtwebengine-everywhere-src-6.7.0/src/3rdparty/chromium/content/browser/aggregation_service/aggregation_service.cc:9:
../../../../../qtwebengine-everywhere-src-6.7.0/src/3rdparty/chromium/content/public/browser/browser_context.h:20:10: fatal error: components/spellcheck/spellcheck_buildflags.h: No such file or directory
20 | #include "components/spellcheck/spellcheck_buildflags.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

The patch from Qt upstream seems to work:

--- src/3rdparty/chromium/content/browser/BUILD.gn.orig        2023-02-27 18:57:08.000000000 +0000
+++ src/3rdparty/chromium/content/browser/BUILD.gn
@@ -36,6 +36,7 @@ jumbo_static_library("devtools_protocol"

   deps = [
     "//base",
+    "//components/spellcheck:buildflags",
     "//content/browser/devtools:devtools_background_services_proto",
     "//content/browser/devtools:protocol_sources",
     "//content/common:buildflags",

Yeah this is a chromium issue. Ninja 1.12.0 builds in a different order and there was a missing dependency.