diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-01-16 18:10:43 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-01-16 18:10:43 +0100 |
commit | e66a1125f2b796fe48aef6c88caf501ee3224c0f (patch) | |
tree | d28115677f56722248bd564e063df96f0f166685 /tools/qmake/mkspecs/features | |
parent | 79773ecfcc27b350a3e5ea1149ef51f7cc657b61 (diff) | |
parent | ae657b918ff22da2553dc577c877b03f49cc2bdf (diff) |
Merge 5.4 into 5.4.1
Change-Id: I772c9710d8b01efd385a54e5f642ae2b62702a0e
Diffstat (limited to 'tools/qmake/mkspecs/features')
-rw-r--r-- | tools/qmake/mkspecs/features/configure.prf | 31 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/default_post.prf | 8 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/default_pre.prf | 7 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/functions.prf | 20 |
4 files changed, 60 insertions, 6 deletions
diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf new file mode 100644 index 000000000..6e74b5547 --- /dev/null +++ b/tools/qmake/mkspecs/features/configure.prf @@ -0,0 +1,31 @@ +# Load configure.prf from qtbase first +load(configure) +load(functions) + +defineTest(runConfigure) { + webengine_successfully_configured: return(true) + linux:contains(QT_CONFIG,no-pkg-config) { + skipBuild("pkg-config is required") + return(false) + } + # Ignore the cached config tests results in case they were not successful + CONFIG += recheck + #Override the config.tests path + QMAKE_CONFIG_TESTS_DIR = $$QTWEBENGINE_ROOT/tools/qmake/config.tests + CONFIG_TESTS = $$files($$QMAKE_CONFIG_TESTS_DIR/*.pro, true) + log("Running configure tests$${EOL}") + for(test, CONFIG_TESTS) { + test = $$basename(test) + test ~= s/\\.pro$// + qtCompileTest($$test) + } + # libcap-dev package doesn't ship .pc files on Ubuntu. + linux:!config_libcap:skipBuild("libcap appears to be missing") + contains(QT_CONFIG, xcb) { + for(package, $$list("libdrm xcomposite xi xrandr")) { + !packagesExist($$package):skipBuild("Unmet dependency: $$package") + } + } + isEmpty(skipBuildReason):cache(CONFIG, add, $$list(webengine_successfully_configured)) +} + diff --git a/tools/qmake/mkspecs/features/default_post.prf b/tools/qmake/mkspecs/features/default_post.prf new file mode 100644 index 000000000..d09ba05fd --- /dev/null +++ b/tools/qmake/mkspecs/features/default_post.prf @@ -0,0 +1,8 @@ +load(default_post) + +!isEmpty(skipBuildReason) { + SUBDIRS = + export(SUBDIRS) + log($${skipBuildReason}$${EOL}) + log(QtWebEngine will not be built.$${EOL}) +} diff --git a/tools/qmake/mkspecs/features/default_pre.prf b/tools/qmake/mkspecs/features/default_pre.prf index aeb7c0b3b..02f4f24d4 100644 --- a/tools/qmake/mkspecs/features/default_pre.prf +++ b/tools/qmake/mkspecs/features/default_pre.prf @@ -9,8 +9,15 @@ QTWEBENGINEPROCESS_NAME = QtWebEngineProcess # Location of sync.profile MODULE_BASE_DIR = $$QTWEBENGINE_ROOT +EOL = $$escape_expand(\\n) load(functions) +# Check platform support and run config tests early enough to bail +equals(_PRO_FILE_, "$$QTWEBENGINE_ROOT/qtwebengine.pro"): isPlatformSupported() { + load(configure) + runConfigure() +} + # Call the original default_pre. load(default_pre) diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf index acf15a811..4c2547d57 100644 --- a/tools/qmake/mkspecs/features/functions.prf +++ b/tools/qmake/mkspecs/features/functions.prf @@ -1,16 +1,19 @@ defineTest(isPlatformSupported) { - static: return(false) + static { + skipBuild("Static builds of QtWebEngine aren't supported.") + return(false) + } osx:lessThan(QMAKE_XCODE_VERSION, 5.1) { - warning("Using xcode version $$QMAKE_XCODE_VERSION, but at least version 5.1 is required to build Qt WebEngine.") + skipBuild("Using xcode version $$QMAKE_XCODE_VERSION, but at least version 5.1 is required to build Qt WebEngine.") return(false) } - linux-g++*:!isGCCVersionSupported():return(false) + linux-g++*:!isGCCVersionSupported(): return(false) !isPythonVersionSupported(): return(false) linux-g++*|win32-msvc2013|macx-clang: return(true) boot2qt: return(true) - warning("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation".) + skipBuild("Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.") return(false) } @@ -18,7 +21,7 @@ defineTest(isPythonVersionSupported) { python_major_version = $$system('python -c "import sys; print sys.version_info.major"') python_minor_version = $$system('python -c "import sys; print sys.version_info.minor"') greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): return(true) - warning("Using Python version "$$python_major_version"."$$python_minor_version", but at least Python version 2.7 is required to build Qt WebEngine.") + skipBuild("Using Python version "$$python_major_version"."$$python_minor_version", but at least Python version 2.7 is required to build Qt WebEngine.") return(false) } @@ -26,7 +29,7 @@ defineTest(isGCCVersionSupported) { # The below will work for gcc 4.6 and up and also match gcc 5 greaterThan(QT_GCC_MINOR_VERSION, 5):return(true) greaterThan(QT_GCC_MAJOR_VERSION, 4):return(true) - warning("Using gcc version "$$QT_GCC_MAJOR_VERSION"."$$QT_GCC_MINOR_VERSION", but at least gcc version 4.6 is required to build Qt WebEngine.") + skipBuild("Using gcc version "$$QT_GCC_MAJOR_VERSION"."$$QT_GCC_MINOR_VERSION", but at least gcc version 4.6 is required to build Qt WebEngine.") return(false) } @@ -140,3 +143,8 @@ defineReplace(findOrBuildNinja) { } return($$out) } + +defineTest(skipBuild) { + skipBuildReason = "$$skipBuildReason $${EOL}$$1" + export(skipBuildReason) +} |