Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.4.0 FF
-
None
Description
- Given an existing build of qtbase.
- When modifying qbuffer.cpp.
- Then a second ninja tst_qbuffer rebuilds all QtCore TUs that #include the moc file (= all)
To reproduce:
$ path/to/srcdir/configure ...
$ ninja src/all
$ ninja tst_qbuffer
$ echo >> path/to/srcdir/src/corelib/io/qbuffer.cpp
$ ninja tst_qbuffer
(rebuilds qbuffer.o in bootstrap, re-links libbootstrap.a, moc, rebuilds qbuffer.o in QtCore, relinks Qt6Core, relinks tst_qbuffer)
(as expected)
$ echo >> path/to/srcdir/tests/auto/corelib/io/qbuffer/tst_qbuffer.cpp
$ ninja tst_qbuffer
(rebuilds all of QtCore's .o's)
(expected: only rebuilds tst_qbuffer)
I don't know whether this is a moc problem or an automoc one. In any case, I'd expect that the moc files are left unchanged if their re-writing would not change their content.
Environment:
- Ubuntu 20.04
- cmake 3.21.1
- local branch off of 344e0e7141667686a7e093aa76441bf2c43b6633
$ cat config.opt -opensource -confirm-license -release -force-debug-info -separate-debug-info -c++std c++2a -developer-build -sctp -pch -sanitize address -sanitize undefined
Attachments
Issue Links
- duplicates
-
QTBUG-92269 Build claims to be done when it isn't, unnecessary rebuilds of Core after touching bootstrap source files
-
- Closed
-
- relates to
-
QTBUG-95099 [FTBFS] Qt6CoreToolsTargets.cmake not found with -DQT_FORCE_FIND_TOOLS=ON
-
- Closed
-
-
QTBUG-99683 Make it possible to build the tools in a non-cross-compilation build when QT_FORCE_FIND_TOOLS is also set
-
- Closed
-