Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[node-api] Add new port #26768

Merged
merged 112 commits into from
Jan 4, 2023
Merged
Show file tree
Hide file tree
Changes from 110 commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
811f0ae
port is building for x64-windows
Pospelove Sep 12, 2022
c28dd71
Add file endings
Pospelove Sep 12, 2022
76030c3
Reformat manifest file
Pospelove Sep 12, 2022
f947f41
Add versions
Pospelove Sep 12, 2022
f0e6be5
Remove comment
Pospelove Sep 13, 2022
447651b
Check host system instead of target
Pospelove Sep 13, 2022
5481746
fix user fs pollution & allow nodejs tool to have the same triplet as…
Pospelove Sep 13, 2022
c44572b
Merge branch 'node' of https://github.com/Pospelove/vcpkg into node
Pospelove Sep 13, 2022
93d9378
x86-windows now builds
Pospelove Sep 13, 2022
09af147
Support find_package (TARGET_SOURCES still todo)
Pospelove Sep 13, 2022
ad87fc8
add win_delay_hook.cc
Pospelove Sep 13, 2022
6375822
license for nodejs
Pospelove Sep 13, 2022
4490840
reformat
Pospelove Sep 13, 2022
6e99968
reformat
Pospelove Sep 13, 2022
a1aa22f
Update node-api.json
Pospelove Sep 13, 2022
d7a1102
nodejs port ver increment
Pospelove Sep 13, 2022
9a04e57
fix versions
Pospelove Sep 13, 2022
9c1bcf1
fix versions
Pospelove Sep 13, 2022
ea15357
Fix find_library/find_path review comments
Pospelove Sep 14, 2022
ff55505
node-api-config.cmake => unofficial-node-api-config.cmake
Pospelove Sep 14, 2022
4c62837
remove vcpkg_execute_npm_command.cmake
Pospelove Sep 14, 2022
9f8fc09
update git-tree in node-api.json
Pospelove Sep 14, 2022
21faba4
fix node triplet
Pospelove Sep 14, 2022
1f30741
remove obvious comment
Pospelove Sep 14, 2022
bcf4f63
Update node-api.json
Pospelove Sep 14, 2022
0bd2bc9
Revert everything related to vcpkg-tool-nodejs
Pospelove Sep 14, 2022
14fdc0e
fix port-version of vcpkg-tool-nodejs in baseline.json
Pospelove Sep 14, 2022
8406094
Update node-api.json
Pospelove Sep 14, 2022
438e2f1
ban arm
Pospelove Sep 14, 2022
d52bf52
fix EOF
Pospelove Sep 14, 2022
098ee3e
Update node-api.json
Pospelove Sep 14, 2022
68e52f6
Tweaks for Linux failure debugging
Pospelove Sep 14, 2022
4ebd3cc
Update node-api.json
Pospelove Sep 14, 2022
f4c4e35
Reformat with vscode cmake formatter
Pospelove Sep 14, 2022
fea7979
Even more debug logging
Pospelove Sep 14, 2022
ae47477
add <node_root>/bin to search
Pospelove Sep 14, 2022
d4ad5c2
Update node-api.json
Pospelove Sep 14, 2022
4621ee5
Add debugging for 2-nd error encountered
Pospelove Sep 14, 2022
35411d4
update ver
Pospelove Sep 14, 2022
7a5b2a9
update
Pospelove Sep 14, 2022
aa8ebdb
update ver
Pospelove Sep 14, 2022
e8cd2f7
add nodejs tool to path
Pospelove Sep 14, 2022
ab449e4
update ver
Pospelove Sep 14, 2022
3f82d3b
use prefix npm option
Pospelove Sep 14, 2022
d1bce81
add version
Pospelove Sep 14, 2022
ea96629
move things to node tool dir (temporary)
Pospelove Sep 16, 2022
5d6d56e
add ver
Pospelove Sep 16, 2022
07426e2
Add CMAKE_JS_LIB emptyness check
Pospelove Sep 16, 2022
9129531
add version
Pospelove Sep 16, 2022
7aab218
separate node root ad node bin directories
Pospelove Sep 16, 2022
57667a2
update node-api-config.cmake
Pospelove Sep 16, 2022
587c776
add ver
Pospelove Sep 16, 2022
80dda78
typo-fi
Pospelove Sep 16, 2022
09bc053
update version
Pospelove Sep 16, 2022
50d43a1
remove debug logging
Pospelove Sep 16, 2022
a5dd5db
update ver
Pospelove Sep 16, 2022
07bf79d
do not use system cmake
Pospelove Sep 16, 2022
6729371
add ver
Pospelove Sep 16, 2022
7efeacf
rename vars
Pospelove Sep 29, 2022
c6e036b
Update ver
Pospelove Sep 29, 2022
b1ad786
Add comment
Pospelove Oct 22, 2022
32b040f
add-version
Pospelove Oct 22, 2022
b06a12b
Now downloads cmake-js from github, but deps aren't downloaded (wip)
Pospelove Oct 29, 2022
925c585
add version
Pospelove Oct 29, 2022
f4bbb5a
Seems to work except lodash (wip)
Pospelove Oct 29, 2022
a939ff8
add version
Pospelove Oct 29, 2022
93087e7
license null (wip)
Pospelove Oct 29, 2022
fd17b5e
license null -reformat- (wip)
Pospelove Oct 29, 2022
27c520f
add ver
Pospelove Oct 29, 2022
1ad60ee
Add todo (wip)
Pospelove Oct 29, 2022
f4ab0e7
add ver
Pospelove Oct 29, 2022
9d13430
install lodash, new error now related to yargs isn't being built (wip)
Pospelove Nov 3, 2022
4b4e1cc
add version (wip)
Pospelove Nov 3, 2022
0b524d0
fix (wip)
Pospelove Nov 3, 2022
f3cef15
add version (wip)
Pospelove Nov 3, 2022
2890c74
Cleanup, will try one thing (wip)
Pospelove Nov 5, 2022
1199c9a
no cmake-js ver, now install includes (wip)
Pospelove Nov 5, 2022
91ad975
⌛ closing temporary, I'll get back to this later ⌛. at least I know w…
Pospelove Nov 9, 2022
28982bb
test
Pospelove Dec 14, 2022
bc23ae0
baseline
Pospelove Dec 14, 2022
1d7493a
format
Pospelove Dec 14, 2022
381f4ec
fill with zeros
Pospelove Dec 14, 2022
d03d964
update supports
Pospelove Dec 14, 2022
b46eb83
correct url for win
Pospelove Dec 14, 2022
02f9a28
addver
Pospelove Dec 14, 2022
2485495
better handle arch and os
Pospelove Dec 14, 2022
f59acfc
ver
Pospelove Dec 14, 2022
cdeffd7
update
Pospelove Dec 14, 2022
36ee833
update
Pospelove Dec 14, 2022
264de93
add-todo
Pospelove Dec 14, 2022
45b3463
add win support
Pospelove Dec 14, 2022
6404ed9
ver
Pospelove Dec 14, 2022
f9a9eb8
qol
Pospelove Dec 14, 2022
80f6c8a
ver
Pospelove Dec 14, 2022
612a6f7
add-sha
Pospelove Dec 14, 2022
e132556
ver
Pospelove Dec 14, 2022
b196eaf
update
Pospelove Dec 14, 2022
ae111af
update
Pospelove Dec 14, 2022
95d92a8
fix-license
Pospelove Dec 14, 2022
8c636e8
fix-license
Pospelove Dec 14, 2022
4254414
add sha
Pospelove Dec 15, 2022
6356182
add sha
Pospelove Dec 15, 2022
e20339b
linux-arm64
Pospelove Dec 15, 2022
5dddee8
linux-arm64
Pospelove Dec 15, 2022
2ec1526
sha512 for arm
Pospelove Dec 15, 2022
bb86325
sha512 for arm
Pospelove Dec 15, 2022
8c1342d
remove imported sources
Pospelove Dec 15, 2022
c237547
remove imported sources
Pospelove Dec 15, 2022
9a1f774
apply suggestion
Pospelove Dec 15, 2022
285ce82
add ver
Pospelove Dec 15, 2022
744cce5
fix eof
Pospelove Dec 15, 2022
3bd1ce7
add ver
Pospelove Dec 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions ports/node-api/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION}

