Skip to content

Commit 7d5200a

Browse files
committed
Improve support and verbosity for NodeJS dependency.
1 parent 230c7bf commit 7d5200a

File tree

8 files changed

+25
-15
lines changed

8 files changed

+25
-15
lines changed

cmake/FindNodeJS.cmake

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ if(NOT NODEJS_INCLUDE_DIR OR NOT NODEJS_V8_INCLUDE_DIR OR NOT NODEJS_UV_INCLUDE_
230230
# Download node if needed
231231
if(NOT EXISTS "${NODEJS_DOWNLOAD_FILE}")
232232
message(STATUS "Downloading NodeJS headers")
233-
file(DOWNLOAD ${NODEJS_DOWNLOAD_URL} ${NODEJS_DOWNLOAD_FILE})
233+
file(DOWNLOAD ${NODEJS_DOWNLOAD_URL} ${NODEJS_DOWNLOAD_FILE} SHOW_PROGRESS)
234234
endif()
235235

236236
# Decompress node if needed
@@ -325,18 +325,24 @@ if(NODEJS_MODULE_VERSION AND NOT NODEJS_BUILD_FROM_SOURCE)
325325
set(NODEJS_LIBRARY_PATH "/usr/local/lib")
326326
endif()
327327

328-
set(NODEJS_SYSTEM_LIBRARY_PATH "/lib/x86_64-linux-gnu") # TODO: Add others
328+
set(NODEJS_SYSTEM_LIBRARY_PATH "/lib/x86_64-linux-gnu" "/usr/lib/x86_64-linux-gnu") # TODO: Add others
329329

330330
# Find library
331331
find_library(NODEJS_LIBRARY
332332
NAMES ${NODEJS_LIBRARY_NAMES}
333333
PATHS ${NODEJS_COMPILE_PATH} ${NODEJS_LIBRARY_PATH} ${NODEJS_SYSTEM_LIBRARY_PATH}
334334
DOC "NodeJS JavaScript Runtime Library"
335335
)
336+
337+
if(NODEJS_LIBRARY)
338+
message(STATUS "NodeJS Library Found")
339+
endif()
336340
endif()
337341

338342
# Install NodeJS library in case it is not distributed
339343
if(NOT NODEJS_LIBRARY)
344+
message(STATUS "NodeJS library not found, trying to build it from source")
345+
340346
# NodeJS download and output path (workaround to compile node as a shared library)
341347
set(NODEJS_DOWNLOAD_URL "https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}.tar.gz")
342348
set(NODEJS_BASE_PATH "${CMAKE_CURRENT_BINARY_DIR}/sources")
@@ -346,7 +352,7 @@ if(NOT NODEJS_LIBRARY)
346352
# Download node if needed
347353
if(NOT EXISTS "${NODEJS_DOWNLOAD_FILE}")
348354
message(STATUS "Downloading NodeJS distribution v${NODEJS_VERSION}")
349-
file(DOWNLOAD ${NODEJS_DOWNLOAD_URL} ${NODEJS_DOWNLOAD_FILE})
355+
file(DOWNLOAD ${NODEJS_DOWNLOAD_URL} ${NODEJS_DOWNLOAD_FILE} SHOW_PROGRESS)
350356
endif()
351357

352358
# Decompress node if needed
@@ -391,7 +397,7 @@ if(NOT NODEJS_LIBRARY)
391397
message(STATUS "Install NodeJS shared library")
392398

393399
# TODO: Implement install command
394-
#execute_process(COMMAND msiexec /a "node-v${NODEJS_VERSION}-${NODEJS_COMPILE_ARCH}.msi" WORKING_DIRECTORY "${NODEJS_COMPILE_PATH}" OUTPUT_QUIET)
400+
#execute_process(COMMAND msiexec /a "node-v${NODEJS_VERSION}-${NODEJS_COMPILE_ARCH}.msi" WORKING_DIRECTORY "${NODEJS_COMPILE_PATH}")
395401
endif()
396402

397403
# TODO: Delete this workaround after implementing the install command
@@ -421,14 +427,14 @@ if(NOT NODEJS_LIBRARY)
421427
ProcessorCount(N)
422428

423429
if(NOT N EQUAL 0)
424-
execute_process(COMMAND sh -c "alias python=`which python2.7`; make -j${N} -C out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1" WORKING_DIRECTORY "${NODEJS_OUTPUT_PATH}" OUTPUT_QUIET)
430+
execute_process(COMMAND sh -c "alias python=`which python2.7`; make -j${N} -C out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1" WORKING_DIRECTORY "${NODEJS_OUTPUT_PATH}")
425431
else()
426-
execute_process(COMMAND sh -c "alias python=`which python2.7`; make -C out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1" WORKING_DIRECTORY "${NODEJS_OUTPUT_PATH}" OUTPUT_QUIET)
432+
execute_process(COMMAND sh -c "alias python=`which python2.7`; make -C out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1" WORKING_DIRECTORY "${NODEJS_OUTPUT_PATH}")
427433
endif()
428434

429435
message(STATUS "Install NodeJS shared library")
430436

431-
execute_process(COMMAND sh -c "make install" WORKING_DIRECTORY "${NODEJS_OUTPUT_PATH}" OUTPUT_QUIET)
437+
execute_process(COMMAND sh -c "make install" WORKING_DIRECTORY "${NODEJS_OUTPUT_PATH}")
432438
endif()
433439
endif()
434440

@@ -448,6 +454,10 @@ if(NOT NODEJS_LIBRARY)
448454
DOC "NodeJS JavaScript Runtime Library"
449455
)
450456
endif()
457+
458+
if(NOT NODEJS_LIBRARY)
459+
message(SEND_ERROR "NodeJS library not found and it could not be built from source")
460+
endif()
451461
endif()
452462

