| # |
| # 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|winrt: \ |
| 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=0x0601 _WIN32_WINNT=0x0601 |
| |
| # By default, the following features should not be used in Qt's own |
| # implementation, so declare them invisible to Qt modules. |
| DEFINES += QT_NO_LINKED_LIST # QLinkedList |
| |
| 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}.") |
| } |