[Development] two questions about the build system of Qt

Thiago Macieira thiago.macieira at intel.com
Tue Nov 29 21:14:55 CET 2016


On terça-feira, 29 de novembro de 2016 13:53:41 PST Cor-Paul Bezemer wrote:
> 1. In the Makefile in qtbase/tests/auto/other/qaccessibilitylinux, the
> target cache_adaptor.h has no dependencies on the header files (e.g.
> Qtcore/QObject) that it uses. Hence, if those header files change,
> cache_adaptor.h (and therefore cache_adaptor.cpp) are never rebuilt, which
> will leave .obj/cache_adaptor.o outdated. Or am I overlooking something?

That file is generated during the build. It's created by qdbusxml2cpp by 
parsing src/3rdparty/atspi2/xml/Cache.xml. Since it's generated, it doesn't 
exist yet when qmake scans the source files for the dependencies. And we don't 
update that when compiling or when updating the Makefile.

> 2. The target for .obj/qgrayraster.o in the Makefile in qtbase/src/gui has
> a dependency on .pch/Qt5Gui.gch/c, but we noticed that during the build,
> the .pch/Qt5Gui.gch/c++ file is also read. Is there a reason why gcc would
> read the c++ file during the build? E.g. because c and c++ code is being
> mixed? We do not observe similar behaviour (i.e., the c file being read by
> g++) for targets that are compiled from .cpp files.

I can confirm it with strace. Seems like a bug because there is no C++ code 
mixed in for that particular compilation. You should check with GCC folks.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list