4cbc2af604
host-nodejs is quite long to build (5 minutes on a very fast build machine), and will become a download dependency when we implement vendoring for NodeJS-based packages. In order to mitigate this build time, an idea is to use a pre-compiled host NodeJS. One option would be to use a pre-installed NodeJS, but we're concerned by version compatibility issues of the host NodeJS/NPM does not have the same version as the target NodeJS/NPM. So another option is to use a pre-compiled NodeJS provided by the NodeJS project itself. To achieve this, this commit turns the host-nodejs package into a virtual package. For the time being, this has just one provider: host-nodejs-src, which builds host-nodejs from source. This is the original host-nodejs package, renamed to host-nodejs-src. The target nodejs package is also renamed to nodejs-src in order to have a single package nodejs-src that has a host and target version, as usual. We do keep the nodejs target package itself, but it's an empty package - not even a virtual package. This means the following. - Its VERSION, SOURCE and SITE variables are left empty. The existing variables are renamed to NODEJS_COMMON_VERSION etc. to allow them to be reused by nodejs-src and the future nodejs-bin. - It's a generic package with a single dependency, nodejs-src. - The Config.in remains unchanged, except that it selects BR2_PACKAGE_NODEJS_SRC. - BR2_PACKAGE_NODEJS_SRC is a blind option. Co-authored-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
From af47d317e5ae12978c1cdc40627008ada144f98b Mon Sep 17 00:00:00 2001
|
|
From: Min RK <benjaminrk@gmail.com>
|
|
Date: Fri, 19 Feb 2021 11:57:04 +0100
|
|
Subject: [PATCH] include obj name in shared intermediate
|
|
|
|
avoids duplicate ninja rules for v8 used in host and target
|
|
|
|
From: https://github.com/minrk/node/commit/5e533cb943eef68b270f55f0cba02c0ec67c699d
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
---
|
|
tools/gyp/pylib/gyp/generator/ninja.py | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/tools/gyp/pylib/gyp/generator/ninja.py b/tools/gyp/pylib/gyp/generator/ninja.py
|
|
index 3db3771ac9..2e0a021703 100644
|
|
--- a/tools/gyp/pylib/gyp/generator/ninja.py
|
|
+++ b/tools/gyp/pylib/gyp/generator/ninja.py
|
|
@@ -42,7 +42,7 @@ generator_default_variables = {
|
|
# the start of a string, while $| is used for variables that can appear
|
|
# anywhere in a string.
|
|
"INTERMEDIATE_DIR": "$!INTERMEDIATE_DIR",
|
|
- "SHARED_INTERMEDIATE_DIR": "$!PRODUCT_DIR/gen",
|
|
+ "SHARED_INTERMEDIATE_DIR": "$!PRODUCT_DIR/$|OBJ/gen",
|
|
"PRODUCT_DIR": "$!PRODUCT_DIR",
|
|
"CONFIGURATION_NAME": "$|CONFIGURATION_NAME",
|
|
# Special variables that may be used by gyp 'rule' targets.
|
|
@@ -285,6 +285,12 @@ class NinjaWriter:
|
|
CONFIGURATION_NAME = "$|CONFIGURATION_NAME"
|
|
path = path.replace(CONFIGURATION_NAME, self.config_name)
|
|
|
|
+ obj = "obj"
|
|
+ if self.toolset != "target":
|
|
+ obj += "." + self.toolset
|
|
+
|
|
+ path = path.replace("$|OBJ", obj)
|
|
+
|
|
return path
|
|
|
|
def ExpandRuleVariables(self, path, root, dirname, source, ext, name):
|
|
--
|
|
2.37.3
|
|
|