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 }], 63 ], 64 }, 65 }, 66 { 67 'target_name': 'wtf', 68 'type': '<(component)', 69 'include_dirs': [ 70 '..', 71 ], 72 'dependencies': [ 73 'wtf_config', 74 '../config.gyp:config', 75 '<(DEPTH)/third_party/icu/icu.gyp:icui18n', 76 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 77 ], 78 'sources': [ 79 '<@(wtf_files)', 80 ], 81 'defines': [ 82 'WTF_IMPLEMENTATION=1', 83 ], 84 'direct_dependent_settings': { 85 'include_dirs': [ 86 '..', 87 ], 88 # Some warnings occur in WTF headers, so they must also be disabled 89 # in targets that use WTF. 90 'msvs_disabled_warnings': [ 91 # Don't complain about calling specific versions of templatized 92 # functions (e.g. in RefPtrHashMap.h). 93 4344, 94 # Don't complain about using "this" in an initializer list 95 # (e.g. in StringImpl.h). 96 4355, 97 # Disable c4267 warnings until we fix size_t to int truncations. 98 4267, 99 ], 100 }, 101 'export_dependent_settings': [ 102 'wtf_config', 103 '<(DEPTH)/third_party/icu/icu.gyp:icui18n', 104 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 105 ], 106 # Disable c4267 warnings until we fix size_t to int truncations. 107 'msvs_disabled_warnings': [4127, 4355, 4510, 4512, 4610, 4706, 4068, 4267], 108 'conditions': [ 109 ['OS=="android"', { 110 'link_settings': { 111 'libraries': [ 112 '-llog', 113 ] 114 } 115 }], 116 ['OS=="win"', { 117 'sources/': [ 118 ['exclude', 'ThreadingPthreads\\.cpp$'], 119 ], 120 'include_dirs!': [ 121 '<(SHARED_INTERMEDIATE_DIR)/blink', 122 ], 123 'conditions': [ 124 ['component=="shared_library"', { 125 # Chromium windows multi-dll build enables C++ exception and this 126 # causes wtf to generate 4291 warning due to operator new/delete 127 # implementations. Disable the warning for chromium windows 128 # multi-dll build. 129 'msvs_disabled_warnings': [4291], 130 'direct_dependent_settings': { 131 'msvs_disabled_warnings': [4291], 132 }, 133 }], 134 ], 135 }, { # OS!="win" 136 'sources/': [ 137 ['exclude', 'Win\\.cpp$'], 138 ], 139 }], 140 ['OS=="mac"', { 141 'link_settings': { 142 'libraries': [ 143 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', 144 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework', 145 ] 146 } 147 }, { # OS!="mac" 148 'sources/': [ 149 ['exclude', 'CF\\.cpp$'], 150 ['exclude', 'Mac\\.mm$'], 151 # mac is the only OS that uses WebKit's copy of TCMalloc. 152 ['exclude', 'TC.*\\.(cpp|h)$'], 153 ], 154 }], 155 ], 156 }, 157 ] 158 } 159