mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-07 17:26:49 +08:00
Due to http://crbug.com/389883 GN currently doesn't execute unless the top folder is named 'src'. To work around this, perform the following changes to a checkout that currently has "trunk" as the root folder: 1. Rename trunk -> src 2. Remove .gclient_entries file (will be re-created) 3. Edit .gclient and: * set the name of the solution to "src" * add/change the custom_vars dict for the solution to have a key like this: "custom_vars" : { "root_dir" : "src", }, 4. Run gclient sync The buildbots already have this done and gets a "src" dir for their checkouts. I also workaround some recent changes for sanitizer tools and add a copy of Chromium's tsan_suppressions.cc to prepare for TSan v2 (since v1 that libyuv is currently using is deprecated and should be removed). BUG=libyuv:338 TEST=Currently working trybot passing + local compile on Linux in Debug,Release and with ASan+TSan v2 using: GYP_DEFINES="asan=1 release_extra_cflags=-g use_allocator=none" ./gyp_libyuv && ninja -C out/Release GYP_DEFINES="tsan=1 release_extra_cflags=-g use_allocator=none" ./gyp_libyuv && ninja -C out/Release R=fbarchard@google.com Review URL: https://webrtc-codereview.appspot.com/12889004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1027 16f28f9a-4ce2-e073-06de-1de4eb20be90
60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
# 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
|
|
}
|