@@ -422,26 +422,19 @@ target_compile_options(${PROJECT_NAME} PRIVATE ${FFTW3F_CFLAGS_OTHER})
422422
423423# Link libraries with MinGW-specific handling
424424if (WIN32 AND CMAKE_CXX_COMPILER_ID MATCHES "GNU" )
425- # Windows MinGW: 从 node.exe 生成导入库
426- # MinGW 的 ld 不能使用 MSVC 的 .lib 文件
427-
428- find_program (NODE_EXECUTABLE node REQUIRED )
429- set (MINGW_NODE_LIB "${CMAKE_BINARY_DIR} /libnode.a" )
430-
431- # 使用 gendef 和 dlltool 从 node.exe 生成 MinGW 导入库
432- # 注意: gendef的输出重定向需要使用 sh -c
433- add_custom_command (
434- OUTPUT "${MINGW_NODE_LIB} "
435- COMMAND sh -c "gendef - '${NODE_EXECUTABLE} ' > '${CMAKE_BINARY_DIR} /node.def'"
436- COMMAND dlltool -d "${CMAKE_BINARY_DIR} /node.def" -l "${MINGW_NODE_LIB} "
437- COMMENT "Generating MinGW import library from node.exe"
438- )
439-
440- add_custom_target (generate_node_lib DEPENDS "${MINGW_NODE_LIB} " )
441- add_dependencies (${PROJECT_NAME} generate_node_lib )
442-
443- target_link_libraries (${PROJECT_NAME} PRIVATE "${MINGW_NODE_LIB} " )
444- message (STATUS "MinGW build: Will generate import library from node.exe" )
425+ # Windows MinGW: 复制cmake-js提供的库文件
426+ # 注意: 即使是MSVC的.lib文件,MinGW也能使用(已在1.1.6版本验证)
427+ set (LOCAL_NODE_LIB "${CMAKE_BINARY_DIR} /node.lib" )
428+
429+ # 检查并复制 Node.js 库文件
430+ if (EXISTS "${CMAKE_JS_LIB} " )
431+ message (STATUS "Copying Node.js library from: ${CMAKE_JS_LIB} " )
432+ configure_file ("${CMAKE_JS_LIB} " "${LOCAL_NODE_LIB} " COPYONLY )
433+ target_link_libraries (${PROJECT_NAME} PRIVATE "${LOCAL_NODE_LIB} " )
434+ message (STATUS "MinGW build: Using copied Node.js library: ${LOCAL_NODE_LIB} " )
435+ else ()
436+ message (STATUS "MinGW build: CMAKE_JS_LIB not found, skipping Node.js library linking" )
437+ endif ()
445438else ()
446439 # Other platforms: link CMAKE_JS_LIB if available
447440 if (CMAKE_JS_LIB)
0 commit comments