summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_module_headers.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features/qt_module_headers.prf')
-rw-r--r--mkspecs/features/qt_module_headers.prf305
1 files changed, 0 insertions, 305 deletions
diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf
deleted file mode 100644
index 9541a560eb..0000000000
--- a/mkspecs/features/qt_module_headers.prf
+++ /dev/null
@@ -1,305 +0,0 @@
-#
-# 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.
-#
-
-load(qt_build_paths)
-
-!build_pass:git_build {
- qtPrepareLibExecTool(QMAKE_SYNCQT, syncqt, , system)
- minimal_syncqt {
- QMAKE_SYNCQT += -minimal $$QMAKE_SYNCQT_OPTIONS
- } else {
- qtConfig(private_tests): \ # -developer-build
- QMAKE_SYNCQT += -check-includes
- }
- for(mod, MODULE_INCNAME): \
- QMAKE_SYNCQT += -module $$mod
- QMAKE_SYNCQT += \
- -version $$VERSION -outdir $$system_quote($$MODULE_BASE_OUTDIR) \
- -builddir $$system_quote($$REAL_MODULE_BASE_OUTDIR) $$MODULE_SYNCQT_DIR
- !silent: message($$QMAKE_SYNCQT)
- system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT")
-
- !minimal_syncqt {
- include-distclean.commands = \
- $$QMAKE_DEL_TREE $$shell_quote($$shell_path($$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME))
- QMAKE_EXTRA_TARGETS += include-distclean
- DISTCLEAN_DEPS += include-distclean
- }
-}
-
-# Pre-generated headers in the source tree (tar-ball) and
-# - shadow build or
-# - non-shadow non-prefix build of a module which is not qtbase
-# (because the build-time generated headers all end up in qtbase).
-!git_build: \
- if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \
- |if(!prefix_build:!equals(MODULE_BASE_INDIR, $$[QT_HOST_PREFIX]))): \
- CONFIG += split_incpath
-
-# To avoid stuffing the code with repetetive conditionals,
-# we parametrize the names of the variables we assign to.
-
-# Internal modules have no private part - they *are* private.
-!internal_module: \
- prv = _PRIVATE
-
-# When doing a framework build with a prefix, the module needs to point
-# into the frameworks' Headers dirs directly, as no shared include/ dir
-# is installed.
-# However, during the build, it needs to point into the shared include/
-# dir, as the framework doesn't even exist yet. For bootstrapped modules
-# which borrow headers from "proper" modules, this situation persists
-# even beyond the module's own build. The implication of this is that
-# qmake might never use a framework's headers in a non-prefix build,
-# as there is no separate set of .pri files for users outside Qt.
-# Borrowing is assumed to happen from modules which, in a framework build,
-# actually are frameworks.
-prefix_build:module_frameworks: \
- fwd = _FWD
-# When using a split include path during the build, the installed module's
-# include path is also structurally different from that in the build dir.
-prefix_build:split_incpath: \
- sfwd = _FWD
-
-ibase = \$\$QT_MODULE_INCLUDE_BASE
-MODULE$${fwd}_INCLUDES = $$ibase
-split_incpath {
- bibase = $$val_escape(MODULE_BASE_OUTDIR)/include
- MODULE$${sfwd}_INCLUDES += $$bibase
-}
-for(mod, MODULE_INCNAME) {
- mibase = $$ibase/$$mod
- MODULE$${fwd}_INCLUDES += $$mibase
- MODULE$${fwd}$${prv}_INCLUDES += $$mibase/$$VERSION $$mibase/$$VERSION/$$mod
- split_incpath {
- mbibase = $$bibase/$$mod
- MODULE$${sfwd}_INCLUDES += $$mbibase
- generated_privates: \
- MODULE$${sfwd}$${prv}_INCLUDES += $$mbibase/$$VERSION $$mbibase/$$VERSION/$$mod
- }
- prefix_build:module_frameworks {
- mfbase = \$\$QT_MODULE_LIB_BASE/$${mod}$${QT_LIBINFIX}.framework/Headers
- MODULE_INCLUDES += $$mfbase
- MODULE$${prv}_INCLUDES += $$mfbase/$$VERSION $$mfbase/$$VERSION/$$mod
- }
-}
-MODULE_INCLUDES += $$MODULE_AUX_INCLUDES
-MODULE_PRIVATE_INCLUDES += $$MODULE_PRIVATE_AUX_INCLUDES
-
-minimal_syncqt: return()
-
-defineTest(syncQtResolve) {
- out =
- for (f, SYNCQT.$$1): \
- out += $$absolute_path($$f, $$2)
- SYNCQT.$$1 = $$out
- export(SYNCQT.$$1)
-}
-
-#load up the headers info
-git_build: \
- INC_PATH = $$MODULE_BASE_OUTDIR
-else: \
- INC_PATH = $$MODULE_BASE_INDIR
-include($$INC_PATH/include/$$MODULE_INCNAME/headers.pri, "", true)
-syncQtResolve(HEADER_FILES, $$_PRO_FILE_PWD_)
-syncQtResolve(PRIVATE_HEADER_FILES, $$_PRO_FILE_PWD_)
-syncQtResolve(QPA_HEADER_FILES, $$_PRO_FILE_PWD_)
-syncQtResolve(GENERATED_HEADER_FILES, $$INC_PATH/include/$$MODULE_INCNAME)
-!lib_bundle: \ # Headers are embedded into the bundle, so don't install them separately.
- CONFIG += qt_install_headers
-
-alien_syncqt: return()
-
-MODULE_INC_OUTDIR = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME
-
-isEmpty(MODULE_CFG_FILE): MODULE_CFG_FILE = qt$${MODULE}-config
-exists($$OUT_PWD/$${MODULE_CFG_FILE}.h) {
- fwd_rel = $$relative_path($$OUT_PWD, $$REAL_MODULE_BASE_OUTDIR)
- SYNCQT.INJECTIONS += \
- $$fwd_rel/$${MODULE_CFG_FILE}.h:$${MODULE_CFG_FILE}.h \
- $$fwd_rel/$${MODULE_CFG_FILE}_p.h:$$MODULE_VERSION/$$MODULE_INCNAME/private/$${MODULE_CFG_FILE}_p.h
-}
-
-for (injection, SYNCQT.INJECTIONS) {
- injects = $$split(injection, :)
- dst_hdr = $$absolute_path($$member(injects, 0), $$REAL_MODULE_BASE_OUTDIR)
- ofwd_hdr = $$member(injects, 1)
- fwd_hdr = $$replace(ofwd_hdr, ^\\^, )
- MAIN_FWD = $$MODULE_INC_OUTDIR/$$fwd_hdr
- MAIN_FWD_CONT = '$${LITERAL_HASH}include "$$relative_path($$dst_hdr, $$dirname(MAIN_FWD))"'
- write_file($$MAIN_FWD, MAIN_FWD_CONT)|error()
- equals(fwd_hdr, ofwd_hdr): touch($$MAIN_FWD, $$dst_hdr)
- !git_build: QMAKE_DISTCLEAN += $$MAIN_FWD
- !contains(ofwd_hdr, .*/private/.*): \
- SYNCQT.INJECTED_HEADER_FILES += $$dst_hdr
- else: \
- SYNCQT.INJECTED_PRIVATE_HEADER_FILES += $$dst_hdr
- injects = $$member(injects, 2, -1)
- for (inject, injects) {
- CLASS_FWD = $$MODULE_INC_OUTDIR/$$inject
- CLASS_FWD_CONT = '$${LITERAL_HASH}include "$$fwd_hdr"'
- write_file($$CLASS_FWD, CLASS_FWD_CONT)|error()
- touch($$CLASS_FWD, $$MAIN_FWD)
- !git_build: QMAKE_DISTCLEAN += $$CLASS_FWD
- SYNCQT.INJECTED_HEADER_FILES += $$CLASS_FWD
- }
-}
-
-autogen_warning = \
- "/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_INDIR). */"
-
-# Create a module master depends header
-MODULE_MASTER_DEPS_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$${MODULE_INCNAME}Depends
-!build_pass {
- MODULE_MASTER_DEPS_HEADER_CONT = $$autogen_warning
- MODULE_MASTER_DEPS_HEADER_CONT += "$${LITERAL_HASH}ifdef __cplusplus /* create empty PCH in C mode */"
- for(dep, MODULE_DEPENDS) {
- depname = $$eval(QT.$${dep}.master_header)
- isEmpty(depname): \
- depname = $$eval(QT.$${dep}.name)
- MODULE_MASTER_DEPS_HEADER_CONT += "$${LITERAL_HASH}include <$$depname/$$depname>"
- }
- MODULE_MASTER_DEPS_HEADER_CONT += "$${LITERAL_HASH}endif"
- write_file($$MODULE_MASTER_DEPS_HEADER, MODULE_MASTER_DEPS_HEADER_CONT)|error()
- !git_build: QMAKE_DISTCLEAN += $$MODULE_MASTER_DEPS_HEADER
-}
-SYNCQT.HEADER_FILES += $$MODULE_MASTER_DEPS_HEADER
-
-# Automatically enable precompiled headers for Qt modules with more than 2 sources
-combined_SOURCES = $$SOURCES $$OBJECTIVE_SOURCES
-count(combined_SOURCES, 2, >) {
- # except for Gcc/Windows: Larger precompiled headers crash cc1plus.exe
- # (e.g. with i686-4.8.2-release-posix-dwarf-rt_v3-rev3)
- !if(gcc:equals(QMAKE_HOST.os, Windows)):!equals(TEMPLATE, aux) {
- !defined(PRECOMPILED_HEADER, "var"): PRECOMPILED_HEADER = $$MODULE_MASTER_DEPS_HEADER
- }
-} else {
- CONFIG -= precompile_header
-}
-unset(combined_SOURCES)
-
-headersclean:!internal_module {
- # Make sure that the header compiles with our strict options
- hcleanDEFS = -DQT_NO_CAST_TO_ASCII=1 \
- -DQT_NO_CAST_FROM_ASCII=1 \
- -UQT_RESTRICTED_CAST_FROM_ASCII \
- -DQT_NO_URL_CAST_FROM_STRING=1 \
- -DQT_NO_CAST_FROM_BYTEARRAY=1 \
- -DQT_NO_KEYWORDS=1 \
- -DQT_USE_QSTRINGBUILDER \
- -DQT_USE_FAST_OPERATOR_PLUS \
- -Dsignals=int \
- -Dslots=int \
- -Demit=public: \
- -Dforeach=public: \
- -Dforever=public:
-
- gcc:!rim_qcc {
- # Turn on some extra warnings not found in -Wall -Wextra.
- # Common to GCC, Clang and ICC (and other compilers that masquerade as GCC):
- hcleanFLAGS = -Wall -Wextra -Werror \
- -Woverloaded-virtual -Wshadow -Wundef -Wfloat-equal \
- -Wnon-virtual-dtor -Wpointer-arith -Wformat-security \
- -Wno-long-long -Wno-variadic-macros -pedantic-errors
-
- intel_icc {
- # these warnings are disabled because explicit constructors with zero or
- # multiple arguments are permitted in C++11:
- # 2304: non-explicit constructor with single argument may cause implicit type conversion
- # 2305: declaration of 'explicit' constructor without a single argument is redundant
- hcleanFLAGS += -wd2304,2305
- greaterThan(QT_ICC_MAJOR_VERSION, 13) {
- # ICC 14+ has a bug with -Wshadow, emitting it for cases where there's no shadowing
- # (issue ID 0000698329, task DPD200245740)
- hcleanFLAGS -= -Wshadow
- }
- } else {
- # options accepted by GCC and Clang
- hcleanFLAGS += -Wchar-subscripts -Wold-style-cast
-
- !contains(QT_ARCH, arm):!contains(QT_ARCH, mips): \
- hcleanFLAGS += -Wcast-align
-
- clang_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION}
- versionAtLeast(clang_ver, 3.8): hcleanFLAGS += -Wdouble-promotion -Wshorten-64-to-32
-
- !clang {
- # options accepted only by GCC
-
- gcc_ver = $${QT_GCC_MAJOR_VERSION}.$${QT_GCC_MINOR_VERSION}
- versionAtLeast(gcc_ver, 4.5): hcleanFLAGS += -Wdouble-promotion
- versionAtLeast(gcc_ver, 4.9): hcleanFLAGS += -Wfloat-conversion
- # GCC 9 has a lot of false positives relating to this, so disable completely
- greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-deprecated-copy
- # GCC 9 introduced this
- greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-redundant-move
- # GCC 9 introduced this
- greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-format-overflow
- # GCC 9 introduced this
- greaterThan(QT_GCC_MAJOR_VERSION, 8): hcleanFLAGS += -Wno-init-list-lifetime
-
- c++11 {
- # only enabled for actual c++11 builds due to
- # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52806
- hcleanFLAGS += -Wzero-as-null-pointer-constant
- }
- }
- }
-
- # Use strict mode C++11 or C++98, with no GNU extensions (see -pedantic-errors above).
- # The module might set CONFIG += c++11, but it might also change QMAKE_CXXFLAGS_CXX11
- # or the module (or the mkspec) can set the C++11 flag on QMAKE_CXXFLAGS
- # (or QMAKE_CXXFLAGS_{RELEASE,DEBUG} but that's unlikely).
- c++11:contains(QMAKE_CXXFLAGS_CXX11, -std=gnu++11) {
- hcleanFLAGS += -std=c++11
- } else: contains(QMAKE_CXXFLAGS, -std=gnu++11) {
- hcleanFLAGS += -std=c++11
- } else: c++11:contains(QMAKE_CXXFLAGS_CXX11, -std=gnu++0x) {
- hcleanFLAGS += -std=c++0x
- } else: contains(QMAKE_CXXFLAGS, -std=gnu++0x) {
- hcleanFLAGS += -std=c++0x
- } else: !c++11:!contains(QMAKE_CXXFLAGS, -std=c++0x):!contains(QMAKE_CXXFLAGS, -std=c++11) {
- hcleanFLAGS += -std=c++98
- }
-
- hcleanCOMMAND = $(CXX) -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -xc++ ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- } else: msvc:!intel_icl {
- # -Za enables strict standards behavior, but we can't add it because
- # <windows.h> and <GL.h> violate the standards.
- hcleanFLAGS = -WX -W3
-
- hcleanCOMMAND = $(CXX) -c $(CXXFLAGS) $$hcleanFLAGS $(INCPATH) $$hcleanDEFS -FI${QMAKE_FILE_IN} -Fo${QMAKE_FILE_OUT} \
- $$[QT_INSTALL_DATA/src]/mkspecs/features/data/dummy.cpp
- }
-
- !isEmpty(hcleanCOMMAND):if(!qtConfig(debug_and_release)|CONFIG(release, debug|release)) {
- CLEAN_HEADERS =
- for (h, SYNCQT.CLEAN_HEADER_FILES) {
- hh = $$split(h, :)
- hr = $$member(hh, 1)
- isEmpty(hr)|qtConfig($$hr): \
- CLEAN_HEADERS += $$member(hh, 0)
- }
- CLEAN_HEADERS -= $$HEADERSCLEAN_EXCLUDE
- header_check.dependency_type = TYPE_C
- header_check.CONFIG += no_link
- header_check.output = ${QMAKE_VAR_OBJECTS_DIR}header_${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- header_check.input = CLEAN_HEADERS
- header_check.variable_out = PRE_TARGETDEPS
- header_check.name = headercheck ${QMAKE_FILE_IN}
- header_check.commands = $$hcleanCOMMAND
- QMAKE_EXTRA_COMPILERS += header_check
- }
- unset(hcleanCOMMAND)
- unset(hcleanFLAGS)
- unset(hcleanDEFS)
-}