fix: clang variable configuration in generated node headers (#44202)

* fix: clang variable configuration in generated node headers

Co-authored-by: deepak1556 <hop2deep@gmail.com>

* chore: restore value in common.gypi

Co-authored-by: deepak1556 <hop2deep@gmail.com>

* chore: update patches

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
This commit is contained in:
trop[bot] 2024-10-11 14:52:49 -04:00 committed by GitHub
parent 4ccf4fa97d
commit e206378680
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 0 deletions

View file

@ -45,3 +45,4 @@ cherry-pick_src_remove_calls_to_recently_deprecated_v8_apis.patch
test_update_v8-stats_test_for_v8_12_6.patch
src_use_supported_api_to_get_stalled_tla_messages.patch
build_don_t_redefine_win32_lean_and_mean.patch
build_restore_clang_as_default_compiler_on_macos.patch

View file

@ -0,0 +1,24 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: deepak1556 <hop2deep@gmail.com>
Date: Fri, 11 Oct 2024 15:01:25 +0900
Subject: build: restore clang as default compiler on macOS
Refs https://github.com/nodejs/node/commit/6e0a2bb54c5bbeff0e9e33e1a0c683ed980a8a0f
configures the value at build time which doesn't work in Electron
as it depends on the environment in which the headers got generated from which
cannot reflect the value per platform. It works for Node.js since
node-gyp will use the result of `process.config` that reflects the environment
in which the binary got built.
diff --git a/common.gypi b/common.gypi
index bdf1a1f33f3ea09d933757c7fee87c563cc833ab..0cd67d7d8df79e8b11b5d270aedce772ea23dcae 100644
--- a/common.gypi
+++ b/common.gypi
@@ -125,6 +125,7 @@
'v8_base': '<(PRODUCT_DIR)/obj.target/tools/v8_gypfiles/libv8_snapshot.a',
}],
['OS=="mac"', {
+ 'clang%': 1,
'obj_dir%': '<(PRODUCT_DIR)/obj.target',
'v8_base': '<(PRODUCT_DIR)/libv8_snapshot.a',
}],

View file

@ -61,6 +61,10 @@ def main(target_file, target_cpu):
v['node_module_version'] = int(args['node_module_version'])
# Used by certain versions of node-gyp.
v['build_v8_with_gn'] = 'false'
# Enable clang conditionally based on target platform
# in common.gypi
if 'clang' in v:
del v['clang']
with open(target_file, 'w+', encoding='utf-8') as file_out:
file_out.write(pprint.pformat(config, indent=2))