Skip to content

Commit

Permalink
build libuv as shared
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Marton authored and martonp96 committed Nov 4, 2024
1 parent 338776c commit 8b744ac
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 2 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
if: runner.os == 'Windows'
shell: bash
working-directory: ./node
run: ./vcbuild.bat release x64 dll no-cctest clang-cl
run: ./vcbuild.bat release x64 dll no-cctest

- name: Upload artifacts
uses: actions/upload-artifact@v4
Expand All @@ -83,7 +83,11 @@ jobs:
${{ github.workspace }}/libnode-Windows-x64/libnode22.dll
${{ github.workspace }}/libnode-Windows-x64/libnode22.lib
${{ github.workspace }}/libnode-Windows-x64/libnode22.pdb
${{ github.workspace }}/libnode-Windows-x64/libuv.dll
${{ github.workspace }}/libnode-Windows-x64/libuv.lib
${{ github.workspace }}/libnode-Windows-x64/libuv.pdb
${{ github.workspace }}/libnode-Linux-x64/libnode22.so
${{ github.workspace }}/libnode-Linux-x64/libuv.so
- name: Delete artifacts
uses: geekyeggo/delete-artifact@v5
Expand Down
2 changes: 1 addition & 1 deletion build-windows.bat
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ for %%f in (../patches/*.patch) do (
git apply --reject --whitespace=fix "../patches/%%f"
)

vcbuild.bat release x64 dll no-cctest clang-cl nonpm
vcbuild.bat release x64 dll no-cctest nonpm
70 changes: 70 additions & 0 deletions patches/libuv_shared.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
diff --git a/common.gypi b/common.gypi
index de83a56672..1f5c1781bb 100644
--- a/common.gypi
+++ b/common.gypi
@@ -23,7 +23,7 @@
'node_shared_openssl%': 'false',

'node_tag%': '',
- 'uv_library%': 'static_library',
+ 'uv_library%': 'shared_library',

'clang%': 0,
'error_on_warn%': 'false',
diff --git a/deps/uv/uv.gyp b/deps/uv/uv.gyp
index 6c86c3fa50..006596e86a 100644
--- a/deps/uv/uv.gyp
+++ b/deps/uv/uv.gyp
@@ -150,7 +150,21 @@
],
},

- 'targets': [
+ 'targets': [ {
+ 'target_name': 'libuv_postbuild',
+ 'type': 'none',
+ 'dependencies': ['libuv'],
+ 'conditions': [
+ ['OS=="win"', {
+ 'copies': [{
+ 'destination': '<(PRODUCT_DIR)/lib',
+ 'files': [
+ '<(PRODUCT_DIR)/libuv<(STATIC_LIB_SUFFIX)',
+ ],
+ }],
+ }],
+ ],
+ },
{
'target_name': 'libuv',
'toolsets': ['host', 'target'],
@@ -246,7 +260,7 @@
# This will cause gyp to set soname
# Must correspond with UV_VERSION_MAJOR
# in include/uv/version.h
- 'product_extension': 'so.1',
+ 'product_extension': 'so',
}],
],
}],
diff --git a/node.gyp b/node.gyp
index 11474953b1..a45c909938 100644
--- a/node.gyp
+++ b/node.gyp
@@ -19,7 +19,7 @@
'node_shared_zlib%': 'false',
'node_shared_http_parser%': 'false',
'node_shared_cares%': 'false',
- 'node_shared_libuv%': 'false',
+ 'node_shared_libuv%': 'true',
'node_shared_sqlite%': 'false',
'node_shared_uvwasi%': 'false',
'node_shared_nghttp2%': 'false',
@@ -863,6 +863,7 @@
'deps/ada/ada.gyp:ada',
'deps/nbytes/nbytes.gyp:nbytes',
'node_js2c#host',
+ 'deps/uv/uv.gyp:libuv_postbuild',
],

'sources': [

0 comments on commit 8b744ac

Please sign in to comment.