The data contained in this repository can be downloaded to your computer using one of several clients.
Please see the documentation of your version control software client for more information.

Please select the desired protocol below to get the URL.

This URL has Read-Only access.

Statistics
| Branch: | Revision:

main_repo / node.gyp @ 841b7f53

History | View | Annotate | Download (13.3 KB)

1
{
2
  'variables': {
3
    'v8_use_snapshot%': 'true',
4
    # Turn off -Werror in V8
5
    # See http://codereview.chromium.org/8159015
6
    'werror': '',
7
    'node_use_dtrace%': 'false',
8
    'node_use_etw%': 'false',
9
    'node_use_perfctr%': 'false',
10
    'node_has_winsdk%': 'false',
11
    'node_shared_v8%': 'false',
12
    'node_shared_zlib%': 'false',
13
    'node_shared_http_parser%': 'false',
14
    'node_shared_cares%': 'false',
15
    'node_shared_libuv%': 'false',
16
    'node_use_openssl%': 'true',
17
    'node_use_systemtap%': 'false',
18
    'node_shared_openssl%': 'false',
19
    'library_files': [
20
      'src/node.js',
21
      'lib/_debugger.js',
22
      'lib/_linklist.js',
23
      'lib/assert.js',
24
      'lib/buffer.js',
25
      'lib/buffer_ieee754.js',
26
      'lib/child_process.js',
27
      'lib/console.js',
28
      'lib/constants.js',
29
      'lib/crypto.js',
30
      'lib/cluster.js',
31
      'lib/dgram.js',
32
      'lib/dns.js',
33
      'lib/domain.js',
34
      'lib/events.js',
35
      'lib/freelist.js',
36
      'lib/fs.js',
37
      'lib/http.js',
38
      'lib/https.js',
39
      'lib/module.js',
40
      'lib/net.js',
41
      'lib/os.js',
42
      'lib/path.js',
43
      'lib/punycode.js',
44
      'lib/querystring.js',
45
      'lib/readline.js',
46
      'lib/repl.js',
47
      'lib/stream.js',
48
      'lib/_stream_readable.js',
49
      'lib/_stream_writable.js',
50
      'lib/_stream_duplex.js',
51
      'lib/_stream_transform.js',
52
      'lib/_stream_passthrough.js',
53
      'lib/string_decoder.js',
54
      'lib/sys.js',
55
      'lib/timers.js',
56
      'lib/tls.js',
57
      'lib/tty.js',
58
      'lib/url.js',
59
      'lib/util.js',
60
      'lib/vm.js',
61
      'lib/zlib.js',
62
    ],
63
  },
64

    
65
  'targets': [
66
    {
67
      'target_name': 'node',
68
      'type': 'executable',
69

    
70
      'dependencies': [
71
        'node_js2c#host',
72
      ],
73

    
74
      'include_dirs': [
75
        'src',
76
        'src/gen',
77
        'deps/uv/src/ares',
78
        '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h
79
      ],
80

    
81
      'sources': [
82
        'src/fs_event_wrap.cc',
83
        'src/cares_wrap.cc',
84
        'src/handle_wrap.cc',
85
        'src/node.cc',
86
        'src/node_buffer.cc',
87
        'src/node_constants.cc',
88
        'src/node_extensions.cc',
89
        'src/node_file.cc',
90
        'src/node_http_parser.cc',
91
        'src/node_javascript.cc',
92
        'src/node_main.cc',
93
        'src/node_os.cc',
94
        'src/node_script.cc',
95
        'src/node_stat_watcher.cc',
96
        'src/node_string.cc',
97
        'src/node_zlib.cc',
98
        'src/pipe_wrap.cc',
99
        'src/signal_wrap.cc',
100
        'src/stream_wrap.cc',
101
        'src/slab_allocator.cc',
102
        'src/tcp_wrap.cc',
103
        'src/timer_wrap.cc',
104
        'src/tty_wrap.cc',
105
        'src/process_wrap.cc',
106
        'src/v8_typed_array.cc',
107
        'src/udp_wrap.cc',
108
        # headers to make for a more pleasant IDE experience
109
        'src/handle_wrap.h',
110
        'src/node.h',
111
        'src/node_buffer.h',
112
        'src/node_constants.h',
113
        'src/node_crypto.h',
114
        'src/node_extensions.h',
115
        'src/node_file.h',
116
        'src/node_http_parser.h',
117
        'src/node_javascript.h',
118
        'src/node_os.h',
119
        'src/node_root_certs.h',
120
        'src/node_script.h',
121
        'src/node_string.h',
122
        'src/node_version.h',
123
        'src/ngx-queue.h',
124
        'src/pipe_wrap.h',
125
        'src/tty_wrap.h',
126
        'src/tcp_wrap.h',
127
        'src/udp_wrap.h',
128
        'src/req_wrap.h',
129
        'src/slab_allocator.h',
130
        'src/stream_wrap.h',
131
        'src/tree.h',
132
        'src/v8_typed_array.h',
133
        'deps/http_parser/http_parser.h',
134
        '<(SHARED_INTERMEDIATE_DIR)/node_natives.h',
135
        # javascript files to make for an even more pleasant IDE experience
136
        '<@(library_files)',
137
        # node.gyp is added to the project by default.
138
        'common.gypi',
139
      ],
140

    
141
      'defines': [
142
        'NODE_WANT_INTERNALS=1',
143
        'ARCH="<(target_arch)"',
144
        'PLATFORM="<(OS)"',
145
      ],
146

    
147
      'conditions': [
148
        [ 'node_use_openssl=="true"', {
149
          'defines': [ 'HAVE_OPENSSL=1' ],
150
          'sources': [ 'src/node_crypto.cc' ],
151
          'conditions': [
152
            [ 'node_shared_openssl=="false"', {
153
              'dependencies': [ './deps/openssl/openssl.gyp:openssl' ],
154
            }]]
155
        }, {
156
          'defines': [ 'HAVE_OPENSSL=0' ]
157
        }],
158
        [ 'node_use_dtrace=="true"', {
159
          'defines': [ 'HAVE_DTRACE=1' ],
160
          'dependencies': [ 'node_dtrace_header' ],
161
          'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)' ],
162
          #
163
          # node_dtrace_provider.cc and node_dtrace_ustack.cc do not actually
164
          # exist.  They're here to trick GYP into linking the corresponding
165
          # object files into the final "node" executable.  These files are
166
          # generated by "dtrace -G" using custom actions below, and the
167
          # GYP-generated Makefiles will properly build them when needed.
168
          #
169
          'sources': [
170
            'src/node_dtrace.cc',
171
            'src/node_dtrace_provider.cc'
172
          ],
173
          'conditions': [ [
174
            'target_arch=="ia32"', {
175
              'sources': [ 'src/node_dtrace_ustack.cc' ]
176
            }
177
          ] ],
178
        } ],
179
        [ 'node_use_systemtap=="true"', {
180
          'defines': [ 'HAVE_SYSTEMTAP=1', 'STAP_SDT_V1=1' ],
181
          'dependencies': [ 'node_systemtap_header' ],
182
          'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)' ],
183
          'sources': [
184
            'src/node_dtrace.cc',
185
            '<(SHARED_INTERMEDIATE_DIR)/node_systemtap.h',
186
          ],
187
        } ],
188
        [ 'node_use_etw=="true"', {
189
          'defines': [ 'HAVE_ETW=1' ],
190
          'dependencies': [ 'node_etw' ],
191
          'sources': [
192
            'src/node_win32_etw_provider.h',
193
            'src/node_win32_etw_provider-inl.h',
194
            'src/node_win32_etw_provider.cc',
195
            'src/node_dtrace.cc',
196
            'src/gen/node_etw_provider.h',
197
            'src/gen/node_etw_provider.rc',
198
          ]
199
        } ],
200
        [ 'node_use_perfctr=="true"', {
201
          'defines': [ 'HAVE_PERFCTR=1' ],
202
          'dependencies': [ 'node_perfctr' ],
203
          'sources': [
204
            'src/node_win32_perfctr_provider.h',
205
            'src/node_win32_perfctr_provider.cc',
206
            'src/node_counters.cc',
207
            'src/node_counters.h',
208
            'src/gen/node_perfctr_provider.rc',
209
          ]
210
        } ],
211
        [ 'node_shared_v8=="false"', {
212
          'sources': [
213
            'deps/v8/include/v8.h',
214
            'deps/v8/include/v8-debug.h',
215
          ],
216
          'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:v8' ],
217
        }],
218

    
219
        [ 'node_shared_zlib=="false"', {
220
          'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ],
221
        }],
222

    
223
        [ 'node_shared_http_parser=="false"', {
224
          'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser' ],
225
        }],
