summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/qmake/mkspecs/features/configure.prf26
-rw-r--r--tools/qmake/mkspecs/features/functions.prf75
-rw-r--r--tools/qmake/mkspecs/features/gn_generator.prf235
-rw-r--r--tools/scripts/gn_find_mocables.py68
-rw-r--r--tools/scripts/gn_run_binary.py33
-rwxr-xr-xtools/scripts/init-repository.py1
-rwxr-xr-xtools/scripts/take_snapshot.py18
-rw-r--r--tools/scripts/version_resolver.py6
8 files changed, 424 insertions, 38 deletions
diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf
index 43a5f2757..f12bf5ae9 100644
--- a/tools/qmake/mkspecs/features/configure.prf
+++ b/tools/qmake/mkspecs/features/configure.prf
@@ -23,23 +23,40 @@ defineTest(runConfigure) {
isQtMinimum(5, 8) {
include($$QTWEBENGINE_OUT_ROOT/qtwebengine-config.pri)
QT_FOR_CONFIG += webengine-private
+
+ qtConfig(pepper-plugins): WEBENGINE_CONFIG += use_pepper_plugins
+ qtConfig(printing-and-pdf): WEBENGINE_CONFIG += use_printing use_pdf
qtConfig(proprietary-codecs): WEBENGINE_CONFIG += use_proprietary_codecs
qtConfig(spellchecker): WEBENGINE_CONFIG += use_spellchecker
+ qtConfig(webrtc): WEBENGINE_CONFIG += use_webrtc
+ qtConfig(embedded): WEBENGINE_CONFIG += embedded_build
+ } else {
+ cross_compile: WEBENGINE_CONFIG += embedded_build
+ }
+ isQtMinimum(5, 9) {
+ qtConfig(appstore-compliant): WEBENGINE_CONFIG += use_appstore_compliant_code
+ linux: WEBENGINE_CONFIG += use_gn
+ macos: WEBENGINE_CONFIG += use_gn
+ win32: WEBENGINE_CONFIG += use_gn
}
+ !use?(gn): skipBuild("Chromium 55 and new can only be built with GN")
linux {
QT_FOR_CONFIG += gui-private
!config_khr:skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)")
REQUIRED_PACKAGES = dbus-1 fontconfig
- !cross_compile: qtConfig(xcb): REQUIRED_PACKAGES += libdrm xcomposite xcursor xi xrandr xscrnsaver xtst
+ !contains(WEBENGINE_CONFIG, embedded_build): qtConfig(xcb): REQUIRED_PACKAGES += libdrm xcomposite xcursor xi xrandr xscrnsaver xtst
qtConfig(pulseaudio): REQUIRED_PACKAGES += libpulse
qtConfig(system-png): REQUIRED_PACKAGES += libpng
qtConfig(system-harfbuzz) {
packagesExist("\'harfbuzz >= 1.2.0\'"): WEBENGINE_CONFIG += use_system_harfbuzz
else: log("System harfbuzz is too old (min. version 1.2). Using Chromium's copy.$${EOL}")
}
- !cross_compile: REQUIRED_PACKAGES += libpci
+ qtConfig(glib) {
+ packagesExist("\'glib-2.0 >= 2.32.0\'"): WEBENGINE_CONFIG += use_glib
+ else: skipBuild("System glib is too old (min. version 2.32).$${EOL}")
+ }
for(package, $$list($$REQUIRED_PACKAGES)) {
!packagesExist($$package):skipBuild("Unmet dependency: $$package")
@@ -80,14 +97,11 @@ defineTest(runConfigure) {
WEBENGINE_CONFIG += use_bundled_snappy
}
- !cross_compile {
+ !contains(WEBENGINE_CONFIG, embedded_build) {
packagesExist(nss): WEBENGINE_CONFIG += use_nss
else: log("System NSS not found, BoringSSL will be used.$${EOL}")
}
}
- !cross_compile {
- WEBENGINE_CONFIG += enable_pdf
- }
isEmpty(skipBuildReason): {
cache(CONFIG, add, $$list(webengine_successfully_configured))
diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf
index 6545ef791..b4965129c 100644
--- a/tools/qmake/mkspecs/features/functions.prf
+++ b/tools/qmake/mkspecs/features/functions.prf
@@ -59,10 +59,10 @@ defineTest(isPlatformSupported) {
skipBuild("Using XCode version $$QMAKE_XCODE_VERSION, but at least version 5.1 is required to build Qt WebEngine.")
return(false)
}
- # We require OS X 10.9 (darwin version 13.0.0) or newer
+ # We require OS X 10.0 (darwin version 14.0.0) or newer
darwin_major_version = $$section(QMAKE_HOST.version, ., 0, 0)
- lessThan(darwin_major_version, 13) {
- skipBuild("Qt WebEngine requires OS X version 10.9 or newer.")
+ lessThan(darwin_major_version, 14) {
+ skipBuild("Qt WebEngine requires OS X version 10.10 or newer.")
return(false)
}
!isMinOSXSDKVersion(10, 10): {
@@ -222,14 +222,26 @@ defineTest(isSanitizerLinuxClangVersionSupported) {
defineTest(isGCCVersionSupported) {
# The below will work for gcc 4.7 and up and also match gcc 5
- greaterThan(QT_GCC_MINOR_VERSION, 6):return(true)
+ CONFIG(release, debug|release): greaterThan(QT_GCC_MINOR_VERSION, 6):return(true)
greaterThan(QT_GCC_MAJOR_VERSION, 4):return(true)
- skipBuild("Using gcc version "$$QT_GCC_MAJOR_VERSION"."$$QT_GCC_MINOR_VERSION", but at least gcc version 4.7 is required to build Qt WebEngine.")
+
+ # We need GCC 4.9 for debug builds because Skia handles SIMD inlines in headers poorly.
+ greaterThan(QT_GCC_MINOR_VERSION, 8):return(true)
+ CONFIG(debug, debug|release) {
+ skipBuild("Using gcc version "$$QT_GCC_MAJOR_VERSION"."$$QT_GCC_MINOR_VERSION", but at least gcc version 4.9 is required to build debug versions of Qt WebEngine.")
+ } else {
+ skipBuild("Using gcc version "$$QT_GCC_MAJOR_VERSION"."$$QT_GCC_MINOR_VERSION", but at least gcc version 4.7 is required to build Qt WebEngine.")
+ }
return(false)
}
+defineTest(isDeveloperBuild) {
+ qtConfig(private_tests): return(true) # enabled for developer-build
+ return(false)
+}
+
defineTest(isQMLTestSupportApiEnabled) {
- qtConfig(private_tests): return(true) # enable for developer-build
+ isDeveloperBuild(): return(true)
contains(QT_BUILD_PARTS, tests): return(true)
contains(WEBENGINE_CONFIG, testsupport): return(true)
return(false)
@@ -385,24 +397,49 @@ defineTest(use?) {
return(false)
}
-defineReplace(findOrBuildNinja) {
- # If NINJA_PATH env var is set, prefer that.
- # Fallback to locating our own bootstrapped ninja.
- out = $(NINJA_PATH)
- !exists($$out) {
+defineReplace(ninjaPath) {
src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
-
out = $$shadowed($$absolute_path(ninja/ninja, $$src_3rd_party_dir))
win32: out = $${out}.exe
+ return($$out)
+}
+
+defineReplace(gnPath) {
+ src_3rd_party_dir = $$absolute_path("$${getChromiumSrcDir()}/../", "$$QTWEBENGINE_ROOT")
+ out = $$shadowed($$absolute_path(chromium/tools/gn/out/Release/gn, $$src_3rd_party_dir))
- # If we did not find ninja, then we bootstrap it.
- !exists($$out) {
- mkpath($$dirname(out))
- ninja_configure = $$absolute_path(ninja/configure.py, $$src_3rd_party_dir)
- system("cd $$system_quote($$system_path($$dirname(out))) && python $$system_quote($$system_path($$ninja_configure)) --bootstrap")
+ win32: out = $${out}.exe
+ return($$out)
+}
+
+defineReplace(gnArgs) {
+ linux {
+ contains(WEBENGINE_CONFIG, embedded_build): include($$QTWEBENGINE_ROOT/src/core/config/embedded_linux.pri)
+ else: include($$QTWEBENGINE_ROOT/src/core/config/desktop_linux.pri)
}
- }
- return($$system_path($$out))
+ macos: include($$QTWEBENGINE_ROOT/src/core/config/mac_osx.pri)
+ win32: include($$QTWEBENGINE_ROOT/src/core/config/windows.pri)
+ isEmpty(gn_args): error(No gn_args found please make sure you have valid configuration.)
+ return($$gn_args)
+}
+
+defineReplace(gnArch) {
+ qtArch = $$1
+ contains(qtArch, "i386"): return(x86)
+ contains(qtArch, "x86_64"): return(x64)
+ contains(qtArch, "arm"): return(arm)
+ contains(qtArch, "arm64"): return(arm64)
+ contains(qtArch, "mips"): return(mipsel)
+ contains(qtArch, "mips64"): return(mips64el)
+ return(unknown)
+}
+
+defineReplace(gnOS) {
+ macos: return(mac)
+ win32: return(win)
+ linux: return(linux)
+ error(Unsupported platform)
+ return(unknown)
}
defineTest(skipBuild) {
diff --git a/tools/qmake/mkspecs/features/gn_generator.prf b/tools/qmake/mkspecs/features/gn_generator.prf
new file mode 100644
index 000000000..57c53935c
--- /dev/null
+++ b/tools/qmake/mkspecs/features/gn_generator.prf
@@ -0,0 +1,235 @@
+load(moc)
+load(resources)
+
+defineReplace(getTargetType) {
+ equals(TEMPLATE, "app"):return("executable")
+ equals(TEMPLATE, "lib") {
+ CONFIG(static): return("static_library")
+ return("shared_library")
+ }
+ return("none")
+}
+
+defineReplace(filter_flag_values) {
+ value_to_check = $$1
+ macos:equals(value_to_check, "$(EXPORT_ARCH_ARGS)") {
+ # EXPORT_ARCH_ARGS comes from qtbase/mkspecs/features/mac/default_post.prf which is a way
+ # to figure out the architectures to pass to the compiler at Makefile time. Because this
+ # variable expansion is not supported by GN, we filter it out. GN takes care of assigning
+ # the architecture itself.
+ return("")
+ }
+ return($$value_to_check)
+}
+
+isEmpty(GN_FILE): GN_FILE = $$system_path($$_PRO_FILE_PWD_/BUILD.gn)
+isEmpty(GN_RUN_BINARY_SCRIPT): GN_RUN_BINARY_SCRIPT = "//build/gn_run_binary.py"
+isEmpty(GN_FIND_MOCABLES_SCRIPT): GN_FIND_MOCABLES_SCRIPT = "//build/gn_find_mocables.py"
+
+# MOC SETUP
+
+GN_CONTENTS += "moc_source_h_files = exec_script(\"$$GN_FIND_MOCABLES_SCRIPT\","
+GN_CONTENTS += " [ \"$$_PRO_FILE_PWD_\","
+for (headerfile, HEADERS): GN_CONTENTS += " \"$$GN_SRC_DIR/$$headerfile\","
+GN_CONTENTS += " ], \"list lines\", [\"$$system_path($$_PRO_FILE_)\"]"\
+ ")"
+GN_CONTENTS += "moc_source_cpp_files = exec_script(\"$$GN_FIND_MOCABLES_SCRIPT\","
+GN_CONTENTS += " [ \"$$_PRO_FILE_PWD_\","
+for (sourcefile, SOURCES): GN_CONTENTS += " \"$$GN_SRC_DIR/$$sourcefile\","
+GN_CONTENTS += " ], \"list lines\", [\"$$system_path($$_PRO_FILE_)\"]"\
+ ")"
+
+DEFINES_LIST = $$join(DEFINES, " -D", "-D")
+INCLUDE_LIST = $$join(INCLUDEPATH, " -I", "-I")
+
+# we don't generate a moc_predef file yet.
+MOC_PREDEF_FILE =
+MOC_COMMAND = $$clean_path($$mocCmdBase())
+MOC_COMMAND = $$replace(MOC_COMMAND, $$re_escape("$(DEFINES)"), $$DEFINES_LIST)
+MOC_COMMAND = $$replace(MOC_COMMAND, $$re_escape("$(INCPATH)"), $$INCLUDE_LIST)
+MOC_COMMAND = $$eval($$list($$MOC_COMMAND))
+
+GN_CONTENTS += "if (moc_source_h_files != []) {"
+GN_CONTENTS += " action_foreach(\"generate_h_mocs\") {"\
+ " script = \"$$GN_RUN_BINARY_SCRIPT\""
+GN_CONTENTS += " sources = moc_source_h_files" \
+ " outputs = [ \"$target_gen_dir/.moc/moc_{{source_name_part}}.cpp\" ]"
+GN_CONTENTS += " inputs = [ \"$$system_path($$_PRO_FILE_)\" ]" \
+ " args = ["
+for(token, MOC_COMMAND): GN_CONTENTS += " \"$$replace(token,\",\\\")\","
+GN_CONTENTS += " \"{{source}}\"," \
+ " \"-o\"," \
+ " rebase_path(\"$target_gen_dir/.moc/moc_{{source_name_part}}.cpp\")"\
+ " ]"
+GN_CONTENTS += " }"
+GN_CONTENTS += "}"
+GN_CONTENTS += "if (moc_source_cpp_files != []) {"
+GN_CONTENTS += " action_foreach(\"generate_cpp_mocs\") {"\
+ " script = \"$$GN_RUN_BINARY_SCRIPT\""
+GN_CONTENTS += " sources = moc_source_cpp_files" \
+ " outputs = [ \"$target_gen_dir/.moc/{{source_name_part}}.moc\" ]"
+GN_CONTENTS += " inputs = [ \"$$system_path($$_PRO_FILE_)\" ]" \
+ " args = ["
+for(token, MOC_COMMAND): GN_CONTENTS += " \"$$replace(token,\",\\\")\","
+GN_CONTENTS += " \"{{source}}\"," \
+ " \"-o\"," \
+ " rebase_path(\"$target_gen_dir/.moc/{{source_name_part}}.moc\")"\
+ " ]"
+GN_CONTENTS += " }"
+GN_CONTENTS += "}"
+
+# RESOURCES SETUP
+
+CLEAN_QMAKE_RCC = $$clean_path($$QMAKE_RCC)
+
+GN_CONTENTS += "action_foreach(\"generate_resources\") {"\
+ " script = \"$$GN_RUN_BINARY_SCRIPT\""
+GN_CONTENTS += " sources = ["
+for (sourcefile, RESOURCES): GN_CONTENTS += " \"$$GN_SRC_DIR/$$sourcefile\","
+GN_CONTENTS += " ]" \
+ " outputs = [ \"$target_gen_dir/.rcc/qrc_{{source_name_part}}.cpp\" ]"
+GN_CONTENTS += " inputs = [ \"$$system_path($$_PRO_FILE_)\" ]" \
+ " args = [" \
+ " \"$$replace(CLEAN_QMAKE_RCC,\",\\\")\","
+for(resource_flag, $$QMAKE_RESOURCE_FLAGS): GN_CONTENTS += " \"$$resource_flag\""
+GN_CONTENTS += " \"-name\"," \
+ " \"{{source_name_part}}\"," \
+ " \"{{source}}\"," \
+ " \"-o\"," \
+ " rebase_path(\"$target_gen_dir/.rcc/qrc_{{source_name_part}}.cpp\")"\
+ " ]"
+GN_CONTENTS += "}"
+
+# TARGET SETUP
+
+TARGET_TYPE = $$getTargetType()
+
+GN_CONTENTS += "$${TARGET_TYPE}(\"$$TARGET\") {"
+!isEmpty(GN_CREATE_PRI): GN_CONTENTS += " create_pri_file = $$GN_CREATE_PRI"
+!isEmpty(GN_IMPORTS) {
+for (imp, GN_IMPORTS): GN_CONTENTS += " import(\"$$imp\")"
+}
+
+!isEmpty(QMAKE_CFLAGS) {
+ GN_CONTENTS += " cflags = ["
+ for(flag, QMAKE_CFLAGS): GN_CONTENTS += " \"$$filter_flag_values($$flag)\","
+ GN_CONTENTS += " ]"
+}
+
+!isEmpty(QMAKE_FRAMEWORKPATH) {
+ GN_CONTENTS += " cflags += ["
+ for(path, QMAKE_FRAMEWORKPATH): GN_CONTENTS += " \"-F$$path\","
+ GN_CONTENTS += " ]"
+}
+
+# Stop the barrage of unused variables warnings.
+gcc|clang {
+ QMAKE_CXXFLAGS += "-Wno-unused-parameter"
+ QMAKE_CXXFLAGS += "-Wno-unused-variable"
+}
+
+!isEmpty(QMAKE_CXXFLAGS) {
+ GN_CONTENTS += " cflags_cc = ["
+ for(flag, QMAKE_CXXFLAGS): GN_CONTENTS += " \"$$filter_flag_values($$flag)\","
+ GN_CONTENTS += " ]"
+}
+
+GN_CONTENTS += " if (!defined(defines)) {"\
+ " defines = []"\
+ " }"
+GN_CONTENTS += " defines += ["
+# Remove single quotes around function macro defines, so that GN doesn't escape them, thus breaking
+# the macro.
+# Also add a layer of escaping for double quotes.
+for (define, DEFINES): {
+ define = $$replace(define,\",\\\")
+ define = $$replace(define,\',)
+ GN_CONTENTS += " \"$$define\","
+}
+!isEmpty(QMAKE_LIBDIR_EGL):
+ GN_CONTENTS += " \"QT_LIBDIR_EGL=\\\"$${QMAKE_DIR_SEP}$$relative_path($$QMAKE_LIBDIR_EGL, $$[QT_SYSROOT])\\\"\","
+!isEmpty(QMAKE_LIBDIR_OPENGL_ES2)
+ GN_CONTENTS += " \"QT_LIBDIR_GLES2=\\\"$${QMAKE_DIR_SEP}$$relative_path($$QMAKE_LIBDIR_OPENGL_ES2, $$[QT_SYSROOT])\\\"\","
+GN_CONTENTS += " ]"
+
+# Source files to compile
+GN_CONTENTS += " sources = ["
+for (sourcefile, SOURCES): GN_CONTENTS += " \"$$GN_SRC_DIR/$$sourcefile\","
+for (headerfile, HEADERS): GN_CONTENTS += " \"$$GN_SRC_DIR/$$headerfile\","
+GN_CONTENTS += " ]"
+
+# Add Sources generated by rcc from qrc files.
+!isEmpty(RESOURCES): GN_CONTENTS += " sources += get_target_outputs(\":generate_resources\")"
+
+GN_CONTENTS += " if (!defined(include_dirs)) {"\
+ " include_dirs = []"\
+ " }"
+GN_CONTENTS += " include_dirs += ["
+for (path, INCLUDEPATH): GN_CONTENTS += " \"$$path\","
+GN_CONTENTS += " rebase_path(\"$target_gen_dir/.moc/\")"
+GN_CONTENTS += " ]"
+
+GN_CONTENTS += " if (!defined(ldflags)) {"\
+ " ldflags = []"\
+ " }"
+GN_CONTENTS += " ldflags += ["
+for (flag, QMAKE_LFLAGS): GN_CONTENTS += " \"$$filter_flag_values($$flag)\","
+for (flag, GN_FLAGS): GN_CONTENTS += " \"$$flag\","
+!isEmpty(QMAKE_RPATHDIR) {
+ for (rpath, QMAKE_RPATHDIR) {
+ macos: GN_CONTENTS += " \"-Wl,-rpath,$${rpath}\","
+ else:unix: GN_CONTENTS += " \"-Wl,-rpath=$${rpath}\","
+ }
+}
+!isEmpty(QMAKE_RPATHLINKDIR): GN_CONTENTS += " \"-Wl,-rpath-link=$${QMAKE_RPATHLINKDIR}\","
+GN_CONTENTS += " ]"
+
+GN_CONTENTS += " if (!defined(lib_dirs)) {"\
+ " lib_dirs = []"\
+ " }"
+GN_CONTENTS += " lib_dirs += ["
+lib_dirs = $$find(LIBS, ^-L.*)
+lib_dirs = $$unique(lib_dirs)
+for (lib_dir, lib_dirs): GN_CONTENTS += " \"$$replace(lib_dir, -L, )\","
+GN_CONTENTS += " ]"
+
+GN_CONTENTS += " if (!defined(libs)) {"\
+ " libs = []"\
+ " }"
+GN_CONTENTS += " libs += ["
+for (lib, GN_LIBS): GN_CONTENTS += " \"$$lib\","
+libs = $$find(LIBS, ^-l.*)
+libs = $$unique(libs)
+for (lib, libs): GN_CONTENTS += " \"$$replace(lib, -l, )\","
+GN_CONTENTS += " ]"
+
+GN_CONTENTS += " if (!defined(deps)) {"\
+ " deps = []"\
+ " }"
+GN_CONTENTS += " deps += ["
+!isEmpty(RESOURCES): GN_CONTENTS += " \":generate_resources\","
+GN_CONTENTS += " ]"
+GN_CONTENTS += " if (moc_source_h_files != []) {"
+GN_CONTENTS += " deps += ["
+GN_CONTENTS += " \":generate_h_mocs\","
+GN_CONTENTS += " ]"
+# Add moc output files to compile
+GN_CONTENTS += " sources += get_target_outputs(\":generate_h_mocs\")"
+GN_CONTENTS += " }"
+GN_CONTENTS += " if (moc_source_cpp_files != []) {"
+GN_CONTENTS += " deps += ["
+GN_CONTENTS += " \":generate_cpp_mocs\","
+GN_CONTENTS += " ]"
+GN_CONTENTS += " }"
+GN_CONTENTS += "}"
+!isEmpty(GN_INCLUDES) {
+ for (inc, GN_INCLUDES): GN_CONTENTS += $$cat($$inc,lines)
+}
+
+build_pass|!debug_and_release: write_file($$GN_FILE, GN_CONTENTS)
+
+# The generated Makefile shouldn't build anything by itself, just re-run qmake if necessary
+TEMPLATE = aux
+SOURCES =
+HEADERS =
+RESOURCES =
diff --git a/tools/scripts/gn_find_mocables.py b/tools/scripts/gn_find_mocables.py
new file mode 100644
index 000000000..d97dcb534
--- /dev/null
+++ b/tools/scripts/gn_find_mocables.py
@@ -0,0 +1,68 @@
+#############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the QtWebEngine module of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:GPL-EXCEPT$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 as published by the Free Software
+## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+import re
+import sys
+import os
+
+mocables = set()
+includedMocs = set()
+dir = sys.argv[1]
+files = sys.argv[2:]
+
+for f in filter(os.path.isfile, [os.path.join(dir, f) for f in files]):
+ inBlockComment = False
+ for line in open(f).readlines():
+ # Block comments handling
+ if "/*" in line:
+ inBlockComment = True
+ if inBlockComment and "*/" in line:
+ inBlockComment = False
+ if line.find("*/") != len(line) - 3:
+ line = line[line.find("*/")+2:]
+ else:
+ continue
+ if inBlockComment:
+ continue
+ #simple comments handling
+ if "//" in line:
+ line = line.partition("//")[0]
+ if re.match(".*Q_OBJECT", line):
+ mocables.add(f)
+ im = re.search('#include "(moc_\w+.cpp)"', line)
+ if im:
+ includedMocs.add(im.group(1))
+
+for mocable in includedMocs:
+ print "Found included moc: " + mocable
+
+assert len(includedMocs) == 0 , "Included mocs are not supported !"
+
+for mocable in mocables:
+ print mocable
+sys.exit(0)
diff --git a/tools/scripts/gn_run_binary.py b/tools/scripts/gn_run_binary.py
new file mode 100644
index 000000000..5debf02ab
--- /dev/null
+++ b/tools/scripts/gn_run_binary.py
@@ -0,0 +1,33 @@
+#############################################################################
+##
+## Copyright (C) 2016 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the QtWebEngine module of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:GPL-EXCEPT$
+## 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 https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 as published by the Free Software
+## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+
+import sys
+import subprocess
+
+sys.exit(subprocess.call(sys.argv[1:]))
diff --git a/tools/scripts/init-repository.py b/tools/scripts/init-repository.py
index 9fd951be4..dc5cdb8ce 100755
--- a/tools/scripts/init-repository.py
+++ b/tools/scripts/init-repository.py
@@ -80,6 +80,7 @@ def updateLastChange():
print 'updating LASTCHANGE files'
subprocess.call(['python', 'build/util/lastchange.py', '-o', 'build/util/LASTCHANGE'])
subprocess.call(['python', 'build/util/lastchange.py', '-s', 'third_party/WebKit', '-o', 'build/util/LASTCHANGE.blink'])
+ subprocess.call(['python', 'build/util/lastchange.py', '-m', 'SKIA_COMMIT_HASH', '-s', 'third_party/skia', '--header', 'skia/ext/skia_commit_hash.h'])
os.chdir(currentDir)
def initUpstreamSubmodules():
diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py
index 93575d821..7af70bf22 100755
--- a/tools/scripts/take_snapshot.py
+++ b/tools/scripts/take_snapshot.py
@@ -58,7 +58,7 @@ def isInChromiumBlacklist(file_path):
if file_path.endswith('.gyp') or file_path.endswith('.gypi') or file_path.endswith('.isolate'):
return False
# We do need all the gn file.
- if file_path.endswith('.gn') or file_path.endswith('.gni') or file_path.endswith('typemap') or \
+ if file_path.endswith('.gn') or file_path.endswith('.gni') or file_path.endswith('.typemap') or \
file_path.endswith('.mojom'):
return False
if ( '_jni' in file_path
@@ -76,10 +76,8 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('android_webview')
or file_path.startswith('apps/')
or file_path.startswith('ash/')
- or file_path.startswith('athena')
- or file_path.startswith('base/android/java')
+ or file_path.startswith('base/android')
or file_path.startswith('breakpad')
- or file_path.startswith('build/android/')
or file_path.startswith('buildtools/clang_format/script')
or (file_path.startswith('chrome/') and
not file_path.startswith('chrome/VERSION') and
@@ -91,8 +89,8 @@ def isInChromiumBlacklist(file_path):
not '/renderer/resources/' in file_path and
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.' in file_path and
+ not 'media/webrtc/desktop_media_list.h' in file_path and
+ not 'media/webrtc/desktop_streams_registry.' in file_path and
not 'common/chrome_constants.' in file_path and
not 'common/chrome_paths' in file_path and
not 'common/chrome_switches.' in file_path and
@@ -113,21 +111,20 @@ def isInChromiumBlacklist(file_path):
not file_path.endswith('.json') and
not file_path.endswith('chrome_version.rc.version'))
or file_path.startswith('chrome_frame')
+ or file_path.startswith('chromecast')
or file_path.startswith('chromeos')
- or file_path.startswith('cloud_print')
or file_path.startswith('components/chrome_apps/')
or file_path.startswith('components/cronet/')
or file_path.startswith('components/drive/')
or file_path.startswith('components/invalidation/')
or file_path.startswith('components/gcm_driver/')
- or file_path.startswith('components/mus/')
or file_path.startswith('components/nacl/')
or file_path.startswith('components/omnibox/')
or file_path.startswith('components/policy/')
or file_path.startswith('components/proximity_auth/')
or (file_path.startswith('components/resources/terms/') and not file_path.endswith('terms_chromium.html'))
or file_path.startswith('components/rlz/')
- or file_path.startswith('components/sync_driver/')
+ or file_path.startswith('components/sync/')
or file_path.startswith('components/test/')
or file_path.startswith('components/test_runner/')
or file_path.startswith('components/translate/')
@@ -143,7 +140,6 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('net/android/java')
or file_path.startswith('remoting')
or file_path.startswith('rlz')
- or file_path.startswith('sync')
or file_path.startswith('testing/android')
or file_path.startswith('testing/buildbot')
or file_path.startswith('third_party/WebKit/LayoutTests')
@@ -168,6 +164,7 @@ def isInChromiumBlacklist(file_path):
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/freetype-android')
or file_path.startswith('third_party/google_input_tools')
or file_path.startswith('third_party/gperf')
or file_path.startswith('third_party/gnu_binutils')
@@ -298,6 +295,7 @@ def exportChromium():
# Add LASTCHANGE files which are not tracked by git.
files.append('build/util/LASTCHANGE')
files.append('build/util/LASTCHANGE.blink')
+ files.append('skia/ext/skia_commit_hash.h')
print 'copying files to ' + third_party_chromium
for i in xrange(len(files)):
printProgress(i+1, len(files))
diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py
index e481f0ed0..b80efff34 100644
--- a/tools/scripts/version_resolver.py
+++ b/tools/scripts/version_resolver.py
@@ -38,9 +38,9 @@ import json
import urllib2
import git_submodule as GitSubmodule
-chromium_version = '53.0.2785.148'
-chromium_branch = '2785'
-ninja_version = 'v1.7.1'
+chromium_version = '55.0.2883.105'
+chromium_branch = '2883'
+ninja_version = 'v1.7.2'
json_url = 'http://omahaproxy.appspot.com/all.json'