From f84bf5b6b174af0639813c9f3167f3593f2c5eb4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Maciej=20Ma=C5=82ecki?= Date: Fri, 21 Dec 2012 02:56:47 +0100 Subject: [PATCH] build: allow to specify custom tags When building custom `node` versions (e.g., floating features/fixes from different versions) it's often useful to specify a custom tag which easily identifies build when invoking `node -v`. Introduce a way to specify this tag in `node_version.h` file or by running `./configure --tag=""`. Insert it right after the patch version (and before `-pre`, if build is not a release). Closes #4452. --- configure | 7 +++++++ node.gyp | 1 + src/node_version.h | 11 +++++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/configure b/configure index a97e964..36dbdce 100755 --- a/configure +++ b/configure @@ -265,6 +265,11 @@ parser.add_option("--xcode", dest="use_xcode", help="Generate build files for use with xcode") +parser.add_option("--tag", + action="store", + dest="tag", + help="Custom build tag") + (options, args) = parser.parse_args() @@ -490,6 +495,8 @@ def configure_node(o): else: o['variables']['node_use_perfctr'] = 'false' + o['variables']['node_tag'] = options.tag or '' + def configure_libz(o): o['variables']['node_shared_zlib'] = b(options.shared_zlib) diff --git a/node.gyp b/node.gyp index 8035464..5b82114 100644 --- a/node.gyp +++ b/node.gyp @@ -142,6 +142,7 @@ 'NODE_WANT_INTERNALS=1', 'ARCH="<(target_arch)"', 'PLATFORM="<(OS)"', + 'NODE_TAG="<(node_tag)"', ], 'conditions': [ diff --git a/src/node_version.h b/src/node_version.h index 442cfce..e6e200f 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -25,6 +25,11 @@ #define NODE_MAJOR_VERSION 0 #define NODE_MINOR_VERSION 9 #define NODE_PATCH_VERSION 5 + +#ifndef NODE_TAG +# define NODE_TAG "" +#endif + #define NODE_VERSION_IS_RELEASE 0 #ifndef NODE_STRINGIFY @@ -35,11 +40,13 @@ #if NODE_VERSION_IS_RELEASE # define NODE_VERSION_STRING NODE_STRINGIFY(NODE_MAJOR_VERSION) "." \ NODE_STRINGIFY(NODE_MINOR_VERSION) "." \ - NODE_STRINGIFY(NODE_PATCH_VERSION) + NODE_STRINGIFY(NODE_PATCH_VERSION) \ + NODE_TAG #else # define NODE_VERSION_STRING NODE_STRINGIFY(NODE_MAJOR_VERSION) "." \ NODE_STRINGIFY(NODE_MINOR_VERSION) "." \ - NODE_STRINGIFY(NODE_PATCH_VERSION) "-pre" + NODE_STRINGIFY(NODE_PATCH_VERSION) \ + NODE_TAG "-pre" #endif #define NODE_VERSION "v" NODE_VERSION_STRING -- 2.7.4