diff --git a/DEPS b/DEPS index fd71cb0d8..2fae824f0 100644 --- a/DEPS +++ b/DEPS @@ -14,7 +14,7 @@ vars = { "chromium_trunk" : "http://src.chromium.org/svn/trunk", # chrome://version/ for revision of canary Chrome. # http://chromium-status.appspot.com/lkgr is a last known good revision. - "chromium_revision": "274825", + "chromium_revision": "280149", } # NOTE: Prefer revision numbers to tags for svn deps. Use http rather than @@ -29,6 +29,9 @@ deps = { "build": Var("chromium_trunk") + "/src/build@" + Var("chromium_revision"), + "buildtools": + From("chromium_deps", "src/buildtools"), + # Needed by common.gypi. "google_apis/build": Var("chromium_trunk") + "/src/google_apis/build@" + Var("chromium_revision"), @@ -48,9 +51,18 @@ deps = { "tools/gyp": From("chromium_deps", "src/tools/gyp"), + "tools/memory": + Var("chromium_trunk") + "/src/tools/memory@" + Var("chromium_revision"), + "tools/python": Var("chromium_trunk") + "/src/tools/python@" + Var("chromium_revision"), + "tools/sanitizer_options": + File(Var("chromium_trunk") + "/src/base/debug/sanitizer_options.cc@" + Var("chromium_revision")), + + "tools/tsan_suppressions": + File(Var("chromium_trunk") + "/src/base/debug/tsan_suppressions.cc@" + Var("chromium_revision")), + "tools/valgrind": Var("chromium_trunk") + "/src/tools/valgrind@" + Var("chromium_revision"), @@ -61,6 +73,18 @@ deps = { "third_party/binutils": Var("chromium_trunk") + "/src/third_party/binutils@" + Var("chromium_revision"), + "third_party/libc++": + Var("chromium_trunk") + "/src/third_party/libc++@" + Var("chromium_revision"), + + "third_party/libc++/trunk": + From("chromium_deps", "src/third_party/libc++/trunk"), + + "third_party/libc++abi": + Var("chromium_trunk") + "/src/third_party/libc++abi@" + Var("chromium_revision"), + + "third_party/libc++abi/trunk": + From("chromium_deps", "src/third_party/libc++abi/trunk"), + "third_party/libjpeg_turbo": From("chromium_deps", "src/third_party/libjpeg_turbo"), @@ -130,7 +154,7 @@ hooks = [ "--platform=win32", "--no_auth", "--bucket", "chromium-gn", - "-s", Var("root_dir") + "/tools/gn/bin/win/gn.exe.sha1", + "-s", Var("root_dir") + "/buildtools/win/gn.exe.sha1", ], }, { @@ -141,7 +165,7 @@ hooks = [ "--platform=darwin", "--no_auth", "--bucket", "chromium-gn", - "-s", Var("root_dir") + "/tools/gn/bin/mac/gn.sha1", + "-s", Var("root_dir") + "/buildtools/mac/gn.sha1", ], }, { @@ -152,7 +176,7 @@ hooks = [ "--platform=linux*", "--no_auth", "--bucket", "chromium-gn", - "-s", Var("root_dir") + "/tools/gn/bin/linux/gn.sha1", + "-s", Var("root_dir") + "/buildtools/linux64/gn.sha1", ], }, { @@ -163,9 +187,16 @@ hooks = [ "--platform=linux*", "--no_auth", "--bucket", "chromium-gn", - "-s", Var("root_dir") + "/tools/gn/bin/linux/gn32.sha1", + "-s", Var("root_dir") + "/buildtools/linux32/gn.sha1", ], }, + { + # Remove GN binaries from tools/gn/bin that aren't used anymore. + # TODO(kjellander) remove after the end of July, 2014. + "name": "remove_old_gn_binaries", + "pattern": ".", + "action": ["python", Var("root_dir") + "/tools/gn/bin/rm_binaries.py"], + }, { # Pull clang on mac. If nothing changed, or on non-mac platforms, this takes # zero seconds to run. If something changed, it downloads a prebuilt clang. diff --git a/tools/sanitizer_options.gyp b/tools/sanitizer_options.gyp new file mode 100644 index 000000000..ea453d356 --- /dev/null +++ b/tools/sanitizer_options.gyp @@ -0,0 +1,59 @@ +# Copyright 2014 The LibYuv Project Authors. All rights reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +# This is a similar target to the one in Chromium's base.gyp. It's needed to get +# the same sanitizer settings as Chromium uses (i.e. ASan, LSan, TSan...). +{ + 'targets': [ + { + 'target_name': 'sanitizer_options', + 'type': 'static_library', + 'toolsets': ['host', 'target'], + 'variables': { + # Every target is going to depend on sanitizer_options, so allow + # this one to depend on itself. + 'prune_self_dependency': 1, + # Do not let 'none' targets depend on this one, they don't need to. + 'link_dependency': 1, + }, + 'sources': [ + 'sanitizer_options/sanitizer_options.cc', + ], + 'include_dirs': [ + '<(DEPTH)', + ], + # Some targets may want to opt-out from ASan, TSan and MSan and link + # without the corresponding runtime libraries. We drop the libc++ + # dependency and omit the compiler flags to avoid bringing instrumented + # code to those targets. + 'conditions': [ + ['use_custom_libcxx==1', { + 'dependencies!': [ + '<(DEPTH)/third_party/libc++/libc++.gyp:libcxx_proxy', + ], + }], + ['tsan==1', { + 'sources': [ + 'tsan_suppressions/tsan_suppressions.cc', + ], + }], + ], + 'cflags!': [ + '-fsanitize=address', + '-fsanitize=thread', + '-fsanitize=memory', + '-fsanitize-memory-track-origins', + ], + 'direct_dependent_settings': { + 'ldflags': [ + '-Wl,-u_sanitizer_options_link_helper', + ], + }, + }, + ], # targets +} diff --git a/tools/supplement.gypi b/tools/supplement.gypi new file mode 100644 index 000000000..c1cff3f6d --- /dev/null +++ b/tools/supplement.gypi @@ -0,0 +1,31 @@ +# Copyright 2011 The LibYuv Project Authors. All rights reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +# Supplement file for libyuv. To be processed, this file needs to be located in +# the first level of directories below the gyp_libyuv file. + +# This is needed to workaround the otherwise failing include of base.gyp in +# Chromium's common.gypi when a sanitizer tool is used. +{ + 'variables': { + 'use_sanitizer_options': 0, + }, + 'target_defaults': { + 'conditions': [ + # Add default sanitizer options similar to Chromium. This is needed to get + # the sanitizer options that has LeakSanitizer disabled by default. + # Otherwise yasm will throw leak errors during compile when + # GYP_DEFINES="asan=1". + ['OS=="linux" and (chromeos==0 or target_arch!="ia32")', { + 'dependencies': [ + '<(DEPTH)/tools/sanitizer_options.gyp:sanitizer_options', + ], + }], + ], + }, +}