Details
-
Bug
-
Resolution: Done
-
P2: Important
-
None
-
6.0.0
Description
For example
mkspecs/common/g++-win32.conf # (MinGW)
contains various
DEFINES, QMAKE_COMPILER_DEFINES, QMAKE_LFLAGS_EXCEPTIONS_ON
etc flags which might not be ported to CMake, which leads to different compilation flags when building with CMake.
I think the easiest would be to pick some .cpp file in Gui like image\qpixmapcache.cpp, and compare the compile and linker flags between a qmake and equivalent CMake platform configuration
Add the appropriate missing definition flags to QT_DEFAULT_PLATFORM_DEFINITIONS in QtBuild.cmake.
Afaik these are public mkspec flags which are used also when compiling user code (customer code that uses Qt).
Public mkspec compile and link flags can be set on the Platform target in cmake/QtBaseGlobalTargets.cmake.
There might also be some missing flags that come from private qmake files like qt_module.prf, qt_common.prf, qt_plugin.prf, etc
The equivalent CMake targets are PlatformCommonInternal / PlatformModuleInternal / PlatformPluginInternal / PlatformToolInternal in cmake/QtInternalTargets.cmake.
Attachments
Issue Links
- relates to
-
QTBUG-85353 Figure out and consolidate location for setting internal warning flags
- Reported
-
QTBUG-85992 Make optimization flags consistent for Release and RelWithDebInfo in relation to qmake
- Closed
-
QTBUG-85757 Implement CMake equivalent for load(qt_app)
- Closed
-
QTBUG-84886 Fix remaining failing tests and enable enforcing successful test runs in the CI
- Closed
-
QTBUG-84461 gc_sections needs to be propagated from Core to other modules / executables in CMake configs
- Closed
-
QTBUG-86879 Cannot build Qt sources with Clang-10 on Ubuntu 18 when ASan is enabled
- Closed
-
QTBUG-75579 Replace platformdefs.h with CMake compile tests and remove mkspec concept
- Open