Skip to content

Commit e9f38a3

Browse files
committed
build: enable building with shared uvwasi lib
Fixes: #35339
1 parent 6eec858 commit e9f38a3

File tree

2 files changed

+121
-12
lines changed

2 files changed

+121
-12
lines changed

configure.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,27 @@
355355
dest='shared_openssl_libpath',
356356
help='a directory to search for the shared OpenSSL DLLs')
357357

358+
shared_optgroup.add_argument('--shared-uvwasi',
359+
action='store_true',
360+
dest='shared_uvwasi',
361+
help='linked to a shared uvwasi DLL instead of static linking')
362+
363+
shared_optgroup.add_argument('--shared-uvwasi-includes',
364+
action='store',
365+
dest='shared_uvwasi_includes',
366+
help='directory containing uvwasi header files')
367+
368+
shared_optgroup.add_argument('--shared-uvwasi-libname',
369+
action='store',
370+
dest='shared_uvwasi_libname',
371+
default='uvwasi',
372+
help='alternative lib name to link to [default: %default]')
373+
374+
shared_optgroup.add_argument('--shared-uvwasi-libpath',
375+
action='store',
376+
dest='shared_uvwasi_libpath',
377+
help='a directory to search for the shared uvwasi DLL')
378+
358379
shared_optgroup.add_argument('--shared-zlib',
359380
action='store_true',
360381
dest='shared_zlib',
@@ -1894,6 +1915,7 @@ def make_bin_override():
18941915
configure_library('brotli', output, pkgname=['libbrotlidec', 'libbrotlienc'])
18951916
configure_library('cares', output, pkgname='libcares')
18961917
configure_library('nghttp2', output, pkgname='libnghttp2')
1918+
configure_library('uvwasi', output, pkgname='libuvwasi')
18971919
configure_v8(output)
18981920
configure_openssl(output)
18991921
configure_intl(output)

node.gyp

Lines changed: 99 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
'node_shared_http_parser%': 'false',
2121
'node_shared_cares%': 'false',
2222
'node_shared_libuv%': 'false',
23+
'node_shared_uvwasi%': 'false',
2324
'node_shared_nghttp2%': 'false',
2425
'node_shared_ngtcp2%': 'false',
2526
'node_shared_nghttp3%': 'false',
@@ -390,7 +391,14 @@
390391

391392
'dependencies': [
392393
'deps/histogram/histogram.gyp:histogram',
393-
'deps/uvwasi/uvwasi.gyp:uvwasi',
394+
],
395+
396+
'conditions': [
397+
[ 'node_shared_uvwasi=="false"', {
398+
'dependencies': [
399+
'deps/uvwasi/uvwasi.gyp:uvwasi'
400+
],
401+
}],
394402
],
395403

396404
'msvs_settings': {
@@ -573,7 +581,14 @@
573581
],
574582
'dependencies': [
575583
'deps/histogram/histogram.gyp:histogram',
576-
'deps/uvwasi/uvwasi.gyp:uvwasi',
584+
],
585+
586+
'conditions': [
587+
[ 'node_shared_uvwasi=="false"', {
588+
'dependencies': [
589+
'deps/uvwasi/uvwasi.gyp:uvwasi'
590+
],
591+
}],
577592
],
578593

579594
'sources': [
@@ -1267,11 +1282,19 @@
12671282
'dependencies': [
12681283
'<(node_lib_target_name)',
12691284
'deps/histogram/histogram.gyp:histogram',
1270-
'deps/uvwasi/uvwasi.gyp:uvwasi',
12711285
'node_dtrace_header',
12721286
'node_dtrace_ustack',
12731287
'node_dtrace_provider',
12741288
],
1289+
1290+
'conditions': [
1291+
[ 'node_shared_uvwasi=="false"', {
1292+
'dependencies': [
1293+
'deps/uvwasi/uvwasi.gyp:uvwasi'
1294+
],
1295+
}],
1296+
],
1297+
12751298
'includes': [
12761299
'node.gypi'
12771300
],
@@ -1281,9 +1304,17 @@
12811304
'deps/v8/include',
12821305
'deps/cares/include',
12831306
'deps/uv/include',
1284-
'deps/uvwasi/include',
12851307
'test/cctest',
12861308
],
1309+
1310+
'conditions': [
1311+
[ 'node_shared_uvwasi=="false"', {
1312+
'include_dirs': [
1313+
'deps/uvwasi/include',
1314+
],
1315+
}],
1316+
],
1317+
12871318
'defines': [
12881319
'NODE_ARCH="<(target_arch)"',
12891320
'NODE_PLATFORM="<(OS)"',
@@ -1311,12 +1342,19 @@
13111342
'dependencies': [
13121343
'<(node_lib_target_name)',
13131344
'deps/histogram/histogram.gyp:histogram',
1314-
'deps/uvwasi/uvwasi.gyp:uvwasi',
13151345
'node_dtrace_header',
13161346
'node_dtrace_ustack',
13171347
'node_dtrace_provider',
13181348
],
13191349

1350+
'conditions': [
1351+
[ 'node_shared_uvwasi=="false"', {
1352+
'dependencies': [
1353+
'deps/uvwasi/uvwasi.gyp:uvwasi'
1354+
],
1355+
}],
1356+
],
1357+
13201358
'includes': [
13211359
'node.gypi'
13221360
],
@@ -1327,10 +1365,17 @@
13271365
'deps/v8/include',
13281366
'deps/cares/include',
13291367
'deps/uv/include',
1330-
'deps/uvwasi/include',
13311368
'test/cctest',
13321369
],
13331370

1371+
'conditions': [
1372+
[ 'node_shared_uvwasi=="false"', {
1373+
'include_dirs': [
1374+
'deps/uvwasi/include',
1375+
],
1376+
}],
1377+
],
1378+
13341379
'defines': [
13351380
'NODE_ARCH="<(target_arch)"',
13361381
'NODE_PLATFORM="<(OS)"',
@@ -1419,12 +1464,19 @@
14191464
'dependencies': [
14201465
'<(node_lib_target_name)',
14211466
'deps/histogram/histogram.gyp:histogram',
1422-
'deps/uvwasi/uvwasi.gyp:uvwasi',
14231467
'node_dtrace_header',
14241468
'node_dtrace_ustack',
14251469
'node_dtrace_provider',
14261470
],
14271471

1472+
'conditions': [
1473+
[ 'node_shared_uvwasi=="false"', {
1474+
'dependencies': [
1475+
'deps/uvwasi/uvwasi.gyp:uvwasi'
1476+
],
1477+
}],
1478+
],
1479+
14281480
'includes': [
14291481
'node.gypi'
14301482
],
@@ -1435,10 +1487,17 @@
14351487
'deps/v8/include',
14361488
'deps/cares/include',
14371489
'deps/uv/include',
1438-
'deps/uvwasi/include',
14391490
'test/embedding',
14401491
],
14411492

1493+
'conditions': [
1494+
[ 'node_shared_uvwasi=="false"', {
1495+
'include_dirs': [
1496+
'deps/uvwasi/include',
1497+
],
1498+
}],
1499+
],
1500+
14421501
'sources': [
14431502
'src/node_snapshot_stub.cc',
14441503
'src/node_code_cache_stub.cc',
@@ -1481,7 +1540,14 @@
14811540
'dependencies': [
14821541
'<(node_lib_target_name)',
14831542
'deps/histogram/histogram.gyp:histogram',
1484-
'deps/uvwasi/uvwasi.gyp:uvwasi',
1543+
],
1544+
1545+
'conditions': [
1546+
[ 'node_shared_uvwasi=="false"', {
1547+
'dependencies': [
1548+
'deps/uvwasi/uvwasi.gyp:uvwasi'
1549+
],
1550+
}],
14851551
],
14861552

14871553
'includes': [
@@ -1494,7 +1560,14 @@
14941560
'deps/v8/include',
14951561
'deps/cares/include',
14961562
'deps/uv/include',
1497-
'deps/uvwasi/include',
1563+
],
1564+
1565+
'conditions': [
1566+
[ 'node_shared_uvwasi=="false"', {
1567+
'include_dirs': [
1568+
'deps/uvwasi/include',
1569+
],
1570+
}],
14981571
],
14991572

15001573
'defines': [
@@ -1541,7 +1614,14 @@
15411614
'dependencies': [
15421615
'<(node_lib_target_name)',
15431616
'deps/histogram/histogram.gyp:histogram',
1544-
'deps/uvwasi/uvwasi.gyp:uvwasi',
1617+
],
1618+
1619+
'conditions': [
1620+
[ 'node_shared_uvwasi=="false"', {
1621+
'dependencies': [
1622+
'deps/uvwasi/uvwasi.gyp:uvwasi'
1623+
],
1624+
}],
15451625
],
15461626

15471627
'includes': [
@@ -1554,7 +1634,14 @@
15541634
'deps/v8/include',
15551635
'deps/cares/include',
15561636
'deps/uv/include',
1557-
'deps/uvwasi/include',
1637+
],
1638+
1639+
'conditions': [
1640+
[ 'node_shared_uvwasi=="false"', {
1641+
'include_dirs': [
1642+
'deps/uvwasi/include',
1643+
],
1644+
}],
15581645
],
15591646

15601647
'defines': [ 'NODE_WANT_INTERNALS=1' ],

0 commit comments

Comments
 (0)