453463
set(NODEJS_INCLUDE_DIRS "${NODEJS_INCLUDE_DIR}")

source/loaders/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ option(OPTION_BUILD_LOADERS_JSM "Build JavaScript SpiderMonkey 4.8 loader plugin
3636
option(OPTION_BUILD_LOADERS_JS "Build JavaScript V8 5.1+ loader plugin." OFF)
3737
option(OPTION_BUILD_LOADERS_LUA "Build LuaJIT2 v2.1 (OpenResty fork) loader plugin." OFF)
3838
option(OPTION_BUILD_LOADERS_MOCK "Build mock loader loader plugin." ON)
39-
option(OPTION_BUILD_LOADERS_NODE "Build NodeJS 10.22.0 JavaScript Runtime loader plugin." OFF)
39+
option(OPTION_BUILD_LOADERS_NODE "Build NodeJS 10.23.1 JavaScript Runtime loader plugin." OFF)
4040
option(OPTION_BUILD_LOADERS_PY "Build Python 3.7 C API loader plugin." OFF)
4141
option(OPTION_BUILD_LOADERS_RB "Build Ruby 2.5 C API loader plugin." OFF)
4242
option(OPTION_BUILD_LOADERS_RPC "Build cURL Remote Procedure Call loader plugin." OFF)
@@ -55,7 +55,7 @@ add_subdirectory(jsm_loader) # Mozilla's SpiderMonkey 4.8 JavaScript Engine
5555
add_subdirectory(js_loader) # Google's V8 5.1 JavaScript Engine
5656
add_subdirectory(lua_loader) # LuaJIT2 v2.1 (OpenResty fork) Runtime
5757
add_subdirectory(mock_loader) # Mock loader plugin without dependencies (core testing)
58-
add_subdirectory(node_loader) # NodeJS 10.22.0 JavaScript Runtime
58+
add_subdirectory(node_loader) # NodeJS 10.23.1 JavaScript Runtime
5959
add_subdirectory(py_loader) # Python 3.7 C API
6060
add_subdirectory(rb_loader) # Ruby 2.5 C API
6161
add_subdirectory(rpc_loader) # cURL Remote Procedure Call

source/loaders/node_loader/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ endif()
77
# External dependencies
88
#
99

10-
find_package(NodeJS 10.22.0)
10+
find_package(NodeJS 10.23.1)
1111

1212
if(NOT NODEJS_FOUND)
1313
message(STATUS "NodeJS libraries not found")

source/loaders/ts_loader/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ endif()
77
# External dependencies
88
#
99

10-
find_package(NodeJS 10.22.0)
10+
find_package(NodeJS 10.23.1)
1111

1212
if(NOT NODEJS_FOUND)
1313
message(STATUS "NodeJS libraries not found")

source/ports/node_port/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ return()
130130
# Detect exec with MetaCall CLI when this is being run with node
131131
set(NODEJS_EXECUTABLE_ONLY ON)
132132

133-
find_package(NodeJS 10.22.0)
133+
find_package(NodeJS 10.23.1)
134134

135135
if(NOT NODEJS_FOUND)
136136
message(STATUS "NodeJS libraries not found")

source/scripts/typescript/templating/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
set(NODEJS_EXECUTABLE_ONLY ON)
66

7-
find_package(NodeJS 10.22.0)
7+
find_package(NodeJS 10.23.1)
88

99
if(NOT NODEJS_FOUND)
1010
message(STATUS "NodeJS executable not found")

source/tests/metacall_rpc_test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ add_dependencies(${target}
133133

134134
set(NODEJS_EXECUTABLE_ONLY ON)
135135

136-
find_package(NodeJS 10.22.0)
136+
find_package(NodeJS 10.23.1)
137137

138138
if(NOT NODEJS_FOUND)
139139
message(STATUS "NodeJS executable not found, skipping RPC loader test")

source/tests/metacall_typescript_tsx_test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ endif()
1010

1111
set(NODEJS_EXECUTABLE_ONLY ON)
1212

13-
find_package(NodeJS 10.22.0)
13+
find_package(NodeJS 10.23.1)
1414

1515
if(NOT NODEJS_FOUND)
1616
message(STATUS "NodeJS executable not found")

0 commit comments

Comments
 (0)