set(SHA512 0)

if(VCPKG_TARGET_IS_WINDOWS)
Pospelove marked this conversation as resolved.
Show resolved Hide resolved
set(SHA512 ee66d0c03d2e48046a42616abf7639a3983e7db24c04d8643b9141cb9209a50643e31873c5a4918853a4344e822d653480558510a4db9a2ab481396891d79917)
set(DIST_URL "https://nodejs.org/dist/v${VERSION}/node-v${VERSION}-headers.tar.gz")
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
vcpkg_download_distfile(
out_win_lib
URLS "https://nodejs.org/dist/v${VERSION}/win-x64/node.lib"
FILENAME "node.lib"
SHA512 95c4b053bf88f758b6124b4a576719901545485613767f1ab996bb019ea7bb0d303c511b357f830e5a14d463dd74c6b412f126103f21d12e31ca00c7de86d853
)
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
vcpkg_download_distfile(
out_win_lib
URLS "https://nodejs.org/dist/v${VERSION}/win-x86/node.lib"
FILENAME "node.lib"
SHA512 0baa54a7870088a3290f817f6362446d304e8710ee36f99075925d110bce5c1eac377aa5c4ed6cf30161f98f39032d848eeb8d459add57b1c6458b8c91c72073
)
endif()
elseif(VCPKG_TARGET_IS_OSX)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(SHA512 8eb1713afdce23b0e8408d81aa47b3ea0955de328105d666a57efef8955b286c707c107377cff36164d8455558829ab65567b9cbe5997085afc841d95128fcd5)
set(DIST_URL "https://nodejs.org/dist/v${VERSION}/node-v${VERSION}-darwin-arm64.tar.gz")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(SHA512 ffe7e878fd5e424b0ff0d2e7db5e9c02f283792df2f1a748bd6381226701bcd9f93ae48f88d295412afb10d1c924ca068f70aba9857236c8893a2b812eacf248)
set(DIST_URL "https://nodejs.org/dist/v${VERSION}/node-v${VERSION}-darwin-x64.tar.gz")
endif()
elseif(VCPKG_TARGET_IS_LINUX)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(SHA512 f137a0dba52ded9f2f6b304c5f41fd2c75ba069ee31cfb89811b14254552c0d5ba10890f7001e64e8a6fee277302cb0ba915e0a417c047577384ac495c4ff447)
set(DIST_URL "https://nodejs.org/dist/v${VERSION}/node-v${VERSION}-linux-x64.tar.gz")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(SHA512 a0b2f522b0ecdc4b642f3104fd2eb08b8dfa6dc2b116b5a331722b8c6d96b2b6d5df0e691ef2b56e0463e1f30d37c98c686c5d306e1aa8cd927b306c4eef0770)
set(DIST_URL "https://nodejs.org/dist/v${VERSION}/node-v${VERSION}-linux-arm64.tar.gz")
endif()
endif()

