Details
-
Bug
-
Resolution: Won't Do
-
P3: Somewhat important
-
None
-
5.0.0
-
None
-
Linux/Mac
Description
WebKit is using so called *AllInOne.cpp files for including several other cpp files. This is done to build a single object file for several cpp files and by this reducing the static library size. For the QtWebKit port we need to ifdef out a few of these included cpp files but we can't delete them, because they are required for other pors.
The problem is, that whenever such an include statement contains a filename that is also part of the SOURCES list in the pro file, the file will be removed from the SOURCES list in the generated Makefile.
Please see the attached project:
- Just untar it and execute qmake.
- check the SOURCES and the OBJECTS sections in the Makefile.
Unable to render embedded object: File (The attached sample is not supposed to compile, it only serves the purpose of showing the bug in qmake) not found.
I understand that this behavior might have been added on purpose as an optimization.
But i consider it rather harmful, because qmake does not respect ifdef statements. And therefore will remove a file from the SOURCES section, even if it is "ifdefed out" in the cpp file.
Attachments
Issue Links
- is duplicated by
-
QTBUG-57572 QMake doesn't treat source files as source files if it sees them in include
- Closed
- relates to
-
QTBUG-90801 QMake: if you #include a C file from another C file, the original file no make target is created
- Closed
-
QTBUG-11923 qmake ignores preprocessor conditional inclusion
- Open