diff options
Diffstat (limited to 'mkspecs/features/qt_module_headers.prf')
-rw-r--r-- | mkspecs/features/qt_module_headers.prf | 305 |
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) -} |