03e9c6f4a6
Pass -xplatform macx-tvos-clang to configure to build. Builds device and simulator by default. Added ‘uikit’ platform with the common setup. Also added QT_PLATFORM_UIKIT define (undocumented). qmake config defines tvos (but not ios). tvOS is 64bits only (QT_ARCH is arm64) and requires bitcode to be embedded in the binary. A new ‘bitcode’ configuration was added. For ReleaseDevice builds (which get archived and push to the store), bitcode is actually embedded (-fembed-bitcode passed to clang). For all other configurations, only using bitcode markers to keep file size down (-fembed-bitcode-marker). Build disables Widgets in qtbase, and qtscript (unsupported, would require fixes to JavaScriptCore source code). Qpa same as on iOS but disables device orientation, status bar, clipboard, menus, dialogs which are not supported on tvOS. Change-Id: I645804fd933be0befddeeb43095a74d2c178b2ba Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
110 lines
4.6 KiB
Plaintext
110 lines
4.6 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.
|
|
#
|
|
|
|
QMAKE_DIR_REPLACE_SANE += DESTDIR
|
|
CONFIG -= debug_and_release_target
|
|
|
|
contains(QT_CONFIG, c++11): CONFIG += c++11 strict_c++
|
|
contains(QT_CONFIG, c++14): CONFIG += c++14
|
|
contains(QT_CONFIG, c++1z): CONFIG += c++1z
|
|
contains(TEMPLATE, .*lib) {
|
|
# module and plugins
|
|
!host_build:contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols
|
|
unix:contains(QT_CONFIG, reduce_relocations): CONFIG += bsymbolic_functions
|
|
contains(QT_CONFIG, largefile): CONFIG += largefile
|
|
contains(QT_CONFIG, separate_debug_info): CONFIG += separate_debug_info
|
|
|
|
!isEmpty(_QMAKE_SUPER_CACHE_): \
|
|
rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
|
|
else: \
|
|
rplbase = $$MODULE_BASE_OUTDIR
|
|
host_build {
|
|
qqt_libdir = \$\$\$\$[QT_HOST_LIBS]
|
|
qt_libdir = $$[QT_HOST_LIBS]
|
|
} else {
|
|
qqt_libdir = \$\$\$\$[QT_INSTALL_LIBS]
|
|
qt_libdir = $$[QT_INSTALL_LIBS]
|
|
}
|
|
contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) {
|
|
lib_replace.match = "[^ ']*$$rplbase/lib"
|
|
lib_replace.replace =
|
|
} else {
|
|
lib_replace.match = $$rplbase/lib
|
|
lib_replace.replace = $$qqt_libdir
|
|
}
|
|
lib_replace.CONFIG = path
|
|
QMAKE_PRL_INSTALL_REPLACE += lib_replace
|
|
}
|
|
|
|
# The remainder of this file must not apply to bootstrapped tools,
|
|
# as the host compiler's version and capabilities are not checked.
|
|
host_build:force_bootstrap: return()
|
|
|
|
# Extra warnings for Qt non-example code, to ensure cleanliness of the sources.
|
|
# The block below may turn these warnings into errors for some Qt targets.
|
|
# -Wdate-time: warn if we use __DATE__ or __TIME__ (we want to be able to reproduce the exact same binary)
|
|
# -Wvla: use of variable-length arrays (an extension to C++)
|
|
clang {
|
|
# Clang 3.5 introduced -Wdate-time
|
|
# The conditional assumes we aren't compiling against Clang 2.x anymore
|
|
greaterThan(QT_CLANG_MAJOR_VERSION, 3)|greaterThan(QT_CLANG_MINOR_VERSION, 4): \
|
|
QMAKE_CXXFLAGS_WARN_ON += -Wdate-time
|
|
} else: gcc:!intel_icc {
|
|
QMAKE_CXXFLAGS_WARN_ON += -Wvla
|
|
# GCC 5 introduced -Wdate-time
|
|
greaterThan(QT_GCC_MAJOR_VERSION, 4): QMAKE_CXXFLAGS_WARN_ON += -Wdate-time
|
|
}
|
|
|
|
warnings_are_errors:warning_clean {
|
|
# If the module declares that it has does its clean-up of warnings, enable -Werror.
|
|
# This setting is compiler-dependent anyway because it depends on the version of the
|
|
# compiler.
|
|
clang:!uikit {
|
|
# Apple clang 4.0-4.2,5.0-5.1,6.0-6.4
|
|
# Regular clang 3.3-3.8
|
|
apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION}
|
|
reg_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION}
|
|
contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]")|contains(reg_ver, "3\\.[3-8]") {
|
|
QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR
|
|
}
|
|
} else:intel_icc:linux {
|
|
# Intel CC 13.0 - 17.0, on Linux only
|
|
ver = $${QT_ICC_MAJOR_VERSION}.$${QT_ICC_MINOR_VERSION}
|
|
linux:contains(ver, "(1[3456]\\.|17\\.0)") {
|
|
# 177: function "entity" was declared but never referenced
|
|
# (too aggressive; ICC reports even for functions created due to template instantiation)
|
|
# 1224: #warning directive
|
|
# 1478: function "entity" (declared at line N) was declared deprecated
|
|
# 1881: argument must be a constant null pointer value
|
|
# (NULL in C++ is usually a literal 0)
|
|
QMAKE_CXXFLAGS_WARN_ON += -Werror -ww177,1224,1478,1881 $$WERROR
|
|
}
|
|
} else:gcc:!clang:!intel_icc {
|
|
# GCC 4.6-4.9, 5.x, ...
|
|
ver = $${QT_GCC_MAJOR_VERSION}.$${QT_GCC_MINOR_VERSION}
|
|
contains(ver, "(4\\.[6789]|[5-9]\\..)") {
|
|
QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=cpp -Wno-error=deprecated-declarations $$WERROR
|
|
|
|
# GCC prints this bogus warning, after it has inlined a lot of code
|
|
# error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
|
|
QMAKE_CXXFLAGS_WARN_ON += -Wno-error=strict-overflow
|
|
|
|
# Work-around for bug https://code.google.com/p/android/issues/detail?id=58135
|
|
android: QMAKE_CXXFLAGS_WARN_ON += -Wno-error=literal-suffix
|
|
}
|
|
} else:msvc {
|
|
# enable for MSVC 2012, MSVC 2013
|
|
equals(MSVC_VER, "11.0")|equals(MSVC_VER, "12.0"): QMAKE_CXXFLAGS_WARN_ON += -WX
|
|
}
|
|
unset(ver)
|
|
}
|
|
|