diff options
| author | Alexandru Croitor <alexandru.croitor@qt.io> | 2025-09-17 18:59:35 +0200 |
|---|---|---|
| committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2025-09-22 15:58:58 +0200 |
| commit | d6d832d0d28ac29807a04f6634a20e12649b440d (patch) | |
| tree | bcd27b430e4c61e2f0d8b2822c0d47725f700c91 /src/gui/util/qundostack.cpp | |
| parent | 3a2d7e743294e5554d58b8b2173fce3da2b0c6d5 (diff) | |
CMake: Opt in for NEW CMP0156 on WebAssembly
Otherwise duplicate symbol errors occur when -sMAIN_MODULE is passed
to the executable and a static library is linked multiple times into
the executable, which is common in Qt builds, due to how qt plugin
propagation causes link cycles.
Note that having CMP0156 set to NEW relies on CMake having proper
support for de-duplication of libraries when targeting Emscripten /
WebAssembly, which is only being considered to be added in CMake
4.2+, which as of now is not released yet.
For earlier CMake versions, for CMP0156 to apply properly, a project
can workaround it by setting
set(CMAKE_CXX_PLATFORM_LINKER_ID LLD)
set(CMAKE_CXX_LINK_LIBRARIES_PROCESSING ORDER=REVERSE DEDUPLICATION=ALL)
in the project manually, even though that is not supported by CMake
itself, and relies on CMake internals that might change between
versions.
Pick-to: 6.8 6.9 6.10
Task-number: QTBUG-140211
Change-Id: Iece0f6893bbd0528e83c5cdbeddd29a51ff35991
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/gui/util/qundostack.cpp')
0 files changed, 0 insertions, 0 deletions
