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 @ e851fef6

History | View | Annotate | Download (15.5 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
    'node_use_mdb%': 'false',
20
    'library_files': [
21
      'src/node.js',
22
      'lib/_debugger.js',
23
      'lib/_linklist.js',
24
      'lib/assert.js',
25
      'lib/buffer.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/_http_agent.js',
39
      'lib/_http_client.js',
40
      'lib/_http_common.js',
41
      'lib/_http_incoming.js',
42
      'lib/_http_outgoing.js',
43
      'lib/_http_server.js',
44
      'lib/https.js',
45
      'lib/module.js',
46
      'lib/net.js',
47
      'lib/os.js',
48
      'lib/path.js',
49
      'lib/punycode.js',
50
      'lib/querystring.js',
51
      'lib/readline.js',
52
      'lib/repl.js',
53
      'lib/smalloc.js',
54
      'lib/stream.js',
55
      'lib/_stream_readable.js',
56
      'lib/_stream_writable.js',
57
      'lib/_stream_duplex.js',
58
      'lib/_stream_transform.js',
59
      'lib/_stream_passthrough.js',
60
      'lib/string_decoder.js',
61
      'lib/sys.js',
62
      'lib/timers.js',
63
      'lib/tls.js',
64
      'lib/_tls_legacy.js',
65
      'lib/_tls_wrap.js',
66
      'lib/tty.js',
67
      'lib/url.js',
68
      'lib/util.js',
69
      'lib/vm.js',
70
      'lib/zlib.js',
71
    ],
72
  },
73

    
74
  'targets': [
75
    {
76
      'target_name': 'node',
77
      'type': 'executable',
78

    
79
      'dependencies': [
80
        'node_js2c#host',
81
      ],
82

    
83
      'include_dirs': [
84
        'src',
85
        'tools/msvs/genfiles',
86
        'deps/uv/src/ares',
87
        '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h
88
      ],
89

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

    
151
      'defines': [
152
        'NODE_WANT_INTERNALS=1',
153
        'ARCH="<(target_arch)"',
154
        'PLATFORM="<(OS)"',
155
        'NODE_TAG="<(node_tag)"',
156
      ],
157

    
158
      'conditions': [
159
        [ 'node_use_openssl=="true"', {
160
          'defines': [ 'HAVE_OPENSSL=1' ],
161
          'sources': [
162
            'src/node_crypto.cc',
163
            'src/node_crypto_bio.cc',
164
            'src/node_crypto.h',
165
            'src/node_crypto_bio.h',
166
            'src/tls_wrap.cc',
167
            'src/tls_wrap.h'
168
          ],
169
          'conditions': [
170
            [ 'node_shared_openssl=="false"', {
171
              'dependencies': [ './deps/openssl/openssl.gyp:openssl' ],
172
            }]]
173
        }, {
174
          'defines': [ 'HAVE_OPENSSL=0' ]
175
        }],
176
        [ 'node_use_dtrace=="true"', {
177
          'defines': [ 'HAVE_DTRACE=1' ],
178
          'dependencies': [ 'node_dtrace_header' ],
179
          'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)' ],
180
          #
181
          # DTrace is supported on solaris, mac, and bsd.  There are three
182
          # object files associated with DTrace support, but they're not all
183
          # used all the time:
184
          #
185
          #   node_dtrace.o           all configurations
186
          #   node_dtrace_ustack.o    not supported on OS X
187
          #   node_dtrace_provider.o  All except OS X.  "dtrace -G" is not
188
          #                           used on OS X.
189
          #
190
          # Note that node_dtrace_provider.cc and node_dtrace_ustack.cc do not
191
          # actually exist.  They're listed here to trick GYP into linking the
192
          # corresponding object files into the final "node" executable.  These
193
          # object files are generated by "dtrace -G" using custom actions
194
          # below, and the GYP-generated Makefiles will properly build them when
195
          # needed.
196
          #
197
          'sources': [
198
            'src/node_dtrace.cc',
199
          ],
200
          'conditions': [ [
201
            'OS!="mac"', {
202
              'sources': [
203
                'src/node_dtrace_ustack.cc',
204
                'src/node_dtrace_provider.cc',
205
              ]
206
            }
207
          ] ]
208
        } ],
209
        [ 'node_use_mdb=="true"', {
210
          'dependencies': [ 'node_mdb' ],
211
          'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)' ],
212
          'sources': [
213
            'src/node_mdb.cc',
214
          ],
215
        } ],
216
        [ 'node_use_systemtap=="true"', {
217
          'defines': [ 'HAVE_SYSTEMTAP=1', 'STAP_SDT_V1=1' ],
218
          'sources': [
219
            'src/node_dtrace.cc',
220
          ],
221
        } ],
222
        [ 'node_use_etw=="true"', {
223
          'defines': [ 'HAVE_ETW=1' ],
224
          'dependencies': [ 'node_etw' ],
225
          'sources': [
226
            'src/node_win32_etw_provider.h',
227
            'src/node_win32_etw_provider-inl.h',
228
            'src/node_win32_etw_provider.cc',
229
            'src/node_dtrace.cc',
230
            'tools/msvs/genfiles/node_etw_provider.h',
231
            'tools/msvs/genfiles/node_etw_provider.rc',
232
          ]
233
        } ],
234
        [ 'node_use_perfctr=="true"', {
235
          'defines': [ 'HAVE_PERFCTR=1' ],
236
          'dependencies': [ 'node_perfctr' ],
237
          'sources': [
238
            'src/node_win32_perfctr_provider.h',
239
            'src/node_win32_perfctr_provider.cc',
240
            'src/node_counters.cc',
241
            'src/node_counters.h',
242
            'tools/msvs/genfiles/node_perfctr_provider.rc',
243
          ]
244
        } ],
245
        [ 'v8_postmortem_support=="true"', {
246
          'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:postmortem-metadata' ],
247
        }],