226

    
227
        [ 'node_shared_cares=="false"', {
228
          'dependencies': [ 'deps/cares/cares.gyp:cares' ],
229
        }],
230

    
231
        [ 'node_shared_libuv=="false"', {
232
          'dependencies': [ 'deps/uv/uv.gyp:libuv' ],
233
        }],
234

    
235
        [ 'OS=="win"', {
236
          'sources': [
237
            'src/res/node.rc',
238
          ],
239
          'defines': [
240
            'FD_SETSIZE=1024',
241
            # we need to use node's preferred "win32" rather than gyp's preferred "win"
242
            'PLATFORM="win32"',
243
            '_UNICODE=1',
244
          ],
245
          'libraries': [ '-lpsapi.lib' ]
246
        }, { # POSIX
247
          'defines': [ '__POSIX__' ],
248
        }],
249
        [ 'OS=="mac"', {
250
          'libraries': [ '-framework Carbon' ],
251
          'defines!': [
252
            'PLATFORM="mac"',
253
          ],
254
          'defines': [
255
            # we need to use node's preferred "darwin" rather than gyp's preferred "mac"
256
            'PLATFORM="darwin"',
257
          ],
258
        }],
259
        [ 'OS=="freebsd"', {
260
          'libraries': [
261
            '-lutil',
262
            '-lkvm',
263
          ],
264
        }],
