summaryrefslogtreecommitdiffstats
path: root/tools/qmake/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qmake/mkspecs')
-rw-r--r--tools/qmake/mkspecs/features/configure.prf23
-rw-r--r--tools/qmake/mkspecs/features/default_pre.prf12
-rw-r--r--tools/qmake/mkspecs/features/functions.prf51
-rw-r--r--tools/qmake/mkspecs/features/gyp_generator.prf2
4 files changed, 78 insertions, 10 deletions
diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf
index 8427b58e3..7ef4b8545 100644
--- a/tools/qmake/mkspecs/features/configure.prf
+++ b/tools/qmake/mkspecs/features/configure.prf
@@ -41,12 +41,18 @@ defineTest(runConfigure) {
else: log("System libwebp or libwebpdemux not found. Using Chromium's copies.$${EOL}")
packagesExist(libxml-2.0,libxslt): WEBENGINE_CONFIG += use_system_libxslt
else: log("System libxml2 or libxslt not found. Using Chromium's copies.$${EOL}")
- for(package, $$list("libevent jsoncpp opus")) {
+ for(package, $$list("libevent jsoncpp opus protobuf")) {
packagesExist($$package): WEBENGINE_CONFIG += use_system_$$package
else: log("System $$package not found. Using Chromium's copy.$${EOL}")
}
- packagesExist("\'vpx >= 1.4\'"): WEBENGINE_CONFIG += use_system_vpx
- else: log("System vpx >= 1.4 not found. Using Chromium's copy.$${EOL}")
+ use?(system_protobuf) {
+ !system("which protoc > /dev/null") {
+ log("Protobuf compiler not found. Using Chromium's copy of protobuf.$${EOL}")
+ WEBENGINE_CONFIG -= use_system_protobuf
+ }
+ }
+ config_libvpx: WEBENGINE_CONFIG += use_system_vpx
+ else: log("Compatible system libvpx not found. Using Chromium's copy.$${EOL}")
config_srtp: WEBENGINE_CONFIG += use_system_libsrtp
else: log("System libsrtp not found. Using Chromium's copy.$${EOL}")
config_snappy: WEBENGINE_CONFIG += use_system_snappy
@@ -58,6 +64,9 @@ defineTest(runConfigure) {
}
}
+ # Spellcheck support is moved to dev
+ WEBENGINE_CONFIG += no_spellcheck
+
isEmpty(skipBuildReason): {
cache(CONFIG, add, $$list(webengine_successfully_configured))
!isEmpty(WEBENGINE_CONFIG) {
@@ -65,6 +74,7 @@ defineTest(runConfigure) {
export(WEBENGINE_CONFIG)
}
}
+
}
# This is called from default_post, at which point we've also parsed
@@ -112,5 +122,12 @@ defineTest(finalizeConfigure) {
} else {
log("Geolocation....................... Not enabled (Requires Qt Positioning module)$${EOL}")
}
+ osx {
+ use?(appstore_compliant_code) {
+ log("AppStore Compliant ............... Enabled$${EOL}")
+ } else {
+ log("AppStore Compliant ............... Not enabled (Default, enable with WEBENGINE_CONFIG+=use_appstore_compliant_code)$${EOL}")
+ }
+ }
}
diff --git a/tools/qmake/mkspecs/features/default_pre.prf b/tools/qmake/mkspecs/features/default_pre.prf
index cb0625c2e..27aded013 100644
--- a/tools/qmake/mkspecs/features/default_pre.prf
+++ b/tools/qmake/mkspecs/features/default_pre.prf
@@ -4,7 +4,17 @@ QTWEBENGINE_ROOT = $$replace(PWD, /tools/qmake/mkspecs/features$,)
# We depend on libc++ to build chromium so our macosx-version-min has to be 10.7
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
-QTWEBENGINEPROCESS_NAME = QtWebEngineProcess
+QTWEBENGINEPROCESS_NAME_RELEASE = QtWebEngineProcess
+debug_and_release {
+ QTWEBENGINEPROCESS_NAME_DEBUG = $$join(QTWEBENGINEPROCESS_NAME_RELEASE,,,d)
+} else {
+ QTWEBENGINEPROCESS_NAME_DEBUG = $$QTWEBENGINEPROCESS_NAME_RELEASE
+}
+build_pass:CONFIG(debug, debug|release) {
+ QTWEBENGINEPROCESS_NAME = $$QTWEBENGINEPROCESS_NAME_DEBUG
+} else {
+ QTWEBENGINEPROCESS_NAME = $$QTWEBENGINEPROCESS_NAME_RELEASE
+}
# Location of sync.profile
MODULE_BASE_DIR = $$QTWEBENGINE_ROOT
diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf
index a4abf458c..33bebb47a 100644
--- a/tools/qmake/mkspecs/features/functions.prf
+++ b/tools/qmake/mkspecs/features/functions.prf
@@ -19,6 +19,9 @@ defineTest(isPlatformSupported) {
skipBuild("Qt WebEngine on Windows requires MSVC 2013 or MSVC 2015.")
return(false)
}
+ isBuildingOnWin32() {
+ skipBuild("Qt WebEngine on Windows must be built on a 64-bit machine.")
+ }
} else:osx {
lessThan(QMAKE_XCODE_VERSION, 5.1) {
skipBuild("Using XCode version $$QMAKE_XCODE_VERSION, but at least version 5.1 is required to build Qt WebEngine.")
@@ -30,6 +33,10 @@ defineTest(isPlatformSupported) {
skipBuild("Qt WebEngine requires OS X version 10.9 or newer.")
return(false)
}
+ !isMinOSXSDKVersion(10, 10, 3): {
+ skipBuild("Qt WebEngine requires an OS X SDK version 10.10.3 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
+ return(false)
+ }
} else {
skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and OS X.")
return(false)
@@ -48,16 +55,20 @@ defineTest(isPlatformSupported) {
}
defineTest(isPythonVersionSupported) {
- python_error_msg = "Python version 2 (2.7 or later) is required to build Qt WebEngine."
- python_major_version = $$system('python -c "import sys; print(sys.version_info[0])"')
+ python_error_msg = "Python version 2 (2.7.6 or later) is required to build Qt WebEngine."
+ python_version = $$system('python -c "import sys; print(sys.version_info[0:3])"')
+ python_version ~= s/[()]//g
+ python_version = $$split(python_version, ',')
+ python_major_version = $$first(python_version)
greaterThan(python_major_version, 2) {
skipBuild("Python version 3 is not supported by Chromium.")
skipBuild($$python_error_msg)
return(false)
}
- python_minor_version = $$system('python -c "import sys; print(sys.version_info[1])"')
- greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): return(true)
- skipBuild("Using Python version "$$python_major_version"."$$python_minor_version".")
+ python_minor_version = $$member(python_version, 1)
+ python_patch_version = $$member(python_version, 2)
+ greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): greaterThan(python_patch_version, 5): return(true)
+ skipBuild("Using Python version $${python_major_version}.$${python_minor_version}.$${python_patch_version}.")
skipBuild($$python_error_msg)
return(false)
}
@@ -77,6 +88,36 @@ defineTest(isQMLTestSupportApiEnabled) {
return(false)
}
+defineTest(isBuildingOnWin32) {
+ # The check below is ugly, but necessary, as it seems to be the only reliable way to detect if the host
+ # architecture is 32 bit. QMAKE_HOST.arch does not work as it returns the architecture that the toolchain
+ # is building for, not the system's actual architecture.
+ PROGRAM_FILES_X86 = $$(ProgramW6432)
+ isEmpty(PROGRAM_FILES_X86): return(true)
+ return(false)
+}
+
+defineTest(isMinOSXSDKVersion) {
+ requested_major = $$1
+ requested_minor = $$2
+ requested_patch = $$3
+ WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null")
+ export(WEBENGINE_OSX_SDK_PRODUCT_VERSION)
+ isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) {
+ skipBuild("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.")
+ return(false)
+ }
+ major_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 0, 0)
+ minor_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 1, 1)
+ patch_version = $$section(WEBENGINE_OSX_SDK_PRODUCT_VERSION, ., 2, 2)
+
+ greaterThan(major_version, $$requested_major):return(true)
+ equals(major_version, $$requested_major):greaterThan(minor_version, $$requested_minor):return(true)
+ equals(major_version, $$requested_major):equals(minor_version, $$requested_minor):!lessThan(patch_version, $$requested_patch):return(true)
+
+ return(false)
+}
+
# Map to the correct target type for gyp
defineReplace(toGypTargetType) {
equals(TEMPLATE, "app"):return("executable")
diff --git a/tools/qmake/mkspecs/features/gyp_generator.prf b/tools/qmake/mkspecs/features/gyp_generator.prf
index eea11ef09..0ba6de09c 100644
--- a/tools/qmake/mkspecs/features/gyp_generator.prf
+++ b/tools/qmake/mkspecs/features/gyp_generator.prf
@@ -17,7 +17,7 @@ defineReplace(mocAction) {
MOC_COMMAND = $$clean_path($$mocCmdBase())
MOC_COMMAND = $$replace(MOC_COMMAND, $$re_escape("$(DEFINES)"), $$DEFINES_LIST)
MOC_COMMAND = $$replace(MOC_COMMAND, $$re_escape("$(INCPATH)"), $$INCPATH)
- MOC_COMMAND = $$split(MOC_COMMAND, " ")
+ MOC_COMMAND = $$eval($$list($$MOC_COMMAND))
OUTPUT_FILE = $$MOC_GEN_DIR/$${OUTPUT_NAME}
contents = " {" \
" 'action_name':'$$OUTPUT_NAME'," \