248
        [ 'node_shared_v8=="false"', {
249
          'sources': [
250
            'deps/v8/include/v8.h',
251
            'deps/v8/include/v8-debug.h',
252
          ],
253
          'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:v8' ],
254
        }],
255

    
256
        [ 'node_shared_zlib=="false"', {
257
          'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ],
258
        }],
259

    
260
        [ 'node_shared_http_parser=="false"', {
261
          'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser' ],
262
        }],
263

    
264
        [ 'node_shared_cares=="false"', {
265
          'dependencies': [ 'deps/cares/cares.gyp:cares' ],
266
        }],
267

    
268
        [ 'node_shared_libuv=="false"', {
269
          'dependencies': [ 'deps/uv/uv.gyp:libuv' ],
270
        }],
271

    
272
        [ 'OS=="win"', {
273
          'sources': [
274
            'src/res/node.rc',
275
          ],
276
          'defines': [
277
            'FD_SETSIZE=1024',
278
            # we need to use node's preferred "win32" rather than gyp's preferred "win"
279
            'PLATFORM="win32"',
280
            '_UNICODE=1',
281
          ],
282
          'libraries': [ '-lpsapi.lib' ]
283
        }, { # POSIX
284
          'defines': [ '__POSIX__' ],
285
        }],
286
        [ 'OS=="mac"', {
287
          'libraries': [ '-framework Carbon' ],
288
          'defines!': [
289
            'PLATFORM="mac"',
290
          ],
291
          'defines': [
292
            # we need to use node's preferred "darwin" rather than gyp's preferred "mac"
293
            'PLATFORM="darwin"',
294
          ],
295
        }],
296
        [ 'OS=="freebsd"', {
297
          'libraries': [
298
            '-lutil',
299
            '-lkvm',
300
          ],
301
        }],
302
        [ 'OS=="solaris"', {
303
          'libraries': [
304
            '-lkstat',
305
            '-lumem',
306
          ],
307
          'defines!': [
308
            'PLATFORM="solaris"',
309
          ],
310
          'defines': [
311
            # we need to use node's preferred "sunos"
312
            # rather than gyp's preferred "solaris"
313
            'PLATFORM="sunos"',
314
          ],
315
        }],
