|
6 | 6 | 'node_use_etw%': 'false', |
7 | 7 | 'node_use_perfctr%': 'false', |
8 | 8 | 'node_no_browser_globals%': 'false', |
| 9 | + 'node_use_v8_platform%': 'true', |
| 10 | + 'node_use_bundled_v8%': 'true', |
| 11 | + 'node_shared%': 'false', |
| 12 | + 'node_module_version%': '', |
9 | 13 | 'node_shared_zlib%': 'false', |
10 | 14 | 'node_shared_http_parser%': 'false', |
11 | 15 | 'node_shared_cares%': 'false', |
|
14 | 18 | 'node_shared_openssl%': 'false', |
15 | 19 | 'node_v8_options%': '', |
16 | 20 | 'node_enable_v8_vtunejit%': 'false', |
17 | | - 'node_target_type%': 'executable', |
18 | 21 | 'node_core_target_name%': 'node', |
19 | 22 | 'library_files': [ |
20 | 23 | 'lib/internal/bootstrap_node.js', |
|
100 | 103 | 'deps/v8/tools/SourceMap.js', |
101 | 104 | 'deps/v8/tools/tickprocessor-driver.js', |
102 | 105 | ], |
| 106 | + 'conditions': [ |
| 107 | + [ 'node_shared=="true"', { |
| 108 | + 'node_target_type%': 'shared_library', |
| 109 | + }, { |
| 110 | + 'node_target_type%': 'executable', |
| 111 | + }], |
| 112 | + ], |
103 | 113 | }, |
104 | 114 |
|
105 | 115 | 'targets': [ |
|
109 | 119 |
|
110 | 120 | 'dependencies': [ |
111 | 121 | 'node_js2c#host', |
112 | | - 'deps/v8/tools/gyp/v8.gyp:v8', |
113 | | - 'deps/v8/tools/gyp/v8.gyp:v8_libplatform' |
114 | 122 | ], |
115 | 123 |
|
116 | 124 | 'include_dirs': [ |
117 | 125 | 'src', |
118 | 126 | 'tools/msvs/genfiles', |
119 | 127 | 'deps/uv/src/ares', |
120 | 128 | '<(SHARED_INTERMEDIATE_DIR)', # for node_natives.h |
121 | | - 'deps/v8' # include/v8_platform.h |
122 | 129 | ], |
123 | 130 |
|
124 | 131 | 'sources': [ |
|
217 | 224 |
|
218 | 225 |
|
219 | 226 | 'conditions': [ |
| 227 | + [ 'node_shared=="false"', { |
| 228 | + 'msvs_settings': { |
| 229 | + 'VCManifestTool': { |
| 230 | + 'EmbedManifest': 'true', |
| 231 | + 'AdditionalManifestFiles': 'src/res/node.exe.extra.manifest' |
| 232 | + } |
| 233 | + }, |
| 234 | + }, { |
| 235 | + 'defines': [ |
| 236 | + 'NODE_SHARED_MODE', |
| 237 | + ], |
| 238 | + 'conditions': [ |
| 239 | + [ 'node_module_version!=""', { |
| 240 | + 'product_extension': 'so.<(node_module_version)', |
| 241 | + }] |
| 242 | + ], |
| 243 | + }], |
| 244 | + [ 'node_use_bundled_v8=="true"', { |
| 245 | + 'include_dirs': [ |
| 246 | + 'deps/v8', # include/v8_platform.h |
| 247 | + ], |
| 248 | + |
| 249 | + 'dependencies': [ |
| 250 | + 'deps/v8/tools/gyp/v8.gyp:v8', |
| 251 | + 'deps/v8/tools/gyp/v8.gyp:v8_libplatform' |
| 252 | + ], |
| 253 | + }], |
| 254 | + [ 'node_use_v8_platform=="true"', { |
| 255 | + 'defines': [ |
| 256 | + 'NODE_USE_V8_PLATFORM=1', |
| 257 | + ], |
| 258 | + }, { |
| 259 | + 'defines': [ |
| 260 | + 'NODE_USE_V8_PLATFORM=0', |
| 261 | + ], |
| 262 | + }], |
220 | 263 | [ 'node_tag!=""', { |
221 | 264 | 'defines': [ 'NODE_TAG="<(node_tag)"' ], |
222 | 265 | }], |
|
245 | 288 | 'defines': [ 'NODE_HAVE_SMALL_ICU=1' ], |
246 | 289 | }]], |
247 | 290 | }], |
248 | | - [ 'node_enable_v8_vtunejit=="true" and (target_arch=="x64" or \ |
| 291 | + [ 'node_use_bundled_v8=="true" and \ |
| 292 | + node_enable_v8_vtunejit=="true" and (target_arch=="x64" or \ |
249 | 293 | target_arch=="ia32" or target_arch=="x32")', { |
250 | 294 | 'defines': [ 'NODE_ENABLE_VTUNE_PROFILING' ], |
251 | 295 | 'dependencies': [ |
|
308 | 352 | ], |
309 | 353 | }, |
310 | 354 | 'conditions': [ |
311 | | - ['OS in "linux freebsd"', { |
| 355 | + ['OS in "linux freebsd" and node_shared=="false"', { |
312 | 356 | 'ldflags': [ |
313 | 357 | '-Wl,--whole-archive <(PRODUCT_DIR)/<(OPENSSL_PRODUCT)', |
314 | 358 | '-Wl,--no-whole-archive', |
|
395 | 439 | [ 'node_no_browser_globals=="true"', { |
396 | 440 | 'defines': [ 'NODE_NO_BROWSER_GLOBALS' ], |
397 | 441 | } ], |
398 | | - [ 'v8_postmortem_support=="true"', { |
| 442 | + [ 'node_use_bundled_v8=="true" and v8_postmortem_support=="true"', { |
399 | 443 | 'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:postmortem-metadata' ], |
400 | 444 | 'conditions': [ |
401 | 445 | # -force_load is not applicable for the static library |
|
478 | 522 | 'NODE_PLATFORM="sunos"', |
479 | 523 | ], |
480 | 524 | }], |
481 | | - [ 'OS=="freebsd" or OS=="linux"', { |
| 525 | + [ '(OS=="freebsd" or OS=="linux") and node_shared=="false"', { |
482 | 526 | 'ldflags': [ '-Wl,-z,noexecstack', |
483 | 527 | '-Wl,--whole-archive <(V8_BASE)', |
484 | 528 | '-Wl,--no-whole-archive' ] |
|
487 | 531 | 'ldflags': [ '-Wl,-M,/usr/lib/ld/map.noexstk' ], |
488 | 532 | }], |
489 | 533 | ], |
490 | | - 'msvs_settings': { |
491 | | - 'VCManifestTool': { |
492 | | - 'EmbedManifest': 'true', |
493 | | - 'AdditionalManifestFiles': 'src/res/node.exe.extra.manifest' |
494 | | - } |
495 | | - }, |
496 | 534 | }, |
497 | 535 | # generate ETW header and resource files |
498 | 536 | { |
|
718 | 756 | 'deps/http_parser/http_parser.gyp:http_parser', |
719 | 757 | 'deps/gtest/gtest.gyp:gtest', |
720 | 758 | 'deps/uv/uv.gyp:libuv', |
721 | | - 'deps/v8/tools/gyp/v8.gyp:v8', |
722 | | - 'deps/v8/tools/gyp/v8.gyp:v8_libplatform' |
723 | 759 | ], |
724 | 760 | 'include_dirs': [ |
725 | 761 | 'src', |
|
750 | 786 | 'src/inspector_socket.cc', |
751 | 787 | 'test/cctest/test_inspector_socket.cc' |
752 | 788 | ] |
753 | | - }] |
| 789 | + }], |
| 790 | + [ 'node_use_v8_platform=="true"', { |
| 791 | + 'dependencies': [ |
| 792 | + 'deps/v8/tools/gyp/v8.gyp:v8_libplatform', |
| 793 | + ], |
| 794 | + }], |
| 795 | + [ 'node_use_bundled_v8=="true"', { |
| 796 | + 'dependencies': [ |
| 797 | + 'deps/v8/tools/gyp/v8.gyp:v8', |
| 798 | + 'deps/v8/tools/gyp/v8.gyp:v8_libplatform' |
| 799 | + ], |
| 800 | + }], |
754 | 801 | ] |
755 | 802 | } |
756 | 803 | ], # end targets |
|
0 commit comments