@@ -17,16 +17,28 @@ const args = require('minimist')(process.argv.slice(2), {
17
17
string : [ 'only' ]
18
18
} ) ;
19
19
20
+ function getSDKRoot ( ) {
21
+ if ( process . env . SDKROOT ) return process . env . SDKROOT ;
22
+ const output = cp . execFileSync ( 'xcrun' , [ '--sdk' , 'macosx' , '--show-sdk-path' ] ) ;
23
+ return output . toString ( ) . trim ( ) ;
24
+ }
25
+
20
26
async function main ( ) {
21
27
const nodeDir = path . resolve ( BASE , `out/${ utils . getOutDir ( { shouldLog : true } ) } /gen/node_headers` ) ;
22
28
const env = Object . assign ( { } , process . env , {
23
29
npm_config_nodedir : nodeDir ,
24
30
npm_config_msvs_version : '2019' ,
25
31
npm_config_arch : process . env . NPM_CONFIG_ARCH
26
32
} ) ;
27
- if ( process . platform === 'linux' ) {
28
- env . CC = `"${ path . resolve ( __dirname , '..' , '../third_party/llvm-build/Release+Asserts/bin/clang' ) } "` ;
29
- env . CXX = `"${ path . resolve ( __dirname , '..' , '../third_party/llvm-build/Release+Asserts/bin/clang++' ) } "` ;
33
+ const clangArgs = [ ] ;
34
+ if ( process . platform === 'darwin' ) {
35
+ clangArgs . push ( '-isysroot' , getSDKRoot ( ) ) ;
36
+ }
37
+ clangArgs . push ( '-std=c++14' , '-stdlib=libc++' ) ;
38
+
39
+ if ( process . platform !== 'win32' ) {
40
+ env . CC = `"${ path . resolve ( __dirname , '..' , '../third_party/llvm-build/Release+Asserts/bin/clang' ) } " ${ clangArgs . join ( ' ' ) } ` ;
41
+ env . CXX = `"${ path . resolve ( __dirname , '..' , '../third_party/llvm-build/Release+Asserts/bin/clang++' ) } " ${ clangArgs . join ( ' ' ) } ` ;
30
42
}
31
43
const { status : buildStatus } = cp . spawnSync ( NPX_CMD , [ 'node-gyp' , 'rebuild' , '--directory' , 'test' , '-j' , 'max' ] , {
32
44
env,
0 commit comments