316
      ],
317
      'msvs_settings': {
318
        'VCLinkerTool': {
319
          'SubSystem': 1, # /subsystem:console
320
        },
321
      },
322
    },
323
    # generate ETW header and resource files
324
    {
325
      'target_name': 'node_etw',
326
      'type': 'none',
327
      'conditions': [
328
        [ 'node_use_etw=="true" and node_has_winsdk=="true"', {
329
          'actions': [
330
            {
331
              'action_name': 'node_etw',
332
              'inputs': [ 'src/res/node_etw_provider.man' ],
333
              'outputs': [
334
                'tools/msvs/genfiles/node_etw_provider.rc',
335
                'tools/msvs/genfiles/node_etw_provider.h',
336
                'tools/msvs/genfiles/node_etw_providerTEMP.BIN',
337
              ],
338
              'action': [ 'mc <@(_inputs) -h tools/msvs/genfiles -r tools/msvs/genfiles' ]
339
            }
340
          ]
341
        } ]
342
      ]
343
    },
344
    # generate perf counter header and resource files
345
    {
346
      'target_name': 'node_perfctr',
347
      'type': 'none',
348
      'conditions': [
349
        [ 'node_use_perfctr=="true" and node_has_winsdk=="true"', {
350
          'actions': [
351
            {
352
              'action_name': 'node_perfctr_man',
353
              'inputs': [ 'src/res/node_perfctr_provider.man' ],
354
              'outputs': [
355
                'tools/msvs/genfiles/node_perfctr_provider.h',
356
                'tools/msvs/genfiles/node_perfctr_provider.rc',
357
                'tools/msvs/genfiles/MSG00001.BIN',
358
              ],
359
              'action': [ 'ctrpp <@(_inputs) '
360
                          '-o tools/msvs/genfiles/node_perfctr_provider.h '
361
                          '-rc tools/msvs/genfiles/node_perfctr_provider.rc'
362
              ]
363
            },
364
          ],
365
        } ]
366
      ]
367
    },
368
    {
369
      'target_name': 'node_js2c',
370
      'type': 'none',
371
      'toolsets': ['host'],
372
      'actions': [
373
        {
374
          'action_name': 'node_js2c',
375
          'inputs': [
376
            '<@(library_files)',
377
            './config.gypi',
378
          ],
379
          'outputs': [
380
            '<(SHARED_INTERMEDIATE_DIR)/node_natives.h',
381
          ],
382
          'conditions': [
383
            [ 'node_use_dtrace=="false"'
384
              ' and node_use_etw=="false"'
385
              ' and node_use_systemtap=="false"',
386
            {
387
              'inputs': ['src/notrace_macros.py']
388
            }],
389
            [ 'node_use_perfctr=="false"', {
390
              'inputs': [ 'src/perfctr_macros.py' ]
391
            }]
392
          ],
393
          'action': [
394
            '<(python)',
395
            'tools/js2c.py',
396
            '<@(_outputs)',
397
            '<@(_inputs)',
398
          ],
399
        },
400
      ],
401
    }, # end node_js2c
402
    {
403
      'target_name': 'node_dtrace_header',
404
      'type': 'none',
405
      'conditions': [
406
        [ 'node_use_dtrace=="true" or node_use_systemtap=="true"', {
407
          'actions': [
408
            {
409
              'action_name': 'node_dtrace_header',
410
              'inputs': [ 'src/node_provider.d' ],
411
              'outputs': [ '<(SHARED_INTERMEDIATE_DIR)/node_provider.h' ],
412
              'action': [ 'dtrace', '-h', '-xnolibs', '-s', '<@(_inputs)',
413
                '-o', '<@(_outputs)' ]
414
            }
415
          ]
416
        } ]
417
      ]
418
    },
