@@ -27,11 +27,6 @@ endif()
2727add_definitions (-DNAPI_VERSION=7)
2828set (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-
3530set (LLAMA_BUILD_COMMON ON )
3631
3732if (MINGW)
@@ -53,53 +48,61 @@ else()
5348 set (CMAKE_BUILD_RPATH_USE_ORIGIN ON )
5449endif ()
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
5859add_subdirectory ("llama.cpp" )
5960include_directories ("llama.cpp" )
6061include_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 ()
105108endif ()
0 commit comments