| # 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. |
| |
| # 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 = "//third_party/WebKit/*" |
| |
| config("wtf_config") { |
| if (is_win) { |
| defines = [ |
| "__STD_C", |
| "_CRT_SECURE_NO_DEPRECATE", |
| "_SCL_SECURE_NO_DEPRECATE", |
| "CRASH=__debugbreak", |
| ] |
| include_dirs = [ |
| "os-win32", |
| ] |
| |
| cflags = [ |
| # Don't complain about calling specific versions of templatized |
| # functions (e.g. in RefPtrHashMap.h). |
| "/wd4344", |
| # Conversion from 'size_t' to 'type'. |
| "/wd4267", |
| # dtoa, icu, etc. like doing assignment within conditional. |
| "/wd4706", |
| ] |
| |
| if (component_mode == "shared_library") { |
| # 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" ] |
| |
| direct_dependent_configs = [ |
| ":wtf_config", |
| "//third_party/WebKit/Source:features", |
| ] |
| |
| deps = [ |
| "//third_party/icu", |
| ] |
| |
| forward_dependent_configs_from = [ "//third_party/icu" ] |
| |
| if (is_win) { |
| sources -= [ |
| "ThreadIdentifierDataPthreads.cpp", |
| "ThreadIdentifierDataPthreads.h", |
| "ThreadingPthreads.cpp", |
| ] |
| |
| cflags = [ |
| "/wd4068", # Unknown pragma. |
| ] |
| } else { |
| # Non-Windows. |
| sources -= [ |
| "ThreadSpecificWin.cpp", |
| "ThreadingWin.cpp", |
| ] |
| } |
| |
| if (is_android) { |
| libs = [ "log" ] |
| } |
| |
| if (is_mac) { |
| libs = [ "CoreFoundation.framework", "Foundation.framework" ] |
| } else { |
| sources -= [ |
| "text/StringImplCF.cpp", |
| "text/AtomicStringCF.cpp", |
| "text/StringCF.cpp", |
| ] |
| } |
| } |
| |
| test("wtf_unittests") { |
| sources = gypi_values.wtf_unittest_files |
| |
| sources += [ "testing/RunAllTests.cpp" ] |
| |
| if (is_win) { |
| cflags = [ |
| "/wd4068", # Unknown pragma. |
| "/wd4267", # Conversion from 'size_t' to 'type', |
| ] |
| } |
| |
| configs += [ "//third_party/WebKit/Source:config", ] |
| |
| deps = [ |
| ":test_support", |
| ":wtf", |
| "//base", |
| "//base/allocator", |
| "//base/test:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| component("test_support") { |
| output_name = "wtf_test_support" |
| sources = gypi_values.wtf_unittest_helper_files |
| defines = [ "WTF_UNITTEST_HELPERS_IMPLEMENTATION=1" ] |
| |
| configs += [ |
| ":wtf_config", |
| "//third_party/WebKit/Source:config", |
| "//third_party/WebKit/Source:non_test_config", |
| ] |
| |
| deps = [ |
| ":wtf", |
| ] |
| } |