blob: 0efc9fe270a09a142b3698406a9a7a3ba1ce5795 [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
assert(!is_ios)
import("//testing/test.gni")
import("//third_party/WebKit/Source/config.gni")
# The list of files is kept in the .gypi.
gypi_values = exec_script("//build/gypi_to_gn.py",
[ rebase_path("wtf.gypi") ],
"scope",
[ "wtf.gypi" ])
visibility = [
"//mojo/public/cpp/bindings/*",
"//third_party/WebKit/*",
]
config("wtf_config") {
if (is_win) {
defines = [
"__STD_C",
"_CRT_SECURE_NO_DEPRECATE",
"_SCL_SECURE_NO_DEPRECATE",
]
include_dirs = [ "os-win32" ]
cflags = [
# Don't complain about calling specific versions of templatized
# functions (e.g. in RefPtrHashMap.h).
"/wd4344",
# dtoa, icu, etc. like doing assignment within conditional.
"/wd4706",
]
if (is_component_build) {
# Chromium windows multi-dll build enables C++ exceptions and this causes
# wtf to generate 4291 warning due to operator new/delete
# implementations. Disable the warning for chromium windows multi-dll
# build.
cflags += [ "/wd4291" ]
}
}
}
component("wtf") {
sources = gypi_values.wtf_files
configs += [
"//third_party/WebKit/Source:config",
"//third_party/WebKit/Source:non_test_config",
]
defines = [ "WTF_IMPLEMENTATION=1" ]
public_configs = [
":wtf_config",
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
"//build/config/compiler:no_size_t_to_int_warning",
"//third_party/WebKit/Source:features",
]
public_deps = [
"//base",
"//third_party/icu",
]
if (is_win) {
sources -= [ "ThreadingPthreads.cpp" ]
cflags = [ "/wd4068" ] # Unknown pragma.
} else {
# Non-Windows.
sources -= [
"ThreadSpecificWin.cpp",
"ThreadingWin.cpp",
]
}
if (is_android) {
libs = [ "log" ]
}
if (is_linux) {
libs = [ "dl" ]
}
if (is_mac) {
libs = [
"CoreFoundation.framework",
"Foundation.framework",
]
} else {
sources -= [
"text/AtomicStringCF.cpp",
"text/StringImplCF.cpp",
]
}
if (remove_webcore_debug_symbols) {
configs -= [ "//build/config/compiler:default_symbols" ]
configs += [ "//build/config/compiler:no_symbols" ]
}
}
test("wtf_unittests") {
visibility = [] # Allow re-assignment of list.
visibility = [ "*" ]
sources = gypi_values.wtf_unittest_files
sources += [ "testing/RunAllTests.cpp" ]
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
if (is_win) {
cflags = [ "/wd4068" ] # Unknown pragma.
}
configs += [ "//third_party/WebKit/Source:config" ]
deps = [
":wtf",
"//base",
"//base/test:test_support",
"//testing/gmock",
"//testing/gtest",
]
}