265
        [ 'OS=="solaris"', {
266
          'libraries': [
267
            '-lkstat',
268
            '-lumem',
269
          ],
270
          'defines!': [
271
            'PLATFORM="solaris"',
272
          ],
273
          'defines': [
274
            # we need to use node's preferred "sunos"
275
            # rather than gyp's preferred "solaris"
276
            'PLATFORM="sunos"',
277
          ],
278
        }],
279
      ],
280
      'msvs_settings': {
281
        'VCLinkerTool': {
282
          'SubSystem': 1, # /subsystem:console
283
        },
284
      },
285
    },
286
    # generate ETW header and resource files
287
    {
288
      'target_name': 'node_etw',
289
      'type': 'none',
290
      'conditions': [
291
        [ 'node_use_etw=="true" and node_has_winsdk=="true"', {
292
          'actions': [
293
            {
294
              'action_name': 'node_etw',
295
              'inputs': [ 'src/res/node_etw_provider.man' ],
296
              'outputs': [
297
                'src/gen/node_etw_provider.rc',
298
                'src/gen/node_etw_provider.h',
299
                'src/gen/node_etw_providerTEMP.BIN',
300
              ],
301
              'action': [ 'mc <@(_inputs) -h src/gen -r src/gen' ]
302
            }
303
          ]
304
        } ]
305
      ]
306
    },
307
    # generate perf counter header and resource files
308
    {
309
      'target_name': 'node_perfctr',
310
      'type': 'none',
311
      'conditions': [
312
        [ 'node_use_perfctr=="true" and node_has_winsdk=="true"', {
313
          'actions': [
314
            {
315
              'action_name': 'node_perfctr_man',
316
              'inputs': [ 'src/res/node_perfctr_provider.man' ],
317
              'outputs': [
318
                'src/gen/node_perfctr_provider.h',
319
                'src/gen/node_perfctr_provider.rc',
320
                'src/gen/MSG00001.BIN',
321
              ],
322
              'action': [ 'ctrpp <@(_inputs) '
323
                          '-o src/gen/node_perfctr_provider.h '
324
                          '-rc src/gen/node_perfctr_provider.rc'
325
              ]
326
            },
327
          ],
328
        } ]
329
      ]
330
    },