419
    {
420
      'target_name': 'node_mdb',
421
      'type': 'none',
422
      'conditions': [
423
        [ 'node_use_mdb=="true"',
424
          {
425
            'dependencies': [ 'deps/mdb_v8/mdb_v8.gyp:mdb_v8' ],
426
            'actions': [
427
              {
428
                'action_name': 'node_mdb',
429
                'inputs': [ '<(PRODUCT_DIR)/obj.target/deps/mdb_v8/mdb_v8.so' ],
430
                'outputs': [ '<(PRODUCT_DIR)/obj.target/node/src/node_mdb.o' ],
431
                'conditions': [
432
                  [ 'target_arch=="ia32"', {
433
                    'action': [ 'elfwrap', '-32', '-o', '<@(_outputs)', '<@(_inputs)' ],
434
                  } ],
435
                  [ 'target_arch=="x64"', {
436
                    'action': [ 'elfwrap', '-64', '-o', '<@(_outputs)', '<@(_inputs)' ],
437
                  } ],
438
                ],
439
              },
440
            ],
441
          },
442
        ],
443
      ],
444
    },
445
    {
446
      'target_name': 'node_dtrace_provider',
447
      'type': 'none',
448
      'conditions': [
449
        [ 'node_use_dtrace=="true" and OS!="mac"', {
450
          'actions': [
451
            {
452
              'action_name': 'node_dtrace_provider_o',
453
              'inputs': [
454
                '<(PRODUCT_DIR)/obj.target/libuv/deps/uv/src/unix/core.o',
455
                '<(PRODUCT_DIR)/obj.target/node/src/node_dtrace.o',
456
              ],
457
              'outputs': [
458
                '<(PRODUCT_DIR)/obj.target/node/src/node_dtrace_provider.o'
459
              ],
460
              'action': [ 'dtrace', '-G', '-xnolibs', '-s', 'src/node_provider.d',
461
                '-s', 'deps/uv/src/unix/uv-dtrace.d', '<@(_inputs)',
462
                '-o', '<@(_outputs)' ]
463
            }
464
          ]
465
        } ]
466
      ]
467
    },
468
    {
469
      'target_name': 'node_dtrace_ustack',
470
      'type': 'none',
471
      'conditions': [
472
        [ 'node_use_dtrace=="true" and OS!="mac"', {
473
          'actions': [
474
            {
475
              'action_name': 'node_dtrace_ustack_constants',
476
              'inputs': [
477
                '<(PRODUCT_DIR)/obj.target/deps/v8/tools/gyp/libv8_base.<(target_arch).a'
478
              ],
479
              'outputs': [
480
                '<(SHARED_INTERMEDIATE_DIR)/v8constants.h'
481
              ],
482
              'action': [
483
                'tools/genv8constants.py',
484
                '<@(_outputs)',
485
                '<@(_inputs)'
486
              ]
487
            },
488
            {
489
              'action_name': 'node_dtrace_ustack',
490
              'inputs': [
491
                'src/v8ustack.d',
492
                '<(SHARED_INTERMEDIATE_DIR)/v8constants.h'
493
              ],
494
              'outputs': [
495
                '<(PRODUCT_DIR)/obj.target/node/src/node_dtrace_ustack.o'
496
              ],
497
              'conditions': [
498
                [ 'target_arch=="ia32"', {
499
                  'action': [
500
                    'dtrace', '-32', '-I<(SHARED_INTERMEDIATE_DIR)', '-Isrc',
501
                    '-C', '-G', '-s', 'src/v8ustack.d', '-o', '<@(_outputs)',
502
                  ]
503
                } ],
504
                [ 'target_arch=="x64"', {
505
                  'action': [
506
                    'dtrace', '-64', '-I<(SHARED_INTERMEDIATE_DIR)', '-Isrc',
507
                    '-C', '-G', '-s', 'src/v8ustack.d', '-o', '<@(_outputs)',
508
                  ]
509
                } ],
510
              ]
511
            }
512
          ]
513
        } ],
514
      ]
515
    }
516
  ] # end targets
517
}