diff --git a/BUILD.gn b/BUILD.gn index 9d74a94da2a..00811c2276d 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -53,179 +53,8 @@ config("node_internals") { defines = [ "NODE_WANT_INTERNALS=1" ] } -library_files = [ - "lib/internal/per_context.js", - "lib/internal/bootstrap/cache.js", - "lib/internal/bootstrap/loaders.js", - "lib/internal/bootstrap/node.js", - "lib/async_hooks.js", - "lib/assert.js", - "lib/buffer.js", - "lib/child_process.js", - "lib/console.js", - "lib/constants.js", - "lib/crypto.js", - "lib/cluster.js", - "lib/dgram.js", - "lib/dns.js", - "lib/domain.js", - "lib/events.js", - "lib/fs.js", - "lib/http.js", - "lib/http2.js", - "lib/_http_agent.js", - "lib/_http_client.js", - "lib/_http_common.js", - "lib/_http_incoming.js", - "lib/_http_outgoing.js", - "lib/_http_server.js", - "lib/https.js", - "lib/inspector.js", - "lib/module.js", - "lib/net.js", - "lib/os.js", - "lib/path.js", - "lib/perf_hooks.js", - "lib/process.js", - "lib/punycode.js", - "lib/querystring.js", - "lib/readline.js", - "lib/repl.js", - "lib/stream.js", - "lib/_stream_readable.js", - "lib/_stream_writable.js", - "lib/_stream_duplex.js", - "lib/_stream_transform.js", - "lib/_stream_passthrough.js", - "lib/_stream_wrap.js", - "lib/string_decoder.js", - "lib/sys.js", - "lib/timers.js", - "lib/tls.js", - "lib/_tls_common.js", - "lib/_tls_wrap.js", - "lib/trace_events.js", - "lib/tty.js", - "lib/url.js", - "lib/util.js", - "lib/v8.js", - "lib/vm.js", - "lib/worker_threads.js", - "lib/zlib.js", - "lib/internal/assert.js", - "lib/internal/async_hooks.js", - "lib/internal/buffer.js", - "lib/internal/cli_table.js", - "lib/internal/child_process.js", - "lib/internal/cluster/child.js", - "lib/internal/cluster/master.js", - "lib/internal/cluster/round_robin_handle.js", - "lib/internal/cluster/shared_handle.js", - "lib/internal/cluster/utils.js", - "lib/internal/cluster/worker.js", - "lib/internal/crypto/certificate.js", - "lib/internal/crypto/cipher.js", - "lib/internal/crypto/diffiehellman.js", - "lib/internal/crypto/hash.js", - "lib/internal/crypto/pbkdf2.js", - "lib/internal/crypto/random.js", - "lib/internal/crypto/scrypt.js", - "lib/internal/crypto/sig.js", - "lib/internal/crypto/util.js", - "lib/internal/constants.js", - "lib/internal/dgram.js", - "lib/internal/dns/promises.js", - "lib/internal/dns/utils.js", - "lib/internal/domexception.js", - "lib/internal/encoding.js", - "lib/internal/errors.js", - "lib/internal/error-serdes.js", - "lib/internal/fixed_queue.js", - "lib/internal/freelist.js", - "lib/internal/fs/promises.js", - "lib/internal/fs/read_file_context.js", - "lib/internal/fs/streams.js", - "lib/internal/fs/sync_write_stream.js", - "lib/internal/fs/utils.js", - "lib/internal/fs/watchers.js", - "lib/internal/http.js", - "lib/internal/inspector_async_hook.js", - "lib/internal/linkedlist.js", - "lib/internal/modules/cjs/helpers.js", - "lib/internal/modules/cjs/loader.js", - "lib/internal/modules/esm/loader.js", - "lib/internal/modules/esm/create_dynamic_module.js", - "lib/internal/modules/esm/default_resolve.js", - "lib/internal/modules/esm/module_job.js", - "lib/internal/modules/esm/module_map.js", - "lib/internal/modules/esm/translators.js", - "lib/internal/safe_globals.js", - "lib/internal/net.js", - "lib/internal/print_help.js", - "lib/internal/process/esm_loader.js", - "lib/internal/process/main_thread_only.js", - "lib/internal/process/next_tick.js", - "lib/internal/process/per_thread.js", - "lib/internal/process/promises.js", - "lib/internal/process/stdio.js", - "lib/internal/process/warning.js", - "lib/internal/process/worker_thread_only.js", - "lib/internal/querystring.js", - "lib/internal/process/write-coverage.js", - "lib/internal/process/coverage.js", - "lib/internal/readline.js", - "lib/internal/repl.js", - "lib/internal/repl/await.js", - "lib/internal/repl/recoverable.js", - "lib/internal/socket_list.js", - "lib/internal/test/binding.js", - "lib/internal/test/heap.js", - "lib/internal/test/unicode.js", - "lib/internal/timers.js", - "lib/internal/tls.js", - "lib/internal/trace_events_async_hooks.js", - "lib/internal/tty.js", - "lib/internal/url.js", - "lib/internal/util.js", - "lib/internal/util/comparisons.js", - "lib/internal/util/inspector.js", - "lib/internal/util/types.js", - "lib/internal/http2/core.js", - "lib/internal/http2/compat.js", - "lib/internal/http2/util.js", - "lib/internal/v8_prof_polyfill.js", - "lib/internal/v8_prof_processor.js", - "lib/internal/validators.js", - "lib/internal/stream_base_commons.js", - "lib/internal/vm/source_text_module.js", - "lib/internal/worker.js", - "lib/internal/streams/lazy_transform.js", - "lib/internal/streams/async_iterator.js", - "lib/internal/streams/buffer_list.js", - "lib/internal/streams/duplexpair.js", - "lib/internal/streams/legacy.js", - "lib/internal/streams/destroy.js", - "lib/internal/streams/state.js", - "lib/internal/streams/pipeline.js", - "lib/internal/streams/end-of-stream.js", - "lib/internal/wrap_js_stream.js", - "deps/v8/tools/splaytree.js", - "deps/v8/tools/codemap.js", - "deps/v8/tools/consarray.js", - "deps/v8/tools/csvparser.js", - "deps/v8/tools/profile.js", - "deps/v8/tools/profile_view.js", - "deps/v8/tools/logreader.js", - "deps/v8/tools/arguments.js", - "deps/v8/tools/tickprocessor.js", - "deps/v8/tools/SourceMap.js", - "deps/v8/tools/tickprocessor-driver.js", - "deps/node-inspect/lib/_inspect.js", - "deps/node-inspect/lib/internal/inspect_client.js", - "deps/node-inspect/lib/internal/inspect_repl.js", - "deps/acorn/dist/acorn.js", - "deps/acorn/dist/walk.js", -] +node_files = read_file("filenames.json", "json") +library_files = node_files.library_files copy("node_js2c_inputs") { sources = library_files @@ -374,137 +203,10 @@ component("node_lib") { deps += [ "//third_party/icu" ] } - sources = [ + sources = node_files.node_sources + sources += [ "$target_gen_dir/node_javascript.cc", - "src/aliased_buffer.h", - "src/async_wrap-inl.h", - "src/async_wrap.cc", - "src/async_wrap.h", - "src/base_object-inl.h", - "src/base_object.h", - "src/bootstrapper.cc", - "src/callback_scope.cc", - "src/cares_wrap.cc", - "src/connect_wrap.cc", - "src/connect_wrap.h", - "src/connection_wrap.cc", - "src/connection_wrap.h", - "src/debug_utils.cc", - "src/debug_utils.h", - "src/env-inl.h", - "src/env.cc", - "src/env.h", - "src/exceptions.cc", - "src/fs_event_wrap.cc", - "src/handle_wrap.cc", - "src/handle_wrap.h", - "src/heap_utils.cc", - "src/js_stream.cc", - "src/js_stream.h", - "src/memory_tracker-inl.h", - "src/memory_tracker.h", - "src/module_wrap.cc", - "src/module_wrap.h", - "src/node.cc", - "src/node.h", - "src/node_api.cc", - "src/node_api.h", - "src/node_api_types.h", - "src/node_buffer.cc", - "src/node_buffer.h", - "src/node_code_cache.h", "src/node_code_cache_stub.cc", - "src/node_config.cc", - "src/node_constants.cc", - "src/node_constants.h", - "src/node_contextify.cc", - "src/node_contextify.h", - "src/node_domain.cc", - "src/node_encoding.cc", - "src/node_errors.h", - "src/node_file.cc", - "src/node_file.h", - "src/node_http2.cc", - "src/node_http2.h", - "src/node_http2_state.h", - "src/node_http_parser.cc", - "src/node_i18n.cc", - "src/node_i18n.h", - "src/node_internals.h", - "src/node_javascript.h", - "src/node_messaging.cc", - "src/node_messaging.h", - "src/node_mutex.h", - "src/node_options-inl.h", - "src/node_options.cc", - "src/node_options.h", - "src/node_os.cc", - "src/node_perf.cc", - "src/node_perf.h", - "src/node_perf_common.h", - "src/node_persistent.h", - "src/node_platform.cc", - "src/node_platform.h", - "src/node_postmortem_metadata.cc", - "src/node_process.cc", - "src/node_revert.h", - "src/node_root_certs.h", - "src/node_serdes.cc", - "src/node_stat_watcher.cc", - "src/node_trace_events.cc", - "src/node_types.cc", - "src/node_url.cc", - "src/node_util.cc", - "src/node_v8.cc", - "src/node_version.h", - "src/node_watchdog.cc", - "src/node_watchdog.h", - "src/node_worker.cc", - "src/node_worker.h", - "src/node_wrap.h", - "src/node_zlib.cc", - "src/pipe_wrap.cc", - "src/pipe_wrap.h", - "src/process_wrap.cc", - "src/req_wrap-inl.h", - "src/req_wrap.h", - "src/sharedarraybuffer_metadata.cc", - "src/sharedarraybuffer_metadata.h", - "src/signal_wrap.cc", - "src/spawn_sync.cc", - "src/stream_base-inl.h", - "src/stream_base.cc", - "src/stream_base.h", - "src/stream_pipe.cc", - "src/stream_pipe.h", - "src/stream_wrap.cc", - "src/stream_wrap.h", - "src/string_bytes.cc", - "src/string_bytes.h", - "src/string_decoder-inl.h", - "src/string_decoder.cc", - "src/string_decoder.h", - "src/tcp_wrap.cc", - "src/tcp_wrap.h", - "src/timer_wrap.cc", - "src/tracing/agent.cc", - "src/tracing/agent.h", - "src/tracing/node_trace_buffer.cc", - "src/tracing/node_trace_buffer.h", - "src/tracing/node_trace_writer.cc", - "src/tracing/node_trace_writer.h", - "src/tracing/trace_event.cc", - "src/tracing/trace_event.h", - "src/tracing/traced_value.cc", - "src/tracing/traced_value.h", - "src/tty_wrap.cc", - "src/tty_wrap.h", - "src/udp_wrap.cc", - "src/udp_wrap.h", - "src/util-inl.h", - "src/util.cc", - "src/util.h", - "src/uv.cc", ] if (is_win) { @@ -561,98 +263,42 @@ component("node_lib") { ##### node_headers -node_headers_dir = "$root_gen_dir/node_headers/include/node" +node_headers_dir = "$root_gen_dir/node_headers" -copy("node_headers") { - deps = [ - ":generate_config_gypi", - ] - sources = [ - "$target_gen_dir/config.gypi", - "common.gypi", - "src/node.h", - "src/node_api.h", - "src/node_api_types.h", - "src/node_buffer.h", - "src/node_object_wrap.h", - "src/node_version.h", - ] - outputs = [ - "$node_headers_dir/{{source_file_part}}", - ] -} - -copy("v8_headers") { - sources = [ - "//v8/include/v8-inspector-protocol.h", - "//v8/include/v8-inspector.h", - "//v8/include/v8-platform.h", - "//v8/include/v8-profiler.h", - "//v8/include/v8-testing.h", - "//v8/include/v8-util.h", - "//v8/include/v8-value-serializer-version.h", - "//v8/include/v8-version-string.h", - "//v8/include/v8-version.h", - "//v8/include/v8.h", - "//v8/include/v8config.h", - ] - outputs = [ - "$node_headers_dir/{{source_file_part}}", - ] +header_group_index = 0 +header_groups = [] +foreach(header_group, node_files.headers) { + copy("node_headers_${header_group_index}") { + sources = header_group.files + outputs = [ "$node_headers_dir/${header_group.dest_dir}/{{source_file_part}}" ] + } + header_groups += [ ":node_headers_${header_group_index}" ] + header_group_index += 1 } -copy("v8_platform_headers") { +copy("zlib_headers") { sources = [ - "//v8/include/libplatform/libplatform-export.h", - "//v8/include/libplatform/libplatform.h", - "//v8/include/libplatform/v8-tracing.h", + "//third_party/zlib/zconf.h", + "//third_party/zlib/zlib.h", ] outputs = [ - "$node_headers_dir/libplatform/{{source_file_part}}", + "$node_headers_dir/include/node/{{source_file_part}}", ] } -copy("uv_headers") { - sources = [ - "deps/uv/include/uv/android-ifaddrs.h", - "deps/uv/include/uv/pthread-barrier.h", - "deps/uv/include/uv/stdint-msvc2008.h", - "deps/uv/include/uv/tree.h", - "deps/uv/include/uv/aix.h", - "deps/uv/include/uv/bsd.h", - "deps/uv/include/uv/darwin.h", - "deps/uv/include/uv/errno.h", - "deps/uv/include/uv/linux.h", - "deps/uv/include/uv/os390.h", - "deps/uv/include/uv/posix.h", - "deps/uv/include/uv/sunos.h", - "deps/uv/include/uv/threadpool.h", - "deps/uv/include/uv/unix.h", - "deps/uv/include/uv/version.h", - "deps/uv/include/uv/win.h", - "deps/uv/include/uv.h", - ] - outputs = [ - "$node_headers_dir/{{source_file_part}}", +copy("node_gypi_headers") { + deps = [ + ":generate_config_gypi" ] -} - -copy("zlib_headers") { sources = [ - "//third_party/zlib/zconf.h", - "//third_party/zlib/zlib.h", + "common.gypi", + "$target_gen_dir/config.gypi", ] outputs = [ - "$node_headers_dir/{{source_file_part}}", + "$node_headers_dir/include/node/{{source_file_part}}" ] } group("headers") { - public_deps = [ - ":node_headers", - ":uv_headers", - ":v8_headers", - ":v8_platform_headers", - ":zlib_headers", - ] + public_deps = header_groups + [ ":zlib_headers", ":node_gypi_headers" ] } diff --git a/filenames.json b/filenames.json new file mode 100644 index 00000000000..5477a3c2b93 --- /dev/null +++ b/filenames.json @@ -0,0 +1,373 @@ +// This file is automatically generated by generate_gn_filenames_json.py +// DO NOT EDIT +{ + "headers": [ + { + "dest_dir": "include/node/", + "files": [ + "src/node.h", + "src/node_api.h", + "src/node_api_types.h", + "src/node_buffer.h", + "src/node_object_wrap.h", + "src/node_version.h" + ] + }, + { + "dest_dir": "include/node//", + "files": [ + "//v8/include/v8-inspector-protocol.h", + "//v8/include/v8-inspector.h", + "//v8/include/v8-platform.h", + "//v8/include/v8-profiler.h", + "//v8/include/v8-testing.h", + "//v8/include/v8-util.h", + "//v8/include/v8-value-serializer-version.h", + "//v8/include/v8-version-string.h", + "//v8/include/v8-version.h", + "//v8/include/v8.h", + "//v8/include/v8config.h" + ] + }, + { + "dest_dir": "include/node//libplatform/", + "files": [ + "//v8/include/libplatform/libplatform-export.h", + "//v8/include/libplatform/libplatform.h", + "//v8/include/libplatform/v8-tracing.h" + ] + }, + { + "dest_dir": "include/node//uv/", + "files": [ + "deps/uv/include/uv/aix.h", + "deps/uv/include/uv/android-ifaddrs.h", + "deps/uv/include/uv/bsd.h", + "deps/uv/include/uv/darwin.h", + "deps/uv/include/uv/errno.h", + "deps/uv/include/uv/linux.h", + "deps/uv/include/uv/os390.h", + "deps/uv/include/uv/posix.h", + "deps/uv/include/uv/pthread-barrier.h", + "deps/uv/include/uv/stdint-msvc2008.h", + "deps/uv/include/uv/sunos.h", + "deps/uv/include/uv/threadpool.h", + "deps/uv/include/uv/tree.h", + "deps/uv/include/uv/unix.h", + "deps/uv/include/uv/version.h", + "deps/uv/include/uv/win.h" + ] + }, + { + "dest_dir": "include/node//", + "files": [ + "deps/uv/include/uv.h" + ] + } + ], + "library_files": [ + "lib/internal/per_context.js", + "lib/internal/bootstrap/cache.js", + "lib/internal/bootstrap/loaders.js", + "lib/internal/bootstrap/node.js", + "lib/async_hooks.js", + "lib/assert.js", + "lib/buffer.js", + "lib/child_process.js", + "lib/console.js", + "lib/constants.js", + "lib/crypto.js", + "lib/cluster.js", + "lib/dgram.js", + "lib/dns.js", + "lib/domain.js", + "lib/events.js", + "lib/fs.js", + "lib/http.js", + "lib/http2.js", + "lib/_http_agent.js", + "lib/_http_client.js", + "lib/_http_common.js", + "lib/_http_incoming.js", + "lib/_http_outgoing.js", + "lib/_http_server.js", + "lib/https.js", + "lib/inspector.js", + "lib/module.js", + "lib/net.js", + "lib/os.js", + "lib/path.js", + "lib/perf_hooks.js", + "lib/process.js", + "lib/punycode.js", + "lib/querystring.js", + "lib/readline.js", + "lib/repl.js", + "lib/stream.js", + "lib/_stream_readable.js", + "lib/_stream_writable.js", + "lib/_stream_duplex.js", + "lib/_stream_transform.js", + "lib/_stream_passthrough.js", + "lib/_stream_wrap.js", + "lib/string_decoder.js", + "lib/sys.js", + "lib/timers.js", + "lib/tls.js", + "lib/_tls_common.js", + "lib/_tls_wrap.js", + "lib/trace_events.js", + "lib/tty.js", + "lib/url.js", + "lib/util.js", + "lib/v8.js", + "lib/vm.js", + "lib/worker_threads.js", + "lib/zlib.js", + "lib/internal/assert.js", + "lib/internal/async_hooks.js", + "lib/internal/buffer.js", + "lib/internal/cli_table.js", + "lib/internal/child_process.js", + "lib/internal/cluster/child.js", + "lib/internal/cluster/master.js", + "lib/internal/cluster/round_robin_handle.js", + "lib/internal/cluster/shared_handle.js", + "lib/internal/cluster/utils.js", + "lib/internal/cluster/worker.js", + "lib/internal/crypto/certificate.js", + "lib/internal/crypto/cipher.js", + "lib/internal/crypto/diffiehellman.js", + "lib/internal/crypto/hash.js", + "lib/internal/crypto/pbkdf2.js", + "lib/internal/crypto/random.js", + "lib/internal/crypto/scrypt.js", + "lib/internal/crypto/sig.js", + "lib/internal/crypto/util.js", + "lib/internal/constants.js", + "lib/internal/dgram.js", + "lib/internal/dns/promises.js", + "lib/internal/dns/utils.js", + "lib/internal/domexception.js", + "lib/internal/encoding.js", + "lib/internal/errors.js", + "lib/internal/error-serdes.js", + "lib/internal/fixed_queue.js", + "lib/internal/freelist.js", + "lib/internal/fs/promises.js", + "lib/internal/fs/read_file_context.js", + "lib/internal/fs/streams.js", + "lib/internal/fs/sync_write_stream.js", + "lib/internal/fs/utils.js", + "lib/internal/fs/watchers.js", + "lib/internal/http.js", + "lib/internal/inspector_async_hook.js", + "lib/internal/linkedlist.js", + "lib/internal/modules/cjs/helpers.js", + "lib/internal/modules/cjs/loader.js", + "lib/internal/modules/esm/loader.js", + "lib/internal/modules/esm/create_dynamic_module.js", + "lib/internal/modules/esm/default_resolve.js", + "lib/internal/modules/esm/module_job.js", + "lib/internal/modules/esm/module_map.js", + "lib/internal/modules/esm/translators.js", + "lib/internal/safe_globals.js", + "lib/internal/net.js", + "lib/internal/print_help.js", + "lib/internal/process/esm_loader.js", + "lib/internal/process/main_thread_only.js", + "lib/internal/process/next_tick.js", + "lib/internal/process/per_thread.js", + "lib/internal/process/promises.js", + "lib/internal/process/stdio.js", + "lib/internal/process/warning.js", + "lib/internal/process/worker_thread_only.js", + "lib/internal/querystring.js", + "lib/internal/process/write-coverage.js", + "lib/internal/process/coverage.js", + "lib/internal/readline.js", + "lib/internal/repl.js", + "lib/internal/repl/await.js", + "lib/internal/repl/recoverable.js", + "lib/internal/socket_list.js", + "lib/internal/test/binding.js", + "lib/internal/test/heap.js", + "lib/internal/test/unicode.js", + "lib/internal/timers.js", + "lib/internal/tls.js", + "lib/internal/trace_events_async_hooks.js", + "lib/internal/tty.js", + "lib/internal/url.js", + "lib/internal/util.js", + "lib/internal/util/comparisons.js", + "lib/internal/util/inspector.js", + "lib/internal/util/types.js", + "lib/internal/http2/core.js", + "lib/internal/http2/compat.js", + "lib/internal/http2/util.js", + "lib/internal/v8_prof_polyfill.js", + "lib/internal/v8_prof_processor.js", + "lib/internal/validators.js", + "lib/internal/stream_base_commons.js", + "lib/internal/vm/source_text_module.js", + "lib/internal/worker.js", + "lib/internal/streams/lazy_transform.js", + "lib/internal/streams/async_iterator.js", + "lib/internal/streams/buffer_list.js", + "lib/internal/streams/duplexpair.js", + "lib/internal/streams/legacy.js", + "lib/internal/streams/destroy.js", + "lib/internal/streams/state.js", + "lib/internal/streams/pipeline.js", + "lib/internal/streams/end-of-stream.js", + "lib/internal/wrap_js_stream.js", + "deps/v8/tools/splaytree.js", + "deps/v8/tools/codemap.js", + "deps/v8/tools/consarray.js", + "deps/v8/tools/csvparser.js", + "deps/v8/tools/profile.js", + "deps/v8/tools/profile_view.js", + "deps/v8/tools/logreader.js", + "deps/v8/tools/arguments.js", + "deps/v8/tools/tickprocessor.js", + "deps/v8/tools/SourceMap.js", + "deps/v8/tools/tickprocessor-driver.js", + "deps/node-inspect/lib/_inspect.js", + "deps/node-inspect/lib/internal/inspect_client.js", + "deps/node-inspect/lib/internal/inspect_repl.js", + "deps/acorn/dist/acorn.js", + "deps/acorn/dist/walk.js" + ], + "node_sources": [ + "src/async_wrap.cc", + "src/bootstrapper.cc", + "src/callback_scope.cc", + "src/cares_wrap.cc", + "src/connection_wrap.cc", + "src/connect_wrap.cc", + "src/debug_utils.cc", + "src/env.cc", + "src/exceptions.cc", + "src/fs_event_wrap.cc", + "src/handle_wrap.cc", + "src/heap_utils.cc", + "src/js_stream.cc", + "src/module_wrap.cc", + "src/node.cc", + "src/node_api.cc", + "src/node_api.h", + "src/node_api_types.h", + "src/node_buffer.cc", + "src/node_config.cc", + "src/node_constants.cc", + "src/node_contextify.cc", + "src/node_domain.cc", + "src/node_encoding.cc", + "src/node_errors.h", + "src/node_file.cc", + "src/node_http2.cc", + "src/node_http_parser.cc", + "src/node_messaging.cc", + "src/node_options.cc", + "src/node_os.cc", + "src/node_platform.cc", + "src/node_perf.cc", + "src/node_postmortem_metadata.cc", + "src/node_process.cc", + "src/node_serdes.cc", + "src/node_trace_events.cc", + "src/node_types.cc", + "src/node_url.cc", + "src/node_util.cc", + "src/node_v8.cc", + "src/node_stat_watcher.cc", + "src/node_watchdog.cc", + "src/node_worker.cc", + "src/node_zlib.cc", + "src/node_i18n.cc", + "src/pipe_wrap.cc", + "src/process_wrap.cc", + "src/sharedarraybuffer_metadata.cc", + "src/signal_wrap.cc", + "src/spawn_sync.cc", + "src/string_bytes.cc", + "src/string_decoder.cc", + "src/stream_base.cc", + "src/stream_pipe.cc", + "src/stream_wrap.cc", + "src/tcp_wrap.cc", + "src/timer_wrap.cc", + "src/tracing/agent.cc", + "src/tracing/node_trace_buffer.cc", + "src/tracing/node_trace_writer.cc", + "src/tracing/trace_event.cc", + "src/tracing/traced_value.cc", + "src/tty_wrap.cc", + "src/udp_wrap.cc", + "src/util.cc", + "src/uv.cc", + "src/aliased_buffer.h", + "src/async_wrap.h", + "src/async_wrap-inl.h", + "src/base_object.h", + "src/base_object-inl.h", + "src/connection_wrap.h", + "src/connect_wrap.h", + "src/debug_utils.h", + "src/env.h", + "src/env-inl.h", + "src/handle_wrap.h", + "src/js_stream.h", + "src/module_wrap.h", + "src/node.h", + "src/node_buffer.h", + "src/node_code_cache.h", + "src/node_constants.h", + "src/node_contextify.h", + "src/node_file.h", + "src/node_http2.h", + "src/node_http2_state.h", + "src/node_internals.h", + "src/node_javascript.h", + "src/node_messaging.h", + "src/node_mutex.h", + "src/node_options.h", + "src/node_options-inl.h", + "src/node_perf.h", + "src/node_perf_common.h", + "src/node_persistent.h", + "src/node_platform.h", + "src/node_root_certs.h", + "src/node_version.h", + "src/node_watchdog.h", + "src/node_wrap.h", + "src/node_revert.h", + "src/node_i18n.h", + "src/node_worker.h", + "src/memory_tracker.h", + "src/memory_tracker-inl.h", + "src/pipe_wrap.h", + "src/tty_wrap.h", + "src/tcp_wrap.h", + "src/udp_wrap.h", + "src/req_wrap.h", + "src/req_wrap-inl.h", + "src/sharedarraybuffer_metadata.h", + "src/string_bytes.h", + "src/string_decoder.h", + "src/string_decoder-inl.h", + "src/stream_base.h", + "src/stream_base-inl.h", + "src/stream_pipe.h", + "src/stream_wrap.h", + "src/tracing/agent.h", + "src/tracing/node_trace_buffer.h", + "src/tracing/node_trace_writer.h", + "src/tracing/trace_event.h", + "src/tracing/traced_value.h", + "src/util.h", + "src/util-inl.h", + "deps/http_parser/http_parser.h", + "deps/v8/include/v8.h" + ] +} diff --git a/tools/generate_gn_filenames_json.py b/tools/generate_gn_filenames_json.py new file mode 100755 index 00000000000..28e97bcb9ae --- /dev/null +++ b/tools/generate_gn_filenames_json.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +import json +import os +import sys + +import install + + +def LoadPythonDictionary(path): + file_string = open(path).read() + try: + file_data = eval(file_string, {'__builtins__': None}, None) + except SyntaxError, e: + e.filename = path + raise + except Exception, e: + raise Exception("Unexpected error while reading %s: %s" % (path, str(e))) + + assert isinstance(file_data, dict), "%s does not eval to a dictionary" % path + + return file_data + + +FILENAMES_JSON_HEADER = ''' +// This file is automatically generated by generate_gn_filenames_json.py +// DO NOT EDIT +'''.lstrip() + + +if __name__ == '__main__': + node_root_dir = os.path.dirname(os.path.dirname(__file__)) + node_gyp_path = os.path.join(node_root_dir, 'node.gyp') + out = {} + node_gyp = LoadPythonDictionary(node_gyp_path) + out['library_files'] = node_gyp['variables']['library_files'] + node_lib_target = next( + t for t in node_gyp['targets'] + if t['target_name'] == '<(node_lib_target_name)') + node_source_blacklist = { + '<@(library_files)', + 'common.gypi', + '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc', + } + out['node_sources'] = [ + f for f in node_lib_target['sources'] + if f not in node_source_blacklist] + + out['headers'] = [] + + def add_headers(files, dest_dir): + if 'src/node.h' in files: + files = [f for f in files if f.endswith('.h')] + elif any(f.startswith('deps/v8/') for f in files): + files = [f.replace('deps/v8/', '//v8/', 1) for f in files] + hs = {'files': sorted(files), 'dest_dir': dest_dir} + out['headers'].append(hs) + + install.variables = {'node_shared_libuv': 'false'} + install.headers(add_headers) + with open(os.path.join(node_root_dir, 'filenames.json'), 'w') as f: + f.write(FILENAMES_JSON_HEADER) + f.write(json.dumps(out, sort_keys=True, indent=2, separators=(',', ': '))) + f.write('\n')