331
    {
332
      'target_name': 'node_js2c',
333
      'type': 'none',
334
      'toolsets': ['host'],
335
      'actions': [
336
        {
337
          'action_name': 'node_js2c',
338
          'inputs': [
339
            '<@(library_files)',
340
            './config.gypi',
341
          ],
342
          'outputs': [
343
            '<(SHARED_INTERMEDIATE_DIR)/node_natives.h',
344
          ],
345
          'conditions': [
346
            [ 'node_use_dtrace=="false"'
347
              ' and node_use_etw=="false"'
348
              ' and node_use_systemtap=="false"',
349
            {
350
                'inputs': ['src/macros.py']
351
              }
352
              ],
353
            [ 'node_use_perfctr=="false"', {
354
              'inputs': [ 'src/perfctr_macros.py' ]
355
            }]
356
          ],
357
              'action': [
358
                '<(python)',
359
                'tools/js2c.py',
360
                '<@(_outputs)',
361
                '<@(_inputs)',
362
              ],
363
        },
364
      ],
365
    }, # end node_js2c
366
    {
367
      'target_name': 'node_dtrace_header',
368
      'type': 'none',
369
      'conditions': [
370
        [ 'node_use_dtrace=="true"', {
371
          'actions': [
372
            {
373
              'action_name': 'node_dtrace_header',
374
              'inputs': [ 'src/node_provider.d' ],
375
              'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/node_provider.h' ],
376
              'action': [ 'dtrace', '-h', '-xnolibs', '-s', '<@(_inputs)',
377
                '-o', '<@(_outputs)' ]
378
            }
379
          ]
380
        } ]
381
      ]
382
    },
383
    {
384
      'target_name': 'node_systemtap_header',
385
      'type': 'none',
386
      'conditions': [
387
        [ 'node_use_systemtap=="true"', {
388
          'actions': [
389
            {
390
              'action_name': 'node_systemtap_header',
391
              'inputs': [ 'src/node_systemtap.d' ],
392
              'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/node_systemtap.h' ],
393
              'action': [ 'dtrace', '-h', '-C', '-s', '<@(_inputs)',
394
                '-o', '<@(_outputs)' ]
395
            }
396
          ]
397
        } ]
398
      ]
399
    },
400
    {
401
      'target_name': 'node_dtrace_provider',
402
      'type': 'none',
403
      'conditions': [
404
        [ 'node_use_dtrace=="true"', {
405
          'actions': [
406
            {
407
              'action_name': 'node_dtrace_provider_o',
408
              'inputs': [
409
                'src/node_provider.d',
410
                '<(PRODUCT_DIR)/obj.target/node/src/node_dtrace.o'
411
              ],
412
              'outputs': [
413
                '<(PRODUCT_DIR)/obj.target/node/src/node_dtrace_provider.o'
414
              ],
415
              'action': [ 'dtrace', '-G', '-xnolibs', '-s', '<@(_inputs)',
416
                '-o', '<@(_outputs)' ]
417
            }
418
          ]
419
        } ]
420
      ]
421
    },
422
    {
423
      'target_name': 'node_dtrace_ustack',
424
      'type': 'none',
425
      'conditions': [
426
        [ 'node_use_dtrace=="true" and target_arch=="ia32"', {
427
          'actions': [
428
            {
429
              'action_name': 'node_dtrace_ustack_constants',
430
              'inputs': [
431
                '<(PRODUCT_DIR)/obj.target/deps/v8/tools/gyp/libv8_base.a'
432
              ],
433
              'outputs': [
434
                '<(SHARED_INTERMEDIATE_DIR)/v8constants.h'
435
              ],
436
              'action': [
437
                'tools/genv8constants.py',
438
                '<@(_outputs)',
439
                '<@(_inputs)'
440
              ]
441
            },
442
            {
443
              'action_name': 'node_dtrace_ustack',
444
              'inputs': [
445
                'src/v8ustack.d',
446
                '<(SHARED_INTERMEDIATE_DIR)/v8constants.h'
447
              ],
448
              'outputs': [
449
                '<(PRODUCT_DIR)/obj.target/node/src/node_dtrace_ustack.o'
450
              ],
451
              'action': [
452
                'dtrace', '-32', '-I<(SHARED_INTERMEDIATE_DIR)', '-Isrc',
453
                '-C', '-G', '-s', 'src/v8ustack.d', '-o', '<@(_outputs)',
454
              ]
455
            }
456
          ]
457
        } ],
458
      ]
459
    }
460
  ] # end targets
461
}