diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/buildscripts/gyp_qtwebengine | 12 | ||||
-rw-r--r-- | tools/qmake/config.tests/khr/khr.cpp | 4 | ||||
-rw-r--r-- | tools/qmake/config.tests/snappy/snappy.cpp | 44 | ||||
-rw-r--r-- | tools/qmake/config.tests/snappy/snappy.pro | 3 | ||||
-rw-r--r-- | tools/qmake/config.tests/srtp/srtp.cpp | 43 | ||||
-rw-r--r-- | tools/qmake/config.tests/srtp/srtp.pro | 3 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/configure.prf | 79 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/default_post.prf | 3 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/default_pre.prf | 4 | ||||
-rw-r--r-- | tools/qmake/mkspecs/features/functions.prf | 4 | ||||
-rwxr-xr-x | tools/scripts/take_snapshot.py | 57 | ||||
-rw-r--r-- | tools/scripts/version_resolver.py | 7 |
12 files changed, 214 insertions, 49 deletions
diff --git a/tools/buildscripts/gyp_qtwebengine b/tools/buildscripts/gyp_qtwebengine index 6db73519a..ce2a43328 100755 --- a/tools/buildscripts/gyp_qtwebengine +++ b/tools/buildscripts/gyp_qtwebengine @@ -92,6 +92,11 @@ if __name__ == '__main__': if 'qt_cross_compile=1' in sys.argv: os.environ['GYP_CROSSCOMPILE'] = '1' + sysroot = 'sysroot=' + for opt in sys.argv: + if opt.startswith(sysroot): + os.environ['PKG_CONFIG_SYSROOT_DIR'] = opt[len(sysroot):] + gyp_helper.apply_chromium_gyp_env() # This could give false positives since it doesn't actually do real option @@ -140,12 +145,9 @@ if __name__ == '__main__': args.extend(['-D', 'qtwebengine_root=' + purifyGypVarPath(qtwebengine_root)]) args.extend(['-D', 'chromium_src_dir=' + purifyGypVarPath(chrome_src)]) - # linux_use_bundled_gold currently relies on a hardcoded relative path from chromium/src/out/(Release|Debug) - # Disable it along with the -Wl,--threads flag just in case gold isn't installed on the system. - args.extend(['-D', 'linux_use_bundled_gold=0']) - args.extend(['-D', 'linux_use_bundled_binutils=0']) - args.extend(['-D', 'linux_use_gold_flags=0']) args.extend(['-D', 'clang_use_chrome_plugins=0']) + # We do not want to ship more external binary blobs, so let v8 embed its startup data. + args.extend(['-D', 'v8_use_external_startup_data=0']) # Trigger Qt-specific build conditions. args.extend(['-D', 'use_qt=1']) # Tweak the output location and format (hardcode ninja for now if not set) diff --git a/tools/qmake/config.tests/khr/khr.cpp b/tools/qmake/config.tests/khr/khr.cpp index 6182df286..01c0c26ca 100644 --- a/tools/qmake/config.tests/khr/khr.cpp +++ b/tools/qmake/config.tests/khr/khr.cpp @@ -38,7 +38,5 @@ int main(int, char **) { - const khronos_boolean_enum_t kfalse = KHRONOS_FALSE; - const khronos_boolean_enum_t ktrue = KHRONOS_TRUE; - return kfalse == ktrue; + return 0; } diff --git a/tools/qmake/config.tests/snappy/snappy.cpp b/tools/qmake/config.tests/snappy/snappy.cpp new file mode 100644 index 000000000..7948303fc --- /dev/null +++ b/tools/qmake/config.tests/snappy/snappy.cpp @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtWebEngine module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <snappy.h> + +int main(int, char **) +{ + snappy::Source* src = 0; + snappy::Sink* sink = 0; + return 0; +} diff --git a/tools/qmake/config.tests/snappy/snappy.pro b/tools/qmake/config.tests/snappy/snappy.pro new file mode 100644 index 000000000..890174a13 --- /dev/null +++ b/tools/qmake/config.tests/snappy/snappy.pro @@ -0,0 +1,3 @@ +linux:SOURCES += snappy.cpp +LIBS += -lsnappy +CONFIG -= qt diff --git a/tools/qmake/config.tests/srtp/srtp.cpp b/tools/qmake/config.tests/srtp/srtp.cpp new file mode 100644 index 000000000..12400f126 --- /dev/null +++ b/tools/qmake/config.tests/srtp/srtp.cpp @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtWebEngine module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <srtp/srtp.h> + +int main(int, char **) +{ + err_status_t status = srtp_init(); + return status == err_status_ok; +} diff --git a/tools/qmake/config.tests/srtp/srtp.pro b/tools/qmake/config.tests/srtp/srtp.pro new file mode 100644 index 000000000..2151d64aa --- /dev/null +++ b/tools/qmake/config.tests/srtp/srtp.pro @@ -0,0 +1,3 @@ +linux:SOURCES += srtp.cpp +LIBS += -lsrtp +CONFIG -= qt diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf index 7b111b78f..321e67e92 100644 --- a/tools/qmake/mkspecs/features/configure.prf +++ b/tools/qmake/mkspecs/features/configure.prf @@ -19,14 +19,81 @@ defineTest(runConfigure) { test ~= s/\\.pro$// qtCompileTest($$test) } - # libcap-dev package doesn't ship .pc files on Ubuntu. - linux:!config_libcap:skipBuild("libcap development package appears to be missing") - linux:!config_khr:skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)") - contains(QT_CONFIG, xcb) { - for(package, $$list("libdrm xcomposite xi xrandr")) { + + linux { + # libcap-dev package doesn't ship .pc files on Ubuntu. + !config_libcap:skipBuild("libcap development package appears to be missing") + !config_khr:skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)") + + REQUIRED_PACKAGES = dbus-1 fontconfig + contains(QT_CONFIG, xcb): REQUIRED_PACKAGES += libdrm xcomposite xcursor xi xrandr xscrnsaver xtst + contains(QT_CONFIG, pulseaudio): REQUIRED_PACKAGES += libpulse + contains(QT_CONFIG, system-png): REQUIRED_PACKAGES += libpng + contains(QT_CONFIG, system-jpeg): REQUIRED_PACKAGES += libjpeg + contains(QT_CONFIG, system-harfbuzz): REQUIRED_PACKAGES += harfbuzz + !cross_compile: REQUIRED_PACKAGES += libpci nss + + for(package, $$list($$REQUIRED_PACKAGES)) { !packagesExist($$package):skipBuild("Unmet dependency: $$package") } + packagesExist(minizip, zlib): WEBENGINE_CONFIG += config_system_minizip + else: log("System zlib or minizip not found. Using Chromium's copies.$${EOL}") + packagesExist(libwebp,libwebpdemux): WEBENGINE_CONFIG += config_system_libwebp + else: log("System libwebp or libwebpdemux not found. Using Chromium's copies.$${EOL}") + packagesExist(libxml-2.0,libxslt): WEBENGINE_CONFIG += config_system_libxslt + else: log("System libxml2 or libxslt not found. Using Chromium's copies.$${EOL}") + for(package, $$list("libevent flac jsoncpp opus speex")) { + packagesExist($$package): WEBENGINE_CONFIG += config_system_$$package + else: log("System $$package not found. Using Chromium's copy.$${EOL}") + } + packagesExist("\'vpx >= 1.4\'"): WEBENGINE_CONFIG += config_system_vpx + else: log("System vpx >= 1.4 not found. Using Chromium's copy.$${EOL}") + config_srtp: WEBENGINE_CONFIG += config_system_libsrtp + else: log("System libsrtp not found. Using Chromium's copy.$${EOL}") + config_snappy: WEBENGINE_CONFIG += config_system_snappy + else: log("System snappy not found. Using Chromium's copy.$${EOL}") + } + + isEmpty(skipBuildReason): { + cache(CONFIG, add, $$list(webengine_successfully_configured)) + !isEmpty(WEBENGINE_CONFIG): cache(CONFIG, add, $$list($$WEBENGINE_CONFIG)) + } +} + +# This is called from default_post, at which point we've also parsed +# command line options +defineTest(finalizeConfigure) { + linux { + contains(WEBENGINE_CONFIG, use_system_icu) { + packagesExist("icu-uc icu-i18n") { + log("ICU............................... Using system version$${EOL}") + } else { + log("ICU............................... System ICU not found$${EOL}") + skipBuild("Unmet dependencies: icu-uc, icu-i18n") + } + } else { + log("ICU............................... Using internal copy (Default, force system ICU with WEBENGINE_CONFIG += use_system_icu)$${EOL}") + } + contains(WEBENGINE_CONFIG, use_system_ffmpeg) { + packagesExist("libavcodec libavformat libavutil") { + packagesExist("libwebp, libwebpdemux, opus, \'vpx >= 1.4\'"){ + log("FFMPEG............................ Using system version$${EOL}") + } else { + log("FFMPEG............................ Conflicting FFMPEG dependencies$${EOL}") + skipBuild("Unmet dependencies: opus, vpx, libwebp, libwebpdemux") + } + } else { + log("FFMPEG............................ System FFMPEG not found$${EOL}") + skipBuild("Unmet dependencies: libavcodec, libavformat, libavutil") + } + } else { + log("FFMPEG............................ Using internal copy (Default, force system FFMPEG with WEBENGINE_CONFIG += use_system_ffmpeg)$${EOL}") + } + } + contains(WEBENGINE_CONFIG, use_proprietary_codecs) { + log("Proprietary codecs (H264, MP3).... Enabled$${EOL}") + } else { + log("Proprietary codecs (H264, MP3).... Not enabled (Default, enable with WEBENGINE_CONFIG += use_proprietary_codecs)$${EOL}") } - 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 index d09ba05fd..64e8cb1fe 100644 --- a/tools/qmake/mkspecs/features/default_post.prf +++ b/tools/qmake/mkspecs/features/default_post.prf @@ -1,4 +1,7 @@ load(default_post) +load(functions) + +root_project_file:isPlatformSupported(): finalizeConfigure() !isEmpty(skipBuildReason) { SUBDIRS = diff --git a/tools/qmake/mkspecs/features/default_pre.prf b/tools/qmake/mkspecs/features/default_pre.prf index 2e556c2a6..6506e67ad 100644 --- a/tools/qmake/mkspecs/features/default_pre.prf +++ b/tools/qmake/mkspecs/features/default_pre.prf @@ -16,7 +16,9 @@ load(default_pre) load(functions) # Check platform support and run config tests early enough to bail -equals(_PRO_FILE_, "$$QTWEBENGINE_ROOT/qtwebengine.pro"): isPlatformSupported() { +equals(_PRO_FILE_, "$$QTWEBENGINE_ROOT/qtwebengine.pro"): CONFIG += root_project_file + +root_project_file:isPlatformSupported() { load(configure) runConfigure() } diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf index 69d3fd3b2..c0e1f90bb 100644 --- a/tools/qmake/mkspecs/features/functions.prf +++ b/tools/qmake/mkspecs/features/functions.prf @@ -14,10 +14,10 @@ defineTest(isPlatformSupported) { linux-g++*:!isGCCVersionSupported(): return(false) !isPythonVersionSupported(): return(false) - linux-g++*|win32-msvc2013|macx-clang*: return(true) + linux-g++*|linux-clang|win32-msvc2013|macx-clang*: return(true) boot2qt: return(true) - skipBuild("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/clang), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.") return(false) } diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py index bd2ec4e56..71dcc43c2 100755 --- a/tools/scripts/take_snapshot.py +++ b/tools/scripts/take_snapshot.py @@ -78,7 +78,7 @@ def isInChromiumBlacklist(file_path): or file_path.startswith('third_party/android_tools') or '/tests/' in file_path or ('/test/' in file_path and - not '/webrtc/test/testsupport/' in file_path and + not '/webrtc/' in file_path and not file_path.startswith('net/test/') and not file_path.endswith('mock_chrome_application_mac.h') and not file_path.endswith('perftimer.h') and @@ -100,9 +100,9 @@ def isInChromiumBlacklist(file_path): not 'repack_locales' in file_path and not 'third_party/chromevox' in file_path and not 'media/desktop_media_list.h' in file_path and - not 'media/desktop_streams_registry.cc' in file_path and - not 'media/desktop_streams_registry.h' in file_path and - not 'common/localized_error' in file_path and + not 'media/desktop_streams_registry.' in file_path and + not 'common/chrome_switches.' in file_path and + not 'common/localized_error.' in file_path and not file_path.endswith('cf_resources.rc') and not file_path.endswith('version.py') and not file_path.endswith('.grd') and @@ -113,16 +113,24 @@ def isInChromiumBlacklist(file_path): or file_path.startswith('chromeos') or file_path.startswith('cloud_print') or (file_path.startswith('components') and + not file_path.startswith('components/device_event_log') and + not file_path.startswith('components/devtools_') and + not file_path.startswith('components/error_page') and + not file_path.startswith('components/mime_util') and + not file_path.startswith('components/printing') and + not file_path.startswith('components/resources') and + not file_path.startswith('components/scheduler') and + not file_path.startswith('components/strings') and not file_path.startswith('components/tracing') and not file_path.startswith('components/visitedlink') and - not file_path.startswith('components/error_page') and + not file_path.startswith('components/webcrypto') and not file_path.endswith('.grdp') and not 'components_strings' in file_path) or file_path.startswith('content/public/android/java') - or file_path.startswith('content/shell') + or (file_path.startswith('content/shell') and + not file_path.startswith('content/shell/common')) or file_path.startswith('courgette') or (file_path.startswith('extensions') and - # Included by generated sources of ui/accessibility/ax_enums.idl not 'browser/extension_function_registry.h' in file_path and not 'browser/extension_function_histogram_value.h' in file_path) or file_path.startswith('google_update') @@ -136,19 +144,14 @@ def isInChromiumBlacklist(file_path): or file_path.startswith('sync') or file_path.startswith('testing/android') or file_path.startswith('testing/buildbot') - or file_path.startswith('third_party/accessibility-developer-tools') - or file_path.startswith('third_party/GTM') or file_path.startswith('third_party/WebKit/LayoutTests') or file_path.startswith('third_party/WebKit/ManualTests') or file_path.startswith('third_party/WebKit/PerformanceTests') - or file_path.startswith('third_party/active_doc') - or file_path.startswith('third_party/android_crazy_linker') - or file_path.startswith('third_party/android_platform') - or file_path.startswith('third_party/android_testrunner') - or file_path.startswith('third_party/aosp') - or file_path.startswith('third_party/apache-mime4j') + or file_path.startswith('third_party/accessibility-audit') + or file_path.startswith('third_party/android_') or file_path.startswith('third_party/apache-win32') or file_path.startswith('third_party/apple_sample_code') + or file_path.startswith('third_party/ashmem') or file_path.startswith('third_party/binutils') or file_path.startswith('third_party/bison') or (file_path.startswith('third_party/cacheinvalidation') and @@ -157,26 +160,20 @@ def isInChromiumBlacklist(file_path): or file_path.startswith('third_party/cld_2') or file_path.startswith('third_party/codesighs') or file_path.startswith('third_party/colorama') - or file_path.startswith('third_party/cros_dbus_cplusplus') or file_path.startswith('third_party/cros_system_api') or file_path.startswith('third_party/cygwin') or file_path.startswith('third_party/cython') + or file_path.startswith('third_party/deqp') or file_path.startswith('third_party/elfutils') - or file_path.startswith('third_party/eyesfree') - or file_path.startswith('third_party/findbugs') or file_path.startswith('third_party/google_input_tools') or file_path.startswith('third_party/gperf') or file_path.startswith('third_party/gnu_binutils') or file_path.startswith('third_party/gtk+') or file_path.startswith('third_party/google_appengine_cloudstorage') or file_path.startswith('third_party/google_toolbox_for_mac') - or file_path.startswith('third_party/guava/src') - or file_path.startswith('third_party/httpcomponents-client') - or file_path.startswith('third_party/httpcomponents-core') - or file_path.startswith('third_party/hunspell') or file_path.startswith('third_party/hunspell_dictionaries') + or file_path.startswith('third_party/hunspell') or file_path.startswith('third_party/instrumented_libraries') - or file_path.startswith('third_party/jarjar') or file_path.startswith('third_party/jsr-305/src') or file_path.startswith('third_party/junit') or file_path.startswith('third_party/libphonenumber') @@ -188,21 +185,20 @@ def isInChromiumBlacklist(file_path): or file_path.startswith('third_party/markdown') or file_path.startswith('third_party/mingw-w64') or file_path.startswith('third_party/nacl_sdk_binaries') - or file_path.startswith('third_party/polymer') + or (file_path.startswith('third_party/polymer') and + not file_path.startswith('third_party/polymer/v1_0/components-chromium/')) or file_path.startswith('third_party/pdfsqueeze') or file_path.startswith('third_party/pefile') or file_path.startswith('third_party/perl') or file_path.startswith('third_party/pdfium') or file_path.startswith('third_party/psyco_win32') - or file_path.startswith('third_party/python_26') or file_path.startswith('third_party/scons-2.0.1') - or file_path.startswith('third_party/syzygy') - or file_path.startswith('third_party/swig') - or file_path.startswith('third_party/webgl') or file_path.startswith('third_party/trace-viewer') - or file_path.startswith('third_party/xulrunner-sdk') + or file_path.startswith('third_party/undoview') + or file_path.startswith('third_party/webgl') or (file_path.startswith('tools') and not file_path.startswith('tools/clang') and + not file_path.startswith('tools/compile_test') and not file_path.startswith('tools/generate_library_loader') and not file_path.startswith('tools/generate_shim_headers') and not file_path.startswith('tools/generate_stubs') and @@ -214,9 +210,12 @@ def isInChromiumBlacklist(file_path): not file_path.startswith('tools/protoc_wrapper')) or file_path.startswith('ui/android/java') or file_path.startswith('ui/app_list') + or file_path.startswith('ui/base/ime/chromeos') or file_path.startswith('ui/chromeos') or file_path.startswith('ui/display/chromeos') + or file_path.startswith('ui/events/ozone/chromeos') or file_path.startswith('ui/file_manager') + or file_path.startswith('ui/gfx/chromeos') ): return True diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py index 419fb72d1..f6aaedf64 100644 --- a/tools/scripts/version_resolver.py +++ b/tools/scripts/version_resolver.py @@ -51,8 +51,8 @@ import json import urllib2 import git_submodule as GitSubmodule -chromium_version = '40.0.2214.115' -chromium_branch = '2214' +chromium_version = '45.0.2454.79' +chromium_branch = '2454' ninja_version = 'v1.5.3' json_url = 'http://omahaproxy.appspot.com/all.json' @@ -64,6 +64,7 @@ upstream_src_dir = os.path.abspath(snapshot_src_dir + '_upstream') submodule_blacklist = [ 'third_party/WebKit/LayoutTests/w3c/csswg-test' , 'third_party/WebKit/LayoutTests/w3c/web-platform-tests' + , 'third_party/jsoncpp/source' , 'chrome/tools/test/reference_build/chrome_mac' , 'chrome/tools/test/reference_build/chrome_linux' , 'chrome/tools/test/reference_build/chrome_win' @@ -91,7 +92,7 @@ def readReleaseChannels(): return channels def readSubmodules(): - git_deps = subprocess.check_output(['git', 'show', chromium_version +':.DEPS.git']) + git_deps = subprocess.check_output(['git', 'show', chromium_version +':DEPS']) parser = GitSubmodule.DEPSParser() git_submodules = parser.parse(git_deps) |