Skip to content

Commit beaefbf

Browse files
committed
fix: Windows build
1 parent bd0e954 commit beaefbf

File tree

2 files changed

+45
-41
lines changed

2 files changed

+45
-41
lines changed

llama/CMakeLists.txt

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ endif()
2727
add_definitions(-DNAPI_VERSION=7)
2828
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
2929

30-
execute_process(COMMAND node -p "require('node-addon-api').include.slice(1,-1)"
31-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
32-
OUTPUT_VARIABLE NODE_ADDON_API_DIR
33-
OUTPUT_STRIP_TRAILING_WHITESPACE)
34-
3530
set(LLAMA_BUILD_COMMON ON)
3631

3732
if (MINGW)
@@ -53,53 +48,61 @@ else()
5348
set(CMAKE_BUILD_RPATH_USE_ORIGIN ON)
5449
endif()
5550

56-
include_directories(${NODE_ADDON_API_DIR} ${CMAKE_JS_INC})
51+
if (NOT DEFINED NLC_SINGLE_LLAMA_CPP_TARGET)
52+
execute_process(COMMAND node -p "require('node-addon-api').include.slice(1,-1)"
53+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
54+
OUTPUT_VARIABLE NODE_ADDON_API_DIR
55+
OUTPUT_STRIP_TRAILING_WHITESPACE)
56+
include_directories(${NODE_ADDON_API_DIR} ${CMAKE_JS_INC})
57+
endif()
5758

5859
add_subdirectory("llama.cpp")
5960
include_directories("llama.cpp")
6061
include_directories("./llama.cpp/common")
6162

62-
unset(GPU_INFO_HEADERS)
63-
unset(GPU_INFO_SOURCES)
64-
unset(GPU_INFO_EXTRA_LIBS)
65-
66-
if (GGML_VULKAN OR GGML_KOMPUTE)
67-
find_package(Vulkan)
68-
if (Vulkan_FOUND)
69-
if (GGML_VULKAN)
70-
message(STATUS "Using Vulkan for GPU info")
71-
elseif (GGML_KOMPUTE)
72-
message(STATUS "Using Vulkan for GPU info because Kompute is enabled")
73-
endif()
63+
if (NOT DEFINED NLC_SINGLE_LLAMA_CPP_TARGET)
64+
unset(GPU_INFO_HEADERS)
65+
unset(GPU_INFO_SOURCES)
66+
unset(GPU_INFO_EXTRA_LIBS)
7467

75-
list(APPEND GPU_INFO_HEADERS gpuInfo/vulkan-gpu-info.h)
76-
list(APPEND GPU_INFO_SOURCES gpuInfo/vulkan-gpu-info.cpp)
68+
if (GGML_VULKAN OR GGML_KOMPUTE)
69+
find_package(Vulkan)
70+
if (Vulkan_FOUND)
71+
if (GGML_VULKAN)
72+
message(STATUS "Using Vulkan for GPU info")
73+
elseif (GGML_KOMPUTE)
74+
message(STATUS "Using Vulkan for GPU info because Kompute is enabled")
75+
endif()
7776

78-
add_compile_definitions(GPU_INFO_USE_VULKAN)
77+
list(APPEND GPU_INFO_HEADERS gpuInfo/vulkan-gpu-info.h)
78+
list(APPEND GPU_INFO_SOURCES gpuInfo/vulkan-gpu-info.cpp)
7979

80-
list(APPEND GPU_INFO_EXTRA_LIBS Vulkan::Vulkan)
81-
else()
82-
message(FATAL_ERROR "Vulkan was not found")
80+
add_compile_definitions(GPU_INFO_USE_VULKAN)
81+
82+
list(APPEND GPU_INFO_EXTRA_LIBS Vulkan::Vulkan)
83+
else()
84+
message(FATAL_ERROR "Vulkan was not found")
85+
endif()
8386
endif()
84-
endif()
8587

86-
list(REMOVE_DUPLICATES GPU_INFO_HEADERS)
87-
list(REMOVE_DUPLICATES GPU_INFO_SOURCES)
88-
list(REMOVE_DUPLICATES GPU_INFO_EXTRA_LIBS)
88+
list(REMOVE_DUPLICATES GPU_INFO_HEADERS)
89+
list(REMOVE_DUPLICATES GPU_INFO_SOURCES)
90+
list(REMOVE_DUPLICATES GPU_INFO_EXTRA_LIBS)
8991

90-
file(GLOB SOURCE_FILES "addon/*.cpp" "addon/**/*.cpp" ${GPU_INFO_SOURCES})
92+
file(GLOB SOURCE_FILES "addon/*.cpp" "addon/**/*.cpp" ${GPU_INFO_SOURCES})
9193

92-
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC} ${GPU_INFO_HEADERS})
93-
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
94-
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})
95-
target_link_libraries(${PROJECT_NAME} "llama")
96-
target_link_libraries(${PROJECT_NAME} "common")
94+
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC} ${GPU_INFO_HEADERS})
95+
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
96+
target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})
97+
target_link_libraries(${PROJECT_NAME} "llama")
98+
target_link_libraries(${PROJECT_NAME} "common")
9799

98-
if (DEFINED GPU_INFO_EXTRA_LIBS)
99-
target_link_libraries(${PROJECT_NAME} ${GPU_INFO_EXTRA_LIBS})
100-
endif()
100+
if (DEFINED GPU_INFO_EXTRA_LIBS)
101+
target_link_libraries(${PROJECT_NAME} ${GPU_INFO_EXTRA_LIBS})
102+
endif()
101103

102-
if(MSVC AND CMAKE_JS_NODELIB_DEF AND CMAKE_JS_NODELIB_TARGET)
103-
# Generate node.lib
104-
execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})
104+
if(MSVC AND CMAKE_JS_NODELIB_DEF AND CMAKE_JS_NODELIB_TARGET)
105+
# Generate node.lib
106+
execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})
107+
endif()
105108
endif()

src/bindings/utils/compileLLamaCpp.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,8 @@ export async function compileLlamaCpp(buildOptions: BuildOptions, compileOptions
216216
...(
217217
[
218218
...cmakeCustomOptions,
219-
[targetFlag, targetValue]
219+
[targetFlag, targetValue],
220+
["NLC_SINGLE_LLAMA_CPP_TARGET", "1"]
220221
].map(([key, value]) => "--CD" + key + "=" + value)
221222
)
222223
],

0 commit comments

Comments
 (0)