get_filename_component(DIST_FILENAME "${DIST_URL}" NAME)

if(out_win_lib)
# nodejs requires the same node.lib to be used for both debug and release builds
file(COPY "${out_win_lib}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
file(COPY "${out_win_lib}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
endif()

# download dist
vcpkg_download_distfile(
out_dist
URLS "${DIST_URL}"
FILENAME "${DIST_FILENAME}"
SHA512 "${SHA512}"
)

# extract dist
vcpkg_extract_source_archive(
OUT_SOURCE_PATH
ARCHIVE "${out_dist}"
)

# copy headers
set(suffix "include/node")
set(source_path "${OUT_SOURCE_PATH}/${suffix}")
file(COPY "${source_path}" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h")

# we do not take the license from the dist file because for windows it is not included as we download the headers only
set(license_url "https://raw.githubusercontent.com/nodejs/node/v18.12.1/LICENSE")
vcpkg_download_distfile(
out_license
URLS "${license_url}"
FILENAME "LICENSE"
SHA512 2d79b49a12178a078cf1246ef7589d127189914403cd6f4dfe277ced2b3ef441a6e6ee131f1c75f996d1c1528b7e1ae332e83c1dc44580b2b51a933ed0c50c48
)
file(INSTALL "${out_license}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

# copy ./unofficial-node-api-config.cmake to ${CURRENT_PACKAGES_DIR}/share/node-api
file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-node-api-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}")
23 changes: 23 additions & 0 deletions ports/node-api/unofficial-node-api-config.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
if(WIN32)
add_library(unofficial::node-api::node-api UNKNOWN IMPORTED)
else()
add_library(unofficial::node-api::node-api INTERFACE IMPORTED)
endif()

find_path(node-api_INCLUDE_DIR
NAMES node.h
PATHS "${CMAKE_CURRENT_LIST_DIR}/../../include/node"
NO_DEFAULT_PATH
REQUIRED)
set_target_properties(unofficial::node-api::node-api PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${node-api_INCLUDE_DIR}"
)

if(WIN32)
find_library(node-api_LIBRARY_RELEASE NAMES node PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH REQUIRED)
find_library(node-api_LIBRARY_DEBUG NAMES node PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH REQUIRED)
set_target_properties(unofficial::node-api::node-api PROPERTIES
IMPORTED_LOCATION_DEBUG "${node-api_LIBRARY_DEBUG}"
IMPORTED_LOCATION_RELEASE "${node-api_LIBRARY_RELEASE}"
)
endif()
18 changes: 18 additions & 0 deletions ports/node-api/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "node-api",
"version-semver": "18.12.1",
"description": "NodeJS API for writing modules in C++",
"homepage": "https://nodejs.org/api/addons.html",
"license": null,
"supports": "((windows & !arm) | linux | osx) & !uwp",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}
4 changes: 4 additions & 0 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -4976,6 +4976,10 @@
"baseline": "2021-02-21",
"port-version": 3
},
"node-api": {
"baseline": "18.12.1",
"port-version": 0
},
"nonius": {
"baseline": "2019-04-20",
"port-version": 2
Expand Down
9 changes: 9 additions & 0 deletions versions/n-/node-api.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "5d56043ca8c53c23d8e36cfd513467eb4811a868",
"version-semver": "18.12.1",
"port-version": 0
}
]
}