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

History | View | Annotate | Download (14.4 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/child_process.js',
26
      'lib/console.js',
27
      'lib/constants.js',
28
      'lib/crypto.js',
29
      'lib/cluster.js',
30
      'lib/dgram.js',
31
      'lib/dns.js',
32
      'lib/domain.js',
33
      'lib/events.js',
34
      'lib/freelist.js',
35
      'lib/fs.js',
36
      'lib/http.js',
37
      'lib/https.js',
38
      'lib/module.js',
39
      'lib/net.js',
40
      'lib/os.js',
41
      'lib/path.js',
42
      'lib/punycode.js',
43
      'lib/querystring.js',
44
      'lib/readline.js',
45
      'lib/repl.js',
46
      'lib/stream.js',
47
      'lib/_stream_readable.js',
48
      'lib/_stream_writable.js',
49
      'lib/_stream_duplex.js',
50
      'lib/_stream_transform.js',
51
      'lib/_stream_passthrough.js',
52
      'lib/string_decoder.js',
53
      'lib/sys.js',
54
      'lib/timers.js',
55
      'lib/tls.js',
56
      'lib/tty.js',
57
      'lib/url.js',
58
      'lib/util.js',
59
      'lib/vm.js',
60
      'lib/zlib.js',
61
    ],
62
  },
63

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

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

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

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

    
140
      'defines': [
141
        'NODE_WANT_INTERNALS=1',
142
        'ARCH="<(target_arch)"',
143
        'PLATFORM="<(OS)"',
144
        'NODE_TAG="<(node_tag)"',
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
          # DTrace is supported on solaris, mac, and bsd.  There are three
164
          # object files associated with DTrace support, but they're not all
165
          # used all the time:
166
          #
167
          #   node_dtrace.o           all configurations
168
          #   node_dtrace_ustack.o    not supported on OS X
169
          #   node_dtrace_provider.o  All except OS X.  "dtrace -G" is not
170
          #                           used on OS X.
171
          #
172
          # Note that node_dtrace_provider.cc and node_dtrace_ustack.cc do not
173
          # actually exist.  They're listed here to trick GYP into linking the
174
          # corresponding object files into the final "node" executable.  These
175
          # object files are generated by "dtrace -G" using custom actions
176
          # below, and the GYP-generated Makefiles will properly build them when
177
          # needed.
178
          #
179
          'sources': [
180
            'src/node_dtrace.cc',
181
          ],
182
          'conditions': [ [
183
            'OS!="mac"', {
184
              'sources': [
185
                'src/node_dtrace_ustack.cc',
186
                'src/node_dtrace_provider.cc',
187
              ]
188
            }
189
          ] ]
190
        } ],
191
        [ 'node_use_systemtap=="true"', {
192
          'defines': [ 'HAVE_SYSTEMTAP=1', 'STAP_SDT_V1=1' ],
193
          'dependencies': [ 'node_systemtap_header' ],
194
          'include_dirs': [ '<(SHARED_INTERMEDIATE_DIR)' ],
195
          'sources': [
196
            'src/node_dtrace.cc',
197
            '<(SHARED_INTERMEDIATE_DIR)/node_systemtap.h',
198
          ],
199
        } ],
200
        [ 'node_use_etw=="true"', {
201
          'defines': [ 'HAVE_ETW=1' ],
202
          'dependencies': [ 'node_etw' ],
203
          'sources': [
204
            'src/node_win32_etw_provider.h',
205
            'src/node_win32_etw_provider-inl.h',
206
            'src/node_win32_etw_provider.cc',
207
            'src/node_dtrace.cc',
208
            'tools/msvs/genfiles/node_etw_provider.h',
209
            'tools/msvs/genfiles/node_etw_provider.rc',
210
          ]
211
        } ],
212
        [ 'node_use_perfctr=="true"', {
213
          'defines': [ 'HAVE_PERFCTR=1' ],
214
          'dependencies': [ 'node_perfctr' ],
215
          'sources': [
216
            'src/node_win32_perfctr_provider.h',
217
            'src/node_win32_perfctr_provider.cc',
218
            'src/node_counters.cc',
219
            'src/node_counters.h',
220
            'tools/msvs/genfiles/node_perfctr_provider.rc',
221
          ]
222
        } ],
223
        [ 'node_shared_v8=="false"', {
224
          'sources': [
225
            'deps/v8/include/v8.h',
226
            'deps/v8/include/v8-debug.h',
227
          ],
228
          'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:v8' ],
229
        }],
230

    
231
        [ 'node_shared_zlib=="false"', {
232
          'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ],
233
        }],
234

    
235
        [ 'node_shared_http_parser=="false"', {
236
          'dependencies': [ 'deps/http_parser/http_parser.gyp:http_parser' ],
237
        }],
238

    
239
        [ 'node_shared_cares=="false"', {
240
          'dependencies': [ 'deps/cares/cares.gyp:cares' ],
241
        }],
242

    
243
        [ 'node_shared_libuv=="false"', {
244
          'dependencies': [ 'deps/uv/uv.gyp:libuv' ],
245
        }],
246

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