Home | History | Annotate | Download | only in wtf
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 # The list of files is kept in the .gypi.
      6 gypi_values = exec_script("//build/gypi_to_gn.py",
      7                           [ rebase_path("wtf.gypi") ],
      8                           "scope",
      9                           [ "wtf.gypi" ])
     10 
     11 visibility = [ "//third_party/WebKit/*" ]
     12 
     13 config("wtf_config") {
     14   if (is_win) {
     15     defines = [
     16       "__STD_C",
     17       "_CRT_SECURE_NO_DEPRECATE",
     18       "_SCL_SECURE_NO_DEPRECATE",
     19       "CRASH=__debugbreak",
     20     ]
     21     include_dirs = [
     22       "os-win32",
     23     ]
     24 
     25     cflags = [
     26       # Don't complain about calling specific versions of templatized
     27       # functions (e.g. in RefPtrHashMap.h).
     28       "/wd4344",
     29       # Conversion from 'size_t' to 'type'.
     30       "/wd4267",
     31       # dtoa, icu, etc. like doing assignment within conditional.
     32       "/wd4706",
     33     ]
     34 
     35     if (component_mode == "shared_library") {
     36       # Chromium windows multi-dll build enables C++ exceptions and this causes
     37       # wtf to generate 4291 warning due to operator new/delete
     38       # implementations. Disable the warning for chromium windows multi-dll
     39       # build.
     40       cflags += [ "/wd4291" ]
     41     }
     42   }
     43 }
     44 
     45 component("wtf") {
     46   sources = gypi_values.wtf_files
     47 
     48   configs += [
     49     "//third_party/WebKit/Source:config",
     50     "//third_party/WebKit/Source:non_test_config",
     51   ]
     52 
     53   defines = [ "WTF_IMPLEMENTATION=1" ]
     54 
     55   public_configs = [
     56     ":wtf_config",
     57     "//third_party/WebKit/Source:features",
     58   ]
     59 
     60   public_deps = [
     61     "//third_party/icu",
     62   ]
     63 
     64   if (is_win) {
     65     sources -= [
     66       "ThreadingPthreads.cpp",
     67     ]
     68 
     69     cflags = [
     70       "/wd4068",  # Unknown pragma.
     71     ]
     72   } else {
     73     # Non-Windows.
     74     sources -= [
     75       "ThreadSpecificWin.cpp",
     76       "ThreadingWin.cpp",
     77     ]
     78   }
     79 
     80   if (is_android) {
     81     libs = [ "log" ]
     82   }
     83 
     84   if (is_mac) {
     85     libs = [ "CoreFoundation.framework", "Foundation.framework" ]
     86   } else {
     87     sources -= [
     88       "text/StringImplCF.cpp",
     89       "text/AtomicStringCF.cpp",
     90       "text/StringCF.cpp",
     91     ]
     92   }
     93 }
     94 
     95 test("wtf_unittests") {
     96   sources = gypi_values.wtf_unittest_files
     97 
     98   sources += [ "testing/RunAllTests.cpp" ]
     99 
    100   if (is_win) {
    101     cflags = [
    102       "/wd4068",  # Unknown pragma.
    103       "/wd4267",  # Conversion from 'size_t' to 'type',
    104     ]
    105   }
    106 
    107   configs += [ "//third_party/WebKit/Source:config", ]
    108 
    109   deps = [
    110     ":test_support",
    111     ":wtf",
    112     "//base",
    113     "//base/allocator",
    114     "//base/test:test_support",
    115     "//testing/gmock",
    116     "//testing/gtest",
    117   ]
    118 }
    119 
    120 component("test_support") {
    121   output_name = "wtf_test_support"
    122   sources = gypi_values.wtf_unittest_helper_files
    123   defines = [ "WTF_UNITTEST_HELPERS_IMPLEMENTATION=1" ]
    124 
    125   configs += [
    126     ":wtf_config",
    127     "//third_party/WebKit/Source:config",
    128     "//third_party/WebKit/Source:non_test_config",
    129   ]
    130 
    131   deps = [
    132     ":wtf",
    133   ]
    134 }
    135