From ec1364b6ae8f3be9054af5c56c7bf7c2d1b7c735 Mon Sep 17 00:00:00 2001 From: alexcfyung Date: Wed, 12 Jan 2022 15:30:05 -0500 Subject: [PATCH] build: enable zoslib installation on z/OS zoslib is a C/C++ runtime library and an extended implementation of the z/OS LE C Runtime Library. PR-URL: https://github.com/nodejs/node/pull/41493 Reviewed-By: Richard Lau Reviewed-By: Michael Dawson Reviewed-By: James M Snell Co-authored-by: Gaby Baghdadi --- common.gypi | 2 ++ tools/install.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/common.gypi b/common.gypi index 4a71d03b9b1..d22e6fd0ec6 100644 --- a/common.gypi +++ b/common.gypi @@ -618,6 +618,8 @@ 'ldflags': [ '-q64', ], + # for addons due to v8config.h include of "zos-base.h": + 'include_dirs': ['$(ZOSLIB_INCLUDES)'], }], ], } diff --git a/tools/install.py b/tools/install.py index 5340ce38b9b..e51d1298559 100755 --- a/tools/install.py +++ b/tools/install.py @@ -228,6 +228,12 @@ def headers(action): files_arg = [name for name in files_arg if name in v8_headers] action(files_arg, dest) + def wanted_zoslib_headers(files_arg, dest): + import glob + zoslib_headers = glob.glob(zoslibinc + '/*.h') + files_arg = [name for name in files_arg if name in zoslib_headers] + action(files_arg, dest) + action([ 'common.gypi', 'config.gypi', @@ -262,6 +268,14 @@ def headers(action): 'deps/zlib/zlib.h', ], 'include/node/') + if sys.platform == 'zos': + zoslibinc = os.environ.get('ZOSLIB_INCLUDES') + if not zoslibinc: + raise RuntimeError('Environment variable ZOSLIB_INCLUDES is not set\n') + if not os.path.isfile(zoslibinc + '/zos-base.h'): + raise RuntimeError('ZOSLIB_INCLUDES is not set to a valid location\n') + subdir_files(zoslibinc, 'include/node/zoslib/', wanted_zoslib_headers) + def run(args): global node_prefix, install_path, target_defaults, variables