1 # Copyright (C) 2012 Google Inc. All rights reserved. 2 # 3 # Redistribution and use in source and binary forms, with or without 4 # modification, are permitted provided that the following conditions are 5 # met: 6 # 7 # * Redistributions of source code must retain the above copyright 8 # notice, this list of conditions and the following disclaimer. 9 # * Redistributions in binary form must reproduce the above 10 # copyright notice, this list of conditions and the following disclaimer 11 # in the documentation and/or other materials provided with the 12 # distribution. 13 # * Neither the name of Google Inc. nor the names of its 14 # contributors may be used to endorse or promote products derived from 15 # this software without specific prior written permission. 16 # 17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 { 29 'includes': [ 30 '../build/win/precompile.gypi', 31 '../build/features.gypi', 32 'wtf.gypi', 33 ], 34 'conditions': [ 35 ['gcc_version>=46', { 36 'target_defaults': { 37 # Disable warnings about c++0x compatibility, as some names (such as nullptr) conflict 38 # with upcoming c++0x types. 39 'cflags_cc': ['-Wno-c++0x-compat'], 40 }, 41 }], 42 ], 43 'targets': [ 44 { 45 # This target sets up defines and includes that are required by WTF and 46 # its dependents. 47 'target_name': 'wtf_config', 48 'type': 'none', 49 'direct_dependent_settings': { 50 'defines': [ 51 # Import features_defines from features.gypi 52 '<@(feature_defines)', 53 ], 54 'conditions': [ 55 ['OS=="win"', { 56 'defines': [ 57 '__STD_C', 58 '_CRT_SECURE_NO_DEPRECATE', 59 '_SCL_SECURE_NO_DEPRECATE', 60 'CRASH=__debugbreak', 61 ], 62 'include_dirs': [ 63 'os-win32', 64 ], 65 }], 66 ], 67 }, 68 }, 69 { 70 'target_name': 'wtf', 71 'type': '<(component)', 72 'include_dirs': [ 73 '..', 74 ], 75 'dependencies': [ 76 'wtf_config', 77 '../config.gyp:config', 78 '<(DEPTH)/third_party/icu/icu.gyp:icui18n', 79 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 80 ], 81 'sources': [ 82 '<@(wtf_files)', 83 ], 84 'defines': [ 85 'WTF_IMPLEMENTATION=1', 86 ], 87 'direct_dependent_settings': { 88 'include_dirs': [ 89 '..', 90 ], 91 # Some warnings occur in WTF headers, so they must also be disabled 92 # in targets that use WTF. 93 'msvs_disabled_warnings': [ 94 # Don't complain about calling specific versions of templatized 95 # functions (e.g. in RefPtrHashMap.h). 96 4344, 97 # Don't complain about using "this" in an initializer list 98 # (e.g. in StringImpl.h). 99 4355, 100 # Disable c4267 warnings until we fix size_t to int truncations. 101 4267, 102 ], 103 }, 104 'export_dependent_settings': [ 105 'wtf_config', 106 '<(DEPTH)/third_party/icu/icu.gyp:icui18n', 107 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 108 ], 109 # Disable c4267 warnings until we fix size_t to int truncations. 110 'msvs_disabled_warnings': [4127, 4355, 4510, 4512, 4610, 4706, 4068, 4267], 111 'conditions': [ 112 ['OS=="android"', { 113 'link_settings': { 114 'libraries': [ 115 '-llog', 116 ] 117 } 118 }], 119 ['OS=="win"', { 120 'sources/': [ 121 ['exclude', 'ThreadIdentifierDataPthreads\\.(h|cpp)$'], 122 ['exclude', 'ThreadingPthreads\\.cpp$'], 123 ], 124 'include_dirs!': [ 125 '<(SHARED_INTERMEDIATE_DIR)/blink', 126 ], 127 'conditions': [ 128 ['component=="shared_library"', { 129 # Chromium windows multi-dll build enables c++ exception and this 130 # causes wtf generates 4291 warning due to operator new/delete 131 # implementations. Disable the warning for chromium windows 132 # multi-dll build. 133 'msvs_disabled_warnings': [4291], 134 'direct_dependent_settings': { 135 'msvs_disabled_warnings': [4291], 136 }, 137 }], 138 ], 139 }, { # OS!="win" 140 'sources/': [ 141 ['exclude', 'Win\\.cpp$'], 142 ], 143 }], 144 ['OS=="mac"', { 145 'link_settings': { 146 'libraries': [ 147 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', 148 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', 149 ] 150 } 151 }, { # OS!="mac" 152 'sources/': [ 153 ['exclude', 'CF\\.cpp$'], 154 ['exclude', 'Mac\\.mm$'], 155 # mac is the only OS that uses WebKit's copy of TCMalloc. 156 ['exclude', 'TC.*\\.(cpp|h)$'], 157 ], 158 }], 159 ], 160 }, 161 ] 162 } 163