]> git.saurik.com Git - apple/javascriptcore.git/blob - JavaScriptCore.gyp/JavaScriptCore.gyp
66f40e9587af63973a84c044521358a6f3504765
[apple/javascriptcore.git] / JavaScriptCore.gyp / JavaScriptCore.gyp
1 #
2 # Copyright (C) 2009 Google Inc. All rights reserved.
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met:
7 #
8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above
11 # copyright notice, this list of conditions and the following disclaimer
12 # in the documentation and/or other materials provided with the
13 # distribution.
14 # * Neither the name of Google Inc. nor the names of its
15 # contributors may be used to endorse or promote products derived from
16 # this software without specific prior written permission.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #
30
31 {
32 'includes': [
33 # FIXME: Sense whether upstream or downstream build, and
34 # include the right features.gypi
35 '../../WebKit/chromium/features.gypi',
36 '../JavaScriptCore.gypi',
37 ],
38 'variables': {
39 # Location of the chromium src directory.
40 'conditions': [
41 ['inside_chromium_build==0', {
42 # Webkit is being built outside of the full chromium project.
43 'chromium_src_dir': '../../WebKit/chromium',
44 },{
45 # WebKit is checked out in src/chromium/third_party/WebKit
46 'chromium_src_dir': '../../../..',
47 }],
48 ],
49 },
50 'targets': [
51 {
52 # This target sets up defines and includes that are required by WTF and
53 # its dependents.
54 'target_name': 'wtf_config',
55 'type': 'none',
56 'msvs_guid': '2E2D3301-2EC4-4C0F-B889-87073B30F673',
57 'direct_dependent_settings': {
58 'defines': [
59 # Import features_defines from features.gypi
60 '<@(feature_defines)',
61
62 # Turns on #if PLATFORM(CHROMIUM)
63 'BUILDING_CHROMIUM__=1',
64 # Controls wtf/FastMalloc
65 # FIXME: consider moving into config.h
66 'USE_SYSTEM_MALLOC=1',
67 ],
68 'conditions': [
69 ['OS=="win"', {
70 'defines': [
71 '__STD_C',
72 '_CRT_SECURE_NO_DEPRECATE',
73 '_SCL_SECURE_NO_DEPRECATE',
74 'CRASH=__debugbreak',
75 ],
76 'include_dirs': [
77 '../os-win32',
78 ],
79 }],
80 ['OS=="mac"', {
81 'defines': [
82 # Use USE_NEW_THEME on Mac.
83 'WTF_USE_NEW_THEME=1',
84 ],
85 }],
86 ['OS=="linux" or OS=="freebsd"', {
87 'defines': [
88 'WTF_USE_PTHREADS=1',
89 ],
90 }],
91 ],
92 }
93 },
94 {
95 'target_name': 'wtf',
96 'type': '<(library)',
97 'msvs_guid': 'AA8A5A85-592B-4357-BC60-E0E91E026AF6',
98 'dependencies': [
99 'wtf_config',
100 '<(chromium_src_dir)/third_party/icu/icu.gyp:icui18n',
101 '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc',
102 ],
103 'include_dirs': [
104 '../',
105 '../wtf',
106 '../wtf/unicode',
107 ],
108 'sources': [
109 '<@(javascriptcore_files)',
110 ],
111 'sources/': [
112 # First exclude everything ...
113 ['exclude', '../'],
114 # ... Then include what we want.
115 ['include', '../wtf/'],
116 # GLib/GTK, even though its name doesn't really indicate.
117 ['exclude', '/(gtk|glib)/.*\\.(cpp|h)$'],
118 ['exclude', '(Default|Gtk|Mac|None|Qt|Win|Wx)\\.(cpp|mm)$'],
119 ['exclude', 'wtf/CurrentTime\\.cpp$'],
120 ['exclude', 'wtf/TC.*\\.(cpp|h)$'],
121 ],
122 'direct_dependent_settings': {
123 'include_dirs': [
124 '../',
125 '../wtf',
126 ],
127 },
128 'export_dependent_settings': [
129 'wtf_config',
130 '<(chromium_src_dir)/third_party/icu/icu.gyp:icui18n',
131 '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc',
132 ],
133 'msvs_disabled_warnings': [4127, 4355, 4510, 4512, 4610, 4706],
134 'conditions': [
135 ['OS=="win"', {
136 'sources/': [
137 ['exclude', 'ThreadIdentifierDataPthreads\\.(h|cpp)$'],
138 ['exclude', 'ThreadingPthreads\\.cpp$'],
139 ['include', 'Thread(ing|Specific)Win\\.cpp$']
140 ],
141 'include_dirs!': [
142 '<(SHARED_INTERMEDIATE_DIR)/webkit',
143 ],
144 }],
145 ],
146 },
147 {
148 'target_name': 'pcre',
149 'type': '<(library)',
150 'dependencies': [
151 'wtf',
152 ],
153 'conditions': [
154 ['OS=="win"', {
155 'dependencies': ['<(chromium_src_dir)/build/win/system.gyp:cygwin'],
156 }],
157 ],
158 'msvs_guid': '49909552-0B0C-4C14-8CF6-DB8A2ADE0934',
159 'actions': [
160 {
161 'action_name': 'dftables',
162 'inputs': [
163 '../pcre/dftables',
164 ],
165 'outputs': [
166 '<(INTERMEDIATE_DIR)/chartables.c',
167 ],
168 'action': ['perl', '-w', '<@(_inputs)', '<@(_outputs)'],
169 },
170 ],
171 'include_dirs': [
172 '<(INTERMEDIATE_DIR)',
173 ],
174 'sources': [
175 '<@(javascriptcore_files)',
176 ],
177 'sources/': [
178 # First exclude everything ...
179 ['exclude', '../'],
180 # ... Then include what we want.
181 ['include', '../pcre/'],
182 # ucptable.cpp is #included by pcre_ucp_searchfunchs.cpp and is not
183 # intended to be compiled directly.
184 ['exclude', '../pcre/ucptable.cpp$'],
185 ],
186 'export_dependent_settings': [
187 'wtf',
188 ],
189 },
190 ], # targets
191 }