mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
The GN build always compiles the bundled copies of brotli, c-ares, HdrHistogram, llhttp, libuv, nghttp2, SQLite and zstd, so anyone packaging a GN-built Node.js for a Linux distribution has no counterpart to configure's --shared-* options. Add node_shared_* args named after the GYP variables. When one is set, that dependency's GN template defines its target as a group carrying a pkg-config config instead of the bundled sources, so every existing "deps/<name>" reference picks up the system library without further changes, and config.gypi reports the choice like a GYP build does. Refs: https://github.com/nodejs/node/pull/55903 Signed-off-by: Shelley Vohr <shelley.vohr@gmail.com> PR-URL: https://github.com/nodejs/node/pull/65797 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
57 lines
1.6 KiB
Plaintext
57 lines
1.6 KiB
Plaintext
# This file is used by GN for building, which is NOT the build system used for
|
|
# building official binaries.
|
|
# Please edit the gyp files if you are making changes to build system.
|
|
|
|
# The actual configurations are put inside a template in unofficial.gni to
|
|
# prevent accidental edits from contributors.
|
|
import("../../node.gni")
|
|
|
|
template("nghttp2_gn_build") {
|
|
if (node_shared_nghttp2) {
|
|
import("//build/config/linux/pkg_config.gni")
|
|
pkg_config("nghttp2_config") {
|
|
packages = [ "libnghttp2" ]
|
|
}
|
|
group(target_name) {
|
|
forward_variables_from(invoker, "*")
|
|
public_configs = [ ":nghttp2_config" ]
|
|
}
|
|
} else {
|
|
config("nghttp2_config") {
|
|
include_dirs = [ "lib/includes" ]
|
|
if (!is_component_build) {
|
|
defines = [ "NGHTTP2_STATICLIB" ]
|
|
}
|
|
}
|
|
|
|
gypi_values = exec_script("../../tools/gypi_to_gn.py",
|
|
[ rebase_path("nghttp2.gyp") ],
|
|
"scope",
|
|
[ "nghttp2.gyp" ])
|
|
|
|
component(target_name) {
|
|
forward_variables_from(invoker, "*")
|
|
|
|
public_configs = [ ":nghttp2_config" ]
|
|
defines = [
|
|
"_U_",
|
|
"HAVE_CONFIG_H"
|
|
]
|
|
if (is_component_build) {
|
|
defines += [ "BUILDING_NGHTTP2" ]
|
|
}
|
|
|
|
sources = gypi_values.nghttp2_sources
|
|
|
|
if (is_clang || !is_win) {
|
|
cflags_c = [
|
|
"-Wno-implicit-fallthrough",
|
|
# Ref https://github.com/nghttp2/nghttp2/pull/2258
|
|
# This can be removed when the above PR is ingested.
|
|
"-Wno-extra-semi",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|