a585ce7056
When trying to build qt3d examples with qmake and MinGW in the CI, compilation would fail with errors like In file included from C:/MINGW1120/mingw64/x86_64-w64-mingw32/include/windows.h:72, from C:\Users\qt\work\qt\qt3d\examples\qt3d\simple-cpp\main.cpp:63 include/winuser.h:2965:72: error: 'POINTER_INPUT_TYPE' was not declared in this scope What happens is that calling qmake on examples.pro loads qt3d/.qmake.conf, which then loads qt_build_config.prf which then defines the following definitions: mingw: DEFINES += WINVER=0x0601 _WIN32_WINNT=0x0601 This limits usage of Windows API up to Windows 7, with later APIs being unavailable. Most .qmake.conf files were removed in qt repos, but We didn't remove the .qmake.conf file (fb656c036d
) for qt3d because it's supposed to be buildable with CMake + Qt 6 as well as qmake + Qt 5. Bump the defines to the same Windows 10 version we use everywhere else when building with CMake. Amends6652bf2353
Relates tod57a7c4171
Relates tofb656c036d
Pick-to: 6.2 6.3 Task-number: COIN-762 Task-number: QTBUG-92271 Change-Id: I833dfb6b0832d90a76d05ea14cd3807cb0d67ca9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
154 lines
4.8 KiB
Plaintext
154 lines
4.8 KiB
Plaintext
#
|
|
# W A R N I N G
|
|
# -------------
|
|
#
|
|
# This file is not part of the Qt API. It exists purely as an
|
|
# implementation detail. It may change from version to version
|
|
# without notice, or even be removed.
|
|
#
|
|
# We mean it.
|
|
#
|
|
|
|
!contains(QMAKE_INTERNAL_INCLUDED_FILES, .*qmodule\\.pri) {
|
|
QMAKE_QT_MODULE = $$[QT_HOST_DATA/get]/mkspecs/qmodule.pri
|
|
!exists($$QMAKE_QT_MODULE)|!include($$QMAKE_QT_MODULE, "", true) {
|
|
debug(1, "Cannot load qmodule.pri!")
|
|
} else {
|
|
debug(1, "Loaded qmodule.pri from ($$QMAKE_QT_MODULE)")
|
|
}
|
|
} else {
|
|
debug(1, "Not loading qmodule.pri twice")
|
|
}
|
|
|
|
PRECOMPILED_DIR = .pch
|
|
OBJECTS_DIR = .obj
|
|
MOC_DIR = .moc
|
|
RCC_DIR = .rcc
|
|
UI_DIR = .uic
|
|
TRACEGEN_DIR = .tracegen
|
|
QMLCACHE_DIR = .qmlcache
|
|
LRELEASE_DIR = .qm
|
|
intel_icl {
|
|
# ICL 14.0 has a bug that makes it not find #includes in dirs starting with .
|
|
MOC_DIR = tmp/moc
|
|
RCC_DIR = tmp/rcc
|
|
UI_DIR = tmp/uic
|
|
}
|
|
|
|
QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR
|
|
|
|
load(qt_prefix_build_check)
|
|
|
|
# force_independent can be set externally. prefix_build not.
|
|
qtIsPrefixBuild($$[QT_HOST_DATA]): \
|
|
CONFIG += prefix_build force_independent
|
|
|
|
!build_pass:!isEmpty(_QMAKE_SUPER_CACHE_):force_independent {
|
|
# When doing a -prefix build of top-level qt5/qt.pro, we need to announce
|
|
# this repo's output dir to the other repos.
|
|
MODULE_BASE_OUTDIR = $$shadowed($$dirname(_QMAKE_CONF_))
|
|
!contains(QTREPOS, $$MODULE_BASE_OUTDIR): \
|
|
cache(QTREPOS, add super, MODULE_BASE_OUTDIR)
|
|
# This repo's module pris' location needs to be made known to qmake.
|
|
isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR
|
|
modpath = $$MODULE_QMAKE_OUTDIR/mkspecs/modules
|
|
!contains(QMAKEMODULES, $$modpath): \
|
|
cache(QMAKEMODULES, add super, modpath)
|
|
unset(modpath)
|
|
}
|
|
|
|
defineTest(qtSetQmlPath) {
|
|
!qtConfig(static)|host_build|no_import_scan: \
|
|
return()
|
|
deps = $$replace(QT, -private$, _private)
|
|
deps = $$resolve_depends(deps, "QT.")
|
|
!contains(deps, qml): \
|
|
return()
|
|
|
|
isEmpty(QTREPOS): \
|
|
QTREPOS = $$shadowed($$dirname(_QMAKE_CONF_))
|
|
for (qrep, QTREPOS): \
|
|
exists($$qrep/qml): \
|
|
QMLPATHS += $$qrep/qml
|
|
export(QMLPATHS)
|
|
}
|
|
|
|
# Apply extra compiler flags passed via configure last.
|
|
CONFIG = qt_build_extra $$CONFIG
|
|
|
|
# Don't actually try to install anything in non-prefix builds.
|
|
# This is much easier and safer than making every single INSTALLS
|
|
# assignment conditional.
|
|
!prefix_build: \
|
|
CONFIG += qt_clear_installs
|
|
|
|
cross_compile: \
|
|
CONFIG += force_bootstrap
|
|
|
|
android|uikit: \
|
|
CONFIG += builtin_testdata
|
|
|
|
# Prevent warnings about object files without any symbols
|
|
macos: CONFIG += no_warn_empty_obj_files
|
|
|
|
# Make sure the doc features are loaded last since they depend on other
|
|
# features setting up things like includepaths to find everything.
|
|
CONFIG = prepare_docs qt_docs_targets $$CONFIG
|
|
|
|
CONFIG += \
|
|
utf8_source \
|
|
create_prl link_prl \
|
|
no_private_qt_headers_warning QTDIR_build \
|
|
qt_example_installs \
|
|
# Qt modules get compiled without exceptions enabled by default.
|
|
# However, testcases should be still built with exceptions.
|
|
exceptions_off testcase_exceptions
|
|
|
|
# Under Windows, this is neither necessary (transitive deps are automatically
|
|
# resolved), nor functional (.res files end up in .prl files and break things).
|
|
unix: CONFIG += explicitlib
|
|
|
|
# By default we want tests on macOS to be built as standalone executables
|
|
macos: CONFIG += testcase_no_bundle
|
|
|
|
# Override MinGW's definition in _mingw.h
|
|
mingw: DEFINES += WINVER=0x0A00 _WIN32_WINNT=0x0A00
|
|
|
|
defineTest(qtBuildPart) {
|
|
bp = $$eval($$upper($$section(_QMAKE_CONF_, /, -2, -2))_BUILD_PARTS)
|
|
isEmpty(bp): bp = $$QT_BUILD_PARTS
|
|
contains(bp, $$1): return(true)
|
|
return(false)
|
|
}
|
|
|
|
defineTest(qtNomakeTools) {
|
|
qtBuildPart(tools): return()
|
|
for (d, 1) {
|
|
$${d}.CONFIG += no_default_target no_default_install
|
|
export($${d}.CONFIG)
|
|
}
|
|
}
|
|
|
|
# This overloads the same function from qt_functions.prf.
|
|
# This is not in qt_module.prf, as that gets loaded too late.
|
|
defineTest(qtConfig) {
|
|
modules = $$QT $$QT_PRIVATE $$QT_FOR_PRIVATE $$QT_FOR_CONFIG
|
|
modules ~= s,-private$,_private,g
|
|
modules = $$resolve_depends(modules, "QT.", ".depends")
|
|
isEmpty(MODULE): \
|
|
MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0)
|
|
exists($$OUT_PWD/qt$${MODULE}-config.pri) {
|
|
include($$OUT_PWD/qt$${MODULE}-config.pri)
|
|
modules += $${MODULE} $${MODULE}_private
|
|
}
|
|
modules += global global_private
|
|
modules = $$reverse(modules)
|
|
for (module, modules) {
|
|
contains(QT.$${module}.enabled_features, $$1): \
|
|
return(true)
|
|
contains(QT.$${module}.disabled_features, $$1): \
|
|
return(false)
|
|
}
|
|
error("Could not find feature $${1}.")
|
|
}
|