Skip to content

Commit c00bd1a

Browse files
committed
Fix Windows linker warning C4244 and warning C4244
1 parent dc33092 commit c00bd1a

1 file changed

Lines changed: 65 additions & 20 deletions

File tree

examples/addon.node/CMakeLists.txt

Lines changed: 65 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,39 +36,84 @@ target_include_directories(${TARGET} PRIVATE ${NODE_ADDON_API_DIR})
3636

3737
# Determine build directory (check both build and build-openvino)
3838
set(WHISPER_BUILD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../build")
39-
if(NOT EXISTS "${WHISPER_BUILD_DIR}/src/libwhisper.a")
40-
set(WHISPER_BUILD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino")
39+
40+
# Check for different library file patterns based on platform
41+
if(WIN32)
42+
# Windows uses .lib files and different directory structure
43+
if(NOT EXISTS "${WHISPER_BUILD_DIR}/src/Release/whisper.lib" AND NOT EXISTS "${WHISPER_BUILD_DIR}/src/Debug/whisper.lib")
44+
set(WHISPER_BUILD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino")
45+
endif()
46+
else()
47+
# Unix uses .a files
48+
if(NOT EXISTS "${WHISPER_BUILD_DIR}/src/libwhisper.a")
49+
set(WHISPER_BUILD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino")
50+
endif()
4151
endif()
4252

4353
message(STATUS "Using build directory: ${WHISPER_BUILD_DIR}")
4454

4555
# Debug: List available library files
46-
file(GLOB_RECURSE ALL_LIBS "${WHISPER_BUILD_DIR}/*.a")
56+
if(WIN32)
57+
file(GLOB_RECURSE ALL_LIBS "${WHISPER_BUILD_DIR}/*.lib")
58+
else()
59+
file(GLOB_RECURSE ALL_LIBS "${WHISPER_BUILD_DIR}/*.a")
60+
endif()
4761
message(STATUS "Found library files:")
4862
foreach(lib ${ALL_LIBS})
4963
message(STATUS " ${lib}")
5064
endforeach()
5165

5266
# Link against the built libraries from main build
53-
link_directories("${WHISPER_BUILD_DIR}/src")
54-
link_directories("${WHISPER_BUILD_DIR}/ggml/src")
55-
link_directories("${WHISPER_BUILD_DIR}/examples")
56-
57-
# Core libraries in correct linking order
58-
set(WHISPER_LIBS
59-
"${WHISPER_BUILD_DIR}/examples/libcommon.a"
60-
"${WHISPER_BUILD_DIR}/src/libwhisper.a"
61-
"${WHISPER_BUILD_DIR}/ggml/src/libggml.a"
62-
)
63-
64-
# Add ggml CPU backend libraries
65-
if(EXISTS "${WHISPER_BUILD_DIR}/ggml/src/libggml-cpu.a")
66-
list(APPEND WHISPER_LIBS "${WHISPER_BUILD_DIR}/ggml/src/libggml-cpu.a")
67+
if(WIN32)
68+
# Windows library directories
69+
link_directories("${WHISPER_BUILD_DIR}/src/Release")
70+
link_directories("${WHISPER_BUILD_DIR}/src/Debug")
71+
link_directories("${WHISPER_BUILD_DIR}/ggml/src/Release")
72+
link_directories("${WHISPER_BUILD_DIR}/ggml/src/Debug")
73+
link_directories("${WHISPER_BUILD_DIR}/examples/Release")
74+
link_directories("${WHISPER_BUILD_DIR}/examples/Debug")
75+
else()
76+
# Unix library directories
77+
link_directories("${WHISPER_BUILD_DIR}/src")
78+
link_directories("${WHISPER_BUILD_DIR}/ggml/src")
79+
link_directories("${WHISPER_BUILD_DIR}/examples")
6780
endif()
6881

69-
# Add ggml base library
70-
if(EXISTS "${WHISPER_BUILD_DIR}/ggml/src/libggml-base.a")
71-
list(APPEND WHISPER_LIBS "${WHISPER_BUILD_DIR}/ggml/src/libggml-base.a")
82+
# Core libraries in correct linking order
83+
if(WIN32)
84+
# Windows uses .lib files and may have Release/Debug subdirectories
85+
set(WHISPER_LIBS
86+
"${WHISPER_BUILD_DIR}/examples/Release/common.lib"
87+
"${WHISPER_BUILD_DIR}/src/Release/whisper.lib"
88+
"${WHISPER_BUILD_DIR}/ggml/src/Release/ggml.lib"
89+
)
90+
91+
# Add ggml CPU backend libraries (Windows)
92+
if(EXISTS "${WHISPER_BUILD_DIR}/ggml/src/Release/ggml-cpu.lib")
93+
list(APPEND WHISPER_LIBS "${WHISPER_BUILD_DIR}/ggml/src/Release/ggml-cpu.lib")
94+
endif()
95+
96+
# Add ggml base library (Windows)
97+
if(EXISTS "${WHISPER_BUILD_DIR}/ggml/src/Release/ggml-base.lib")
98+
list(APPEND WHISPER_LIBS "${WHISPER_BUILD_DIR}/ggml/src/Release/ggml-base.lib")
99+
endif()
100+
else()
101+
# Unix uses .a files
102+
set(WHISPER_LIBS
103+
"${WHISPER_BUILD_DIR}/examples/libcommon.a"
104+
"${WHISPER_BUILD_DIR}/src/libwhisper.a"
105+
"${WHISPER_BUILD_DIR}/ggml/src/libggml.a"
106+
)
107+
108+
# Add ggml CPU backend libraries (Unix)
109+
if(EXISTS "${WHISPER_BUILD_DIR}/ggml/src/libggml-cpu.a")
110+
list(APPEND WHISPER_LIBS "${WHISPER_BUILD_DIR}/ggml/src/libggml-cpu.a")
111+
endif()
112+
113+
# Add ggml base library (Unix)
114+
if(EXISTS "${WHISPER_BUILD_DIR}/ggml/src/libggml-base.a")
115+
list(APPEND WHISPER_LIBS "${WHISPER_BUILD_DIR}/ggml/src/libggml-base.a")
116+
endif()
72117
endif()
73118

74119
# Check if this is an OpenVINO build

0 commit comments

Comments
 (0)