| # 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", |
| ] |
| } |