@@ -512,6 +512,17 @@ if(NOT NodeJS_LIBRARY)
512512 set (ICU_URL "https://github.com/unicode-org/icu/releases/download/release-64-2/icu4c-64_2-src.zip" )
513513 endif ()
514514
515+ # Workaround for configure bug: ERROR: Could not load deps/icu/source/common/unicode/uvernum.h - is ICU installed?
516+ if ("${NodeJS_VERSION_MAJOR} " GREATER_EQUAL "18" )
517+ set (NodeJS_ICU_DOWNLOAD_FILE "${NodeJS_BASE_PATH} /icu4c-src.zip" )
518+ file (DOWNLOAD ${ICU_URL} "${NodeJS_ICU_DOWNLOAD_FILE} " )
519+ execute_process (
520+ WORKING_DIRECTORY "${NodeJS_OUTPUT_PATH} /deps"
521+ COMMAND ${CMAKE_COMMAND} -E tar xzf "${NodeJS_ICU_DOWNLOAD_FILE} "
522+ )
523+ set (ICU_URL "${NodeJS_OUTPUT_PATH} /deps/icu" )
524+ endif ()
525+
515526 # Workaround for OpenSSL bug: https://github.com/metacall/core/issues/223
516527 if (APPLE )
517528 set (ICU_ENV_VAR ${CMAKE_COMMAND} -E env PYTHONHTTPSVERIFY=0)
@@ -538,7 +549,10 @@ if(NOT NodeJS_LIBRARY)
538549 set (BUILD_DEBUG)
539550 endif ()
540551
541- execute_process (COMMAND ${ICU_ENV_VAR} sh -c "./configure ${NodeJS_PREFIX} ${BUILD_ICU_FLAGS} --shared ${BUILD_DEBUG} " WORKING_DIRECTORY "${NodeJS_OUTPUT_PATH} " )
552+ execute_process (
553+ WORKING_DIRECTORY "${NodeJS_OUTPUT_PATH} "
554+ COMMAND ${ICU_ENV_VAR} ./configure ${NodeJS_PREFIX} ${BUILD_ICU_FLAGS} --shared ${BUILD_DEBUG}
555+ )
542556
543557 message (STATUS "Build NodeJS shared library" )
544558
@@ -550,9 +564,15 @@ if(NOT NodeJS_LIBRARY)
550564 ProcessorCount(N)
551565
552566 if (N GREATER 1)
553- execute_process (COMMAND sh -c "make -j${N} -C ${NodeJS_OUTPUT_PATH} /out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1" WORKING_DIRECTORY "${NodeJS_OUTPUT_PATH} " )
567+ execute_process (
568+ WORKING_DIRECTORY "${NodeJS_OUTPUT_PATH} "
569+ COMMAND make -j${N} -C ${NodeJS_OUTPUT_PATH} /out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1
570+ )
554571 else ()
555- execute_process (COMMAND sh -c "make -C ${NodeJS_OUTPUT_PATH} /out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1" WORKING_DIRECTORY "${NodeJS_OUTPUT_PATH} " )
572+ execute_process (
573+ WORKING_DIRECTORY "${NodeJS_OUTPUT_PATH} "
574+ COMMAND make -C ${NodeJS_OUTPUT_PATH} /out BUILDTYPE=${CMAKE_BUILD_TYPE} V=1
575+ )
556576 endif ()
557577 endif ()
558578 endif ()
0 commit comments