Skip to content

Commit a14ede3

Browse files
committed
Fix Build Dir error.
1 parent 8532ff2 commit a14ede3

2 files changed

Lines changed: 51 additions & 8 deletions

File tree

.github/workflows/openvino-build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ jobs:
163163
--CDBUILD_SHARED_LIBS=OFF \
164164
--CDWHISPER_STATIC=ON \
165165
--CDOpenVINO_DIR="${{ env.OPENVINO_INSTALL_DIR }}/runtime/cmake" \
166-
--CDCMAKE_PREFIX_PATH="${{ env.OPENVINO_INSTALL_DIR }}/runtime/cmake"
166+
--CDCMAKE_PREFIX_PATH="${{ env.OPENVINO_INSTALL_DIR }}/runtime/cmake" \
167+
--CDCMAKE_MODULE_PATH="${{ github.workspace }}/cmake"
167168
168169
- name: Verify Addon Build
169170
run: |

examples/addon.node/CMakeLists.txt

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.10)
22
project(addon.node)
33

4-
set(TARGET addon.node)
4+
set(TARGET addon)
55

66
# Set include paths to main whisper.cpp cmake directory
77
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake")
@@ -34,17 +34,59 @@ string(REPLACE "\"" "" NODE_ADDON_API_DIR ${NODE_ADDON_API_DIR})
3434
target_include_directories(${TARGET} PRIVATE ${NODE_ADDON_API_DIR})
3535
#==================================================================
3636

37+
# Determine build directory (check both build and build-openvino)
38+
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")
41+
endif()
42+
43+
message(STATUS "Using build directory: ${WHISPER_BUILD_DIR}")
44+
45+
# Debug: List available library files
46+
file(GLOB_RECURSE ALL_LIBS "${WHISPER_BUILD_DIR}/*.a")
47+
message(STATUS "Found library files:")
48+
foreach(lib ${ALL_LIBS})
49+
message(STATUS " ${lib}")
50+
endforeach()
51+
3752
# Link against the built libraries from main build
38-
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino/src")
39-
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino/ggml/src")
40-
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino/examples")
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+
endif()
68+
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")
72+
endif()
73+
74+
# Check if this is an OpenVINO build
75+
if(WHISPER_OPENVINO)
76+
message(STATUS "Building addon with OpenVINO support")
77+
endif()
4178

4279
target_link_libraries(${TARGET} ${CMAKE_JS_LIB}
43-
"${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino/src/libwhisper.a"
44-
"${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino/ggml/src/libggml.a"
45-
"${CMAKE_CURRENT_SOURCE_DIR}/../../build-openvino/examples/libcommon.a"
80+
${WHISPER_LIBS}
4681
${CMAKE_THREAD_LIBS_INIT})
4782

83+
# Link OpenVINO runtime if building with OpenVINO support
84+
if(WHISPER_OPENVINO)
85+
find_package(OpenVINO REQUIRED)
86+
target_link_libraries(${TARGET} openvino::runtime)
87+
message(STATUS "Linking addon with OpenVINO runtime")
88+
endif()
89+
4890
if(MSVC AND CMAKE_JS_NODELIB_DEF AND CMAKE_JS_NODELIB_TARGET)
4991
# Generate node.lib
5092
execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})

0 commit comments

Comments
 (0)