llama-cpp-pro 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/CHANGELOG.md +295 -0
  2. package/LICENSE +21 -0
  3. package/LlamaCpp.podspec +33 -0
  4. package/LlamaCppCapacitor.podspec +33 -0
  5. package/Package.swift +29 -0
  6. package/README.md +93 -0
  7. package/android/build.gradle +88 -0
  8. package/android/src/main/AndroidManifest.xml +4 -0
  9. package/android/src/main/CMakeLists-arm64.txt +138 -0
  10. package/android/src/main/CMakeLists-x86_64.txt +141 -0
  11. package/android/src/main/CMakeLists.txt +138 -0
  12. package/android/src/main/java/ai/annadata/plugin/capacitor/LlamaCpp.java +1340 -0
  13. package/android/src/main/java/ai/annadata/plugin/capacitor/LlamaCppPlugin.java +814 -0
  14. package/android/src/main/java/ai/annadata/plugin/capacitor/ModelAdmissionController.java +214 -0
  15. package/android/src/main/jni-chat-session.cpp +261 -0
  16. package/android/src/main/jni-lora.cpp +197 -0
  17. package/android/src/main/jni-multimodal.cpp +167 -0
  18. package/android/src/main/jni-tts.cpp +290 -0
  19. package/android/src/main/jni-utils.h +148 -0
  20. package/android/src/main/jni.cpp +1808 -0
  21. package/android/src/main/jniLibs/arm64-v8a/libllama-cpp-arm64.so +0 -0
  22. package/android/src/main/res/.gitkeep +0 -0
  23. package/build-native.sh +280 -0
  24. package/cmake/desktop-metal-embed.cmake +30 -0
  25. package/cmake/desktop-sources.cmake +100 -0
  26. package/cmake/ggml-backends.cmake +44 -0
  27. package/cpp/LICENSE +21 -0
  28. package/cpp/README.md +15 -0
  29. package/cpp/anyascii.c +22223 -0
  30. package/cpp/anyascii.h +42 -0
  31. package/cpp/cap-completion.cpp +942 -0
  32. package/cpp/cap-completion.h +127 -0
  33. package/cpp/cap-embedding.cpp +193 -0
  34. package/cpp/cap-embedding.h +35 -0
  35. package/cpp/cap-ios-bridge.cpp +1810 -0
  36. package/cpp/cap-ios-bridge.h +61 -0
  37. package/cpp/cap-llama.cpp +412 -0
  38. package/cpp/cap-llama.h +161 -0
  39. package/cpp/cap-mtmd.hpp +602 -0
  40. package/cpp/cap-native-server.cpp +1095 -0
  41. package/cpp/cap-native-server.h +40 -0
  42. package/cpp/cap-tts.cpp +591 -0
  43. package/cpp/cap-tts.h +59 -0
  44. package/cpp/cap-wasm-fs.cpp +156 -0
  45. package/cpp/cap-wasm-jspi.cpp +19 -0
  46. package/cpp/cap-wasm-jspi.h +30 -0
  47. package/cpp/cap-wasm-vfs.cpp +22 -0
  48. package/cpp/chat-parser.cpp +393 -0
  49. package/cpp/chat-parser.h +120 -0
  50. package/cpp/chat.cpp +2315 -0
  51. package/cpp/chat.h +221 -0
  52. package/cpp/common.cpp +1664 -0
  53. package/cpp/common.h +744 -0
  54. package/cpp/ggml-alloc.c +1028 -0
  55. package/cpp/ggml-alloc.h +76 -0
  56. package/cpp/ggml-backend-impl.h +255 -0
  57. package/cpp/ggml-backend-reg.cpp +600 -0
  58. package/cpp/ggml-backend.cpp +2121 -0
  59. package/cpp/ggml-backend.h +354 -0
  60. package/cpp/ggml-common.h +1878 -0
  61. package/cpp/ggml-cpp.h +39 -0
  62. package/cpp/ggml-cpu/amx/amx.cpp +221 -0
  63. package/cpp/ggml-cpu/amx/amx.h +8 -0
  64. package/cpp/ggml-cpu/amx/common.h +91 -0
  65. package/cpp/ggml-cpu/amx/mmq.cpp +2512 -0
  66. package/cpp/ggml-cpu/amx/mmq.h +10 -0
  67. package/cpp/ggml-cpu/arch/arm/cpu-feats.cpp +94 -0
  68. package/cpp/ggml-cpu/arch/arm/quants.c +3650 -0
  69. package/cpp/ggml-cpu/arch/arm/repack.cpp +1891 -0
  70. package/cpp/ggml-cpu/arch/x86/cpu-feats.cpp +327 -0
  71. package/cpp/ggml-cpu/arch/x86/quants.c +3820 -0
  72. package/cpp/ggml-cpu/arch/x86/repack.cpp +6307 -0
  73. package/cpp/ggml-cpu/arch-fallback.h +215 -0
  74. package/cpp/ggml-cpu/binary-ops.cpp +158 -0
  75. package/cpp/ggml-cpu/binary-ops.h +16 -0
  76. package/cpp/ggml-cpu/common.h +73 -0
  77. package/cpp/ggml-cpu/ggml-cpu-impl.h +559 -0
  78. package/cpp/ggml-cpu/ggml-cpu.c +3578 -0
  79. package/cpp/ggml-cpu/ggml-cpu.cpp +672 -0
  80. package/cpp/ggml-cpu/ops.cpp +10587 -0
  81. package/cpp/ggml-cpu/ops.h +114 -0
  82. package/cpp/ggml-cpu/quants.c +1193 -0
  83. package/cpp/ggml-cpu/quants.h +97 -0
  84. package/cpp/ggml-cpu/repack.cpp +1982 -0
  85. package/cpp/ggml-cpu/repack.h +120 -0
  86. package/cpp/ggml-cpu/simd-mappings.h +1184 -0
  87. package/cpp/ggml-cpu/traits.cpp +36 -0
  88. package/cpp/ggml-cpu/traits.h +38 -0
  89. package/cpp/ggml-cpu/unary-ops.cpp +186 -0
  90. package/cpp/ggml-cpu/unary-ops.h +28 -0
  91. package/cpp/ggml-cpu/vec.cpp +348 -0
  92. package/cpp/ggml-cpu/vec.h +1121 -0
  93. package/cpp/ggml-cpu.h +145 -0
  94. package/cpp/ggml-impl.h +622 -0
  95. package/cpp/ggml-metal-impl.h +688 -0
  96. package/cpp/ggml-metal.h +66 -0
  97. package/cpp/ggml-metal.m +6833 -0
  98. package/cpp/ggml-metal.metal +10754 -0
  99. package/cpp/ggml-opt.cpp +1093 -0
  100. package/cpp/ggml-opt.h +256 -0
  101. package/cpp/ggml-quants.c +5324 -0
  102. package/cpp/ggml-quants.h +106 -0
  103. package/cpp/ggml-threading.cpp +12 -0
  104. package/cpp/ggml-threading.h +14 -0
  105. package/cpp/ggml.c +7108 -0
  106. package/cpp/ggml.h +2492 -0
  107. package/cpp/gguf.cpp +1358 -0
  108. package/cpp/gguf.h +202 -0
  109. package/cpp/json-partial.cpp +256 -0
  110. package/cpp/json-partial.h +38 -0
  111. package/cpp/json-schema-to-grammar.cpp +985 -0
  112. package/cpp/json-schema-to-grammar.h +21 -0
  113. package/cpp/llama-adapter.cpp +388 -0
  114. package/cpp/llama-adapter.h +76 -0
  115. package/cpp/llama-arch.cpp +2355 -0
  116. package/cpp/llama-arch.h +499 -0
  117. package/cpp/llama-batch.cpp +875 -0
  118. package/cpp/llama-batch.h +160 -0
  119. package/cpp/llama-chat.cpp +783 -0
  120. package/cpp/llama-chat.h +65 -0
  121. package/cpp/llama-context.cpp +2788 -0
  122. package/cpp/llama-context.h +306 -0
  123. package/cpp/llama-cparams.cpp +5 -0
  124. package/cpp/llama-cparams.h +41 -0
  125. package/cpp/llama-cpp.h +30 -0
  126. package/cpp/llama-grammar.cpp +1229 -0
  127. package/cpp/llama-grammar.h +173 -0
  128. package/cpp/llama-graph.cpp +1891 -0
  129. package/cpp/llama-graph.h +810 -0
  130. package/cpp/llama-hparams.cpp +180 -0
  131. package/cpp/llama-hparams.h +233 -0
  132. package/cpp/llama-impl.cpp +167 -0
  133. package/cpp/llama-impl.h +61 -0
  134. package/cpp/llama-io.cpp +15 -0
  135. package/cpp/llama-io.h +35 -0
  136. package/cpp/llama-kv-cache-iswa.cpp +318 -0
  137. package/cpp/llama-kv-cache-iswa.h +135 -0
  138. package/cpp/llama-kv-cache.cpp +2059 -0
  139. package/cpp/llama-kv-cache.h +374 -0
  140. package/cpp/llama-kv-cells.h +491 -0
  141. package/cpp/llama-memory-hybrid.cpp +258 -0
  142. package/cpp/llama-memory-hybrid.h +137 -0
  143. package/cpp/llama-memory-recurrent.cpp +1146 -0
  144. package/cpp/llama-memory-recurrent.h +179 -0
  145. package/cpp/llama-memory.cpp +59 -0
  146. package/cpp/llama-memory.h +119 -0
  147. package/cpp/llama-mmap.cpp +609 -0
  148. package/cpp/llama-mmap.h +68 -0
  149. package/cpp/llama-model-loader.cpp +1166 -0
  150. package/cpp/llama-model-loader.h +170 -0
  151. package/cpp/llama-model-saver.cpp +282 -0
  152. package/cpp/llama-model-saver.h +37 -0
  153. package/cpp/llama-model.cpp +19061 -0
  154. package/cpp/llama-model.h +491 -0
  155. package/cpp/llama-sampling.cpp +2575 -0
  156. package/cpp/llama-sampling.h +32 -0
  157. package/cpp/llama-vocab.cpp +3792 -0
  158. package/cpp/llama-vocab.h +176 -0
  159. package/cpp/llama.cpp +358 -0
  160. package/cpp/llama.h +1373 -0
  161. package/cpp/log.cpp +428 -0
  162. package/cpp/log.h +103 -0
  163. package/cpp/minja/chat-template.hpp +550 -0
  164. package/cpp/minja/minja.hpp +3009 -0
  165. package/cpp/nlohmann/json.hpp +25526 -0
  166. package/cpp/nlohmann/json_fwd.hpp +187 -0
  167. package/cpp/regex-partial.cpp +204 -0
  168. package/cpp/regex-partial.h +56 -0
  169. package/cpp/sampling.cpp +579 -0
  170. package/cpp/sampling.h +107 -0
  171. package/cpp/tools/mtmd/clip-impl.h +473 -0
  172. package/cpp/tools/mtmd/clip.cpp +4322 -0
  173. package/cpp/tools/mtmd/clip.h +106 -0
  174. package/cpp/tools/mtmd/miniaudio/miniaudio.h +93468 -0
  175. package/cpp/tools/mtmd/mtmd-audio.cpp +769 -0
  176. package/cpp/tools/mtmd/mtmd-audio.h +47 -0
  177. package/cpp/tools/mtmd/mtmd-helper.cpp +460 -0
  178. package/cpp/tools/mtmd/mtmd-helper.h +95 -0
  179. package/cpp/tools/mtmd/mtmd.cpp +1066 -0
  180. package/cpp/tools/mtmd/mtmd.h +302 -0
  181. package/cpp/tools/mtmd/stb/stb_image.h +7988 -0
  182. package/cpp/unicode-data.cpp +7034 -0
  183. package/cpp/unicode-data.h +20 -0
  184. package/cpp/unicode.cpp +1061 -0
  185. package/cpp/unicode.h +68 -0
  186. package/cpp/vendor/cpp-httplib/httplib.cpp +16509 -0
  187. package/cpp/vendor/cpp-httplib/httplib.h +3883 -0
  188. package/desktop/electron-builder.config.cjs +157 -0
  189. package/desktop/entitlements.mac.plist +12 -0
  190. package/desktop/package.json +11 -0
  191. package/desktop/resolve-package-root.cjs +88 -0
  192. package/desktop/src/main/backend-selector.cjs +148 -0
  193. package/desktop/src/main/gpu-probe.cjs +142 -0
  194. package/desktop/src/main/index.cjs +58 -0
  195. package/desktop/src/main/ipc-handlers.cjs +212 -0
  196. package/desktop/src/main/model-store.cjs +50 -0
  197. package/desktop/src/main/preload.cjs +39 -0
  198. package/desktop/src/main/sidecar-client.cjs +76 -0
  199. package/desktop/src/main/sidecar-manager.cjs +364 -0
  200. package/dist/docs.json +14357 -0
  201. package/dist/esm/definitions.d.ts +731 -0
  202. package/dist/esm/definitions.js +2 -0
  203. package/dist/esm/definitions.js.map +1 -0
  204. package/dist/esm/desktop.d.ts +37 -0
  205. package/dist/esm/desktop.js +133 -0
  206. package/dist/esm/desktop.js.map +1 -0
  207. package/dist/esm/index.d.ts +200 -0
  208. package/dist/esm/index.js +612 -0
  209. package/dist/esm/index.js.map +1 -0
  210. package/dist/esm/isomorphic/desktop.runtime.d.ts +37 -0
  211. package/dist/esm/isomorphic/desktop.runtime.js +36 -0
  212. package/dist/esm/isomorphic/desktop.runtime.js.map +1 -0
  213. package/dist/esm/isomorphic/errors.d.ts +6 -0
  214. package/dist/esm/isomorphic/errors.js +9 -0
  215. package/dist/esm/isomorphic/errors.js.map +1 -0
  216. package/dist/esm/isomorphic/model.admission.d.ts +17 -0
  217. package/dist/esm/isomorphic/model.admission.js +27 -0
  218. package/dist/esm/isomorphic/model.admission.js.map +1 -0
  219. package/dist/esm/isomorphic/model.scheduler.d.ts +31 -0
  220. package/dist/esm/isomorphic/model.scheduler.js +95 -0
  221. package/dist/esm/isomorphic/model.scheduler.js.map +1 -0
  222. package/dist/esm/isomorphic/provider.desktop.d.ts +40 -0
  223. package/dist/esm/isomorphic/provider.desktop.js +411 -0
  224. package/dist/esm/isomorphic/provider.desktop.js.map +1 -0
  225. package/dist/esm/isomorphic/provider.factory.d.ts +2 -0
  226. package/dist/esm/isomorphic/provider.factory.js +16 -0
  227. package/dist/esm/isomorphic/provider.factory.js.map +1 -0
  228. package/dist/esm/isomorphic/provider.interface.d.ts +76 -0
  229. package/dist/esm/isomorphic/provider.interface.js +2 -0
  230. package/dist/esm/isomorphic/provider.interface.js.map +1 -0
  231. package/dist/esm/isomorphic/provider.native.d.ts +18 -0
  232. package/dist/esm/isomorphic/provider.native.js +173 -0
  233. package/dist/esm/isomorphic/provider.native.js.map +1 -0
  234. package/dist/esm/isomorphic/provider.web.d.ts +88 -0
  235. package/dist/esm/isomorphic/provider.web.js +573 -0
  236. package/dist/esm/isomorphic/provider.web.js.map +1 -0
  237. package/dist/esm/isomorphic/sidecar-sse.d.ts +14 -0
  238. package/dist/esm/isomorphic/sidecar-sse.js +76 -0
  239. package/dist/esm/isomorphic/sidecar-sse.js.map +1 -0
  240. package/dist/esm/isomorphic/wasmMemoryCalibration.d.ts +26 -0
  241. package/dist/esm/isomorphic/wasmMemoryCalibration.js +60 -0
  242. package/dist/esm/isomorphic/wasmMemoryCalibration.js.map +1 -0
  243. package/dist/esm/isomorphic/wasmMemoryPolicy.d.ts +55 -0
  244. package/dist/esm/isomorphic/wasmMemoryPolicy.js +93 -0
  245. package/dist/esm/isomorphic/wasmMemoryPolicy.js.map +1 -0
  246. package/dist/esm/storage/manifest.d.ts +13 -0
  247. package/dist/esm/storage/manifest.js +87 -0
  248. package/dist/esm/storage/manifest.js.map +1 -0
  249. package/dist/esm/storage/opfs.store.d.ts +31 -0
  250. package/dist/esm/storage/opfs.store.js +241 -0
  251. package/dist/esm/storage/opfs.store.js.map +1 -0
  252. package/dist/esm/web.d.ts +206 -0
  253. package/dist/esm/web.js +521 -0
  254. package/dist/esm/web.js.map +1 -0
  255. package/dist/esm/workers/async-file.d.ts +13 -0
  256. package/dist/esm/workers/async-file.js +12 -0
  257. package/dist/esm/workers/async-file.js.map +1 -0
  258. package/dist/esm/workers/heapfs.d.ts +55 -0
  259. package/dist/esm/workers/heapfs.js +115 -0
  260. package/dist/esm/workers/heapfs.js.map +1 -0
  261. package/dist/esm/workers/wasm.engine.d.ts +86 -0
  262. package/dist/esm/workers/wasm.engine.js +504 -0
  263. package/dist/esm/workers/wasm.engine.js.map +1 -0
  264. package/dist/esm/workers/worker.protocol.d.ts +160 -0
  265. package/dist/esm/workers/worker.protocol.js +2 -0
  266. package/dist/esm/workers/worker.protocol.js.map +1 -0
  267. package/dist/plugin.cjs +3179 -0
  268. package/dist/plugin.cjs.map +1 -0
  269. package/dist/plugin.js +3181 -0
  270. package/dist/plugin.js.map +1 -0
  271. package/dist/wasm/llama_engine.d.ts +74 -0
  272. package/dist/wasm/llama_engine.js +1829 -0
  273. package/dist/wasm/llama_engine.wasm +0 -0
  274. package/dist/wasm/llama_engine_emscripten.mjs +2 -0
  275. package/dist/wasm/package.json +16 -0
  276. package/dist/workers/llm.worker.js +1226 -0
  277. package/dist/workers/llm.worker.js.map +7 -0
  278. package/extraResources/llama-wasm/llama_engine.d.ts +74 -0
  279. package/extraResources/llama-wasm/llama_engine.js +1829 -0
  280. package/extraResources/llama-wasm/llama_engine.wasm +0 -0
  281. package/extraResources/llama-wasm/llama_engine_emscripten.mjs +2 -0
  282. package/extraResources/llama-wasm/package.json +16 -0
  283. package/extraResources/sidecar/README.md +11 -0
  284. package/extraResources/sidecar/darwin-arm64 +0 -0
  285. package/extraResources/sidecar/darwin-x64 +0 -0
  286. package/ios/CMakeLists-arm64.txt +161 -0
  287. package/ios/CMakeLists-x86_64.txt +188 -0
  288. package/ios/CMakeLists.txt +161 -0
  289. package/ios/Frameworks/llama-cpp.framework/Info.plist +28 -0
  290. package/ios/Frameworks/llama-cpp.framework/llama-cpp +0 -0
  291. package/ios/Sources/LlamaCppCapacitor/LlamaCpp.swift +1365 -0
  292. package/ios/Sources/LlamaCppCapacitor/LlamaCppPlugin.swift +694 -0
  293. package/ios/Sources/LlamaCppCapacitor/LlamaNativeBridge.swift +349 -0
  294. package/ios/Sources/LlamaCppCapacitor/ModelAdmissionController.swift +177 -0
  295. package/ios/embed-metal-shaders.sh +24 -0
  296. package/ios/metal-embed.cmake +29 -0
  297. package/package.json +281 -0
  298. package/scripts/build-js-preserve-wasm.cjs +53 -0
  299. package/scripts/build-sidecar-linux.sh +6 -0
  300. package/scripts/build-sidecar-win.bat +19 -0
  301. package/scripts/build-sidecar.sh +184 -0
  302. package/scripts/embed-llama-ios-app-framework.sh +63 -0
  303. package/scripts/ensure-desktop-sidecar-bundle.cjs +103 -0
  304. package/scripts/ensure-llama-ios-xcframework.sh +108 -0
  305. package/scripts/fix-esm-extensions.cjs +45 -0
  306. package/scripts/prepare-js-dist.cjs +28 -0
  307. package/scripts/stage-desktop-resources.cjs +116 -0
  308. package/sidecar/CMakeLists.txt +192 -0
  309. package/sidecar/cap-sidecar-main.cpp +68 -0
  310. package/types/llama-cpp-pro.d.ts +441 -0
@@ -0,0 +1,138 @@
1
+ cmake_minimum_required(VERSION 3.10)
2
+
3
+ project(llama-cpp)
4
+
5
+ set(CMAKE_CXX_STANDARD 17)
6
+ set(LLAMACPP_LIB_DIR ${CMAKE_SOURCE_DIR}/../../../cpp)
7
+
8
+ include_directories(
9
+ ${LLAMACPP_LIB_DIR}
10
+ ${LLAMACPP_LIB_DIR}/ggml-cpu
11
+ ${LLAMACPP_LIB_DIR}/tools/mtmd
12
+ ${LLAMACPP_LIB_DIR}/vendor/cpp-httplib
13
+ )
14
+
15
+ set(
16
+ SOURCE_FILES
17
+ ${LLAMACPP_LIB_DIR}/ggml.c
18
+ ${LLAMACPP_LIB_DIR}/ggml-alloc.c
19
+ ${LLAMACPP_LIB_DIR}/ggml-backend.cpp
20
+ ${LLAMACPP_LIB_DIR}/ggml-backend-reg.cpp
21
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/amx/amx.cpp
22
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/amx/mmq.cpp
23
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ggml-cpu.c
24
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ggml-cpu.cpp
25
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/quants.c
26
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/traits.cpp
27
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/repack.cpp
28
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/unary-ops.cpp
29
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/binary-ops.cpp
30
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/vec.cpp
31
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ops.cpp
32
+ ${LLAMACPP_LIB_DIR}/ggml-opt.cpp
33
+ ${LLAMACPP_LIB_DIR}/ggml-threading.cpp
34
+ ${LLAMACPP_LIB_DIR}/ggml-quants.c
35
+ ${LLAMACPP_LIB_DIR}/gguf.cpp
36
+ ${LLAMACPP_LIB_DIR}/log.cpp
37
+ ${LLAMACPP_LIB_DIR}/llama-impl.cpp
38
+ ${LLAMACPP_LIB_DIR}/chat-parser.cpp
39
+ ${LLAMACPP_LIB_DIR}/json-partial.cpp
40
+ ${LLAMACPP_LIB_DIR}/regex-partial.cpp
41
+ # Multimodal support
42
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd.cpp
43
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd-audio.cpp
44
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/clip.cpp
45
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd-helper.cpp
46
+ ${LLAMACPP_LIB_DIR}/llama-grammar.cpp
47
+ ${LLAMACPP_LIB_DIR}/llama-sampling.cpp
48
+ ${LLAMACPP_LIB_DIR}/llama-vocab.cpp
49
+ ${LLAMACPP_LIB_DIR}/llama-adapter.cpp
50
+ ${LLAMACPP_LIB_DIR}/llama-chat.cpp
51
+ ${LLAMACPP_LIB_DIR}/llama-context.cpp
52
+ ${LLAMACPP_LIB_DIR}/llama-arch.cpp
53
+ ${LLAMACPP_LIB_DIR}/llama-batch.cpp
54
+ ${LLAMACPP_LIB_DIR}/llama-cparams.cpp
55
+ ${LLAMACPP_LIB_DIR}/llama-hparams.cpp
56
+ ${LLAMACPP_LIB_DIR}/llama.cpp
57
+ ${LLAMACPP_LIB_DIR}/llama-model.cpp
58
+ ${LLAMACPP_LIB_DIR}/llama-model-loader.cpp
59
+ ${LLAMACPP_LIB_DIR}/llama-model-saver.cpp
60
+ ${LLAMACPP_LIB_DIR}/llama-kv-cache.cpp
61
+ ${LLAMACPP_LIB_DIR}/llama-kv-cache-iswa.cpp
62
+ ${LLAMACPP_LIB_DIR}/llama-memory-hybrid.cpp
63
+ ${LLAMACPP_LIB_DIR}/llama-memory-recurrent.cpp
64
+ ${LLAMACPP_LIB_DIR}/llama-mmap.cpp
65
+ ${LLAMACPP_LIB_DIR}/llama-vocab.cpp
66
+ ${LLAMACPP_LIB_DIR}/llama-memory.cpp
67
+ ${LLAMACPP_LIB_DIR}/llama-io.cpp
68
+ ${LLAMACPP_LIB_DIR}/llama-graph.cpp
69
+ ${LLAMACPP_LIB_DIR}/sampling.cpp
70
+ ${LLAMACPP_LIB_DIR}/unicode-data.cpp
71
+ ${LLAMACPP_LIB_DIR}/unicode.cpp
72
+ ${LLAMACPP_LIB_DIR}/common.cpp
73
+ ${LLAMACPP_LIB_DIR}/chat.cpp
74
+ ${LLAMACPP_LIB_DIR}/json-schema-to-grammar.cpp
75
+ ${LLAMACPP_LIB_DIR}/nlohmann/json.hpp
76
+ ${LLAMACPP_LIB_DIR}/nlohmann/json_fwd.hpp
77
+ ${LLAMACPP_LIB_DIR}/minja/minja.hpp
78
+ ${LLAMACPP_LIB_DIR}/minja/chat-template.hpp
79
+ ${LLAMACPP_LIB_DIR}/anyascii.c
80
+ ${LLAMACPP_LIB_DIR}/cap-llama.cpp
81
+ ${LLAMACPP_LIB_DIR}/cap-completion.cpp
82
+ ${LLAMACPP_LIB_DIR}/cap-tts.cpp
83
+ ${LLAMACPP_LIB_DIR}/cap-ios-bridge.cpp
84
+ ${LLAMACPP_LIB_DIR}/cap-embedding.cpp
85
+ ${LLAMACPP_LIB_DIR}/cap-native-server.cpp
86
+ ${LLAMACPP_LIB_DIR}/vendor/cpp-httplib/httplib.cpp
87
+ ${CMAKE_SOURCE_DIR}/jni-utils.h
88
+ ${CMAKE_SOURCE_DIR}/jni.cpp
89
+ )
90
+
91
+ # Find Android libraries
92
+ find_library(LOG_LIB log)
93
+ find_library(ANDROID_LIB android)
94
+ find_package(Threads REQUIRED)
95
+
96
+ # ARM64 specific build function for real devices
97
+ function(build_library_arm64 target_name)
98
+ add_library(
99
+ ${target_name}
100
+ SHARED
101
+ ${SOURCE_FILES}
102
+ )
103
+
104
+ # ARM64 specific compile options for real devices
105
+ target_compile_options(${target_name} PRIVATE
106
+ -march=armv8-a
107
+ -mtune=cortex-a76
108
+ -O3
109
+ -DNDEBUG
110
+ -DLM_GGML_USE_CPU
111
+ -DLM_GGML_CPU_GENERIC
112
+ -fno-finite-math-only
113
+ -funroll-loops
114
+ )
115
+
116
+ # Link with Android libraries
117
+ target_link_libraries(${target_name}
118
+ ${LOG_LIB}
119
+ ${ANDROID_LIB}
120
+ Threads::Threads
121
+ )
122
+
123
+ # Set output name and directory
124
+ set_target_properties(${target_name} PROPERTIES
125
+ OUTPUT_NAME "llama-cpp-arm64"
126
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/arm64-v8a"
127
+ )
128
+ endfunction()
129
+
130
+ # Build ARM64 library for real devices
131
+ build_library_arm64(llama-cpp-arm64)
132
+
133
+ # Print build information
134
+ message(STATUS "Building llama-cpp for Android ARM64 (real devices)")
135
+ message(STATUS "Source directory: ${LLAMACPP_LIB_DIR}")
136
+ message(STATUS "Architecture: ARM64 (arm64-v8a)")
137
+ message(STATUS "Optimizations: ARMv8-A, Cortex-A76 tuning")
138
+ message(STATUS "Output directory: ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/arm64-v8a")
@@ -0,0 +1,141 @@
1
+ cmake_minimum_required(VERSION 3.10)
2
+
3
+ project(llama-cpp)
4
+
5
+ set(CMAKE_CXX_STANDARD 17)
6
+ set(LLAMACPP_LIB_DIR ${CMAKE_SOURCE_DIR}/../../../cpp)
7
+
8
+ include_directories(
9
+ ${LLAMACPP_LIB_DIR}
10
+ ${LLAMACPP_LIB_DIR}/ggml-cpu
11
+ ${LLAMACPP_LIB_DIR}/tools/mtmd
12
+ ${LLAMACPP_LIB_DIR}/vendor/cpp-httplib
13
+ )
14
+
15
+ set(
16
+ SOURCE_FILES
17
+ ${LLAMACPP_LIB_DIR}/ggml.c
18
+ ${LLAMACPP_LIB_DIR}/ggml-alloc.c
19
+ ${LLAMACPP_LIB_DIR}/ggml-backend.cpp
20
+ ${LLAMACPP_LIB_DIR}/ggml-backend-reg.cpp
21
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/amx/amx.cpp
22
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/amx/mmq.cpp
23
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ggml-cpu.c
24
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ggml-cpu.cpp
25
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/quants.c
26
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/traits.cpp
27
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/repack.cpp
28
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/unary-ops.cpp
29
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/binary-ops.cpp
30
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/vec.cpp
31
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ops.cpp
32
+ ${LLAMACPP_LIB_DIR}/ggml-opt.cpp
33
+ ${LLAMACPP_LIB_DIR}/ggml-threading.cpp
34
+ ${LLAMACPP_LIB_DIR}/ggml-quants.c
35
+ ${LLAMACPP_LIB_DIR}/gguf.cpp
36
+ ${LLAMACPP_LIB_DIR}/log.cpp
37
+ ${LLAMACPP_LIB_DIR}/llama-impl.cpp
38
+ ${LLAMACPP_LIB_DIR}/chat-parser.cpp
39
+ ${LLAMACPP_LIB_DIR}/json-partial.cpp
40
+ ${LLAMACPP_LIB_DIR}/regex-partial.cpp
41
+ # Multimodal support
42
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd.cpp
43
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd-audio.cpp
44
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/clip.cpp
45
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd-helper.cpp
46
+ ${LLAMACPP_LIB_DIR}/llama-grammar.cpp
47
+ ${LLAMACPP_LIB_DIR}/llama-sampling.cpp
48
+ ${LLAMACPP_LIB_DIR}/llama-vocab.cpp
49
+ ${LLAMACPP_LIB_DIR}/llama-adapter.cpp
50
+ ${LLAMACPP_LIB_DIR}/llama-chat.cpp
51
+ ${LLAMACPP_LIB_DIR}/llama-context.cpp
52
+ ${LLAMACPP_LIB_DIR}/llama-arch.cpp
53
+ ${LLAMACPP_LIB_DIR}/llama-batch.cpp
54
+ ${LLAMACPP_LIB_DIR}/llama-cparams.cpp
55
+ ${LLAMACPP_LIB_DIR}/llama-hparams.cpp
56
+ ${LLAMACPP_LIB_DIR}/llama.cpp
57
+ ${LLAMACPP_LIB_DIR}/llama-model.cpp
58
+ ${LLAMACPP_LIB_DIR}/llama-model-loader.cpp
59
+ ${LLAMACPP_LIB_DIR}/llama-model-saver.cpp
60
+ ${LLAMACPP_LIB_DIR}/llama-kv-cache.cpp
61
+ ${LLAMACPP_LIB_DIR}/llama-kv-cache-iswa.cpp
62
+ ${LLAMACPP_LIB_DIR}/llama-memory-hybrid.cpp
63
+ ${LLAMACPP_LIB_DIR}/llama-memory-recurrent.cpp
64
+ ${LLAMACPP_LIB_DIR}/llama-mmap.cpp
65
+ ${LLAMACPP_LIB_DIR}/llama-vocab.cpp
66
+ ${LLAMACPP_LIB_DIR}/llama-memory.cpp
67
+ ${LLAMACPP_LIB_DIR}/llama-io.cpp
68
+ ${LLAMACPP_LIB_DIR}/llama-graph.cpp
69
+ ${LLAMACPP_LIB_DIR}/sampling.cpp
70
+ ${LLAMACPP_LIB_DIR}/unicode-data.cpp
71
+ ${LLAMACPP_LIB_DIR}/unicode.cpp
72
+ ${LLAMACPP_LIB_DIR}/common.cpp
73
+ ${LLAMACPP_LIB_DIR}/chat.cpp
74
+ ${LLAMACPP_LIB_DIR}/json-schema-to-grammar.cpp
75
+ ${LLAMACPP_LIB_DIR}/nlohmann/json.hpp
76
+ ${LLAMACPP_LIB_DIR}/nlohmann/json_fwd.hpp
77
+ ${LLAMACPP_LIB_DIR}/minja/minja.hpp
78
+ ${LLAMACPP_LIB_DIR}/minja/chat-template.hpp
79
+ ${LLAMACPP_LIB_DIR}/anyascii.c
80
+ ${LLAMACPP_LIB_DIR}/cap-llama.cpp
81
+ ${LLAMACPP_LIB_DIR}/cap-completion.cpp
82
+ ${LLAMACPP_LIB_DIR}/cap-tts.cpp
83
+ ${LLAMACPP_LIB_DIR}/cap-ios-bridge.cpp
84
+ ${LLAMACPP_LIB_DIR}/cap-embedding.cpp
85
+ ${LLAMACPP_LIB_DIR}/cap-native-server.cpp
86
+ ${LLAMACPP_LIB_DIR}/vendor/cpp-httplib/httplib.cpp
87
+ ${CMAKE_SOURCE_DIR}/jni-utils.h
88
+ ${CMAKE_SOURCE_DIR}/jni.cpp
89
+ )
90
+
91
+ find_library(LOG_LIB log)
92
+ find_package(Threads REQUIRED)
93
+
94
+ # X86_64 specific build function for emulator
95
+ function(build_library_x86_64 target_name)
96
+ add_library(
97
+ ${target_name}
98
+ SHARED
99
+ ${SOURCE_FILES}
100
+ )
101
+
102
+ # X86_64 specific compile options for emulator
103
+ target_compile_options(${target_name} PRIVATE
104
+ -march=x86-64
105
+ -mtune=generic
106
+ -mavx2
107
+ -mavx
108
+ -msse3
109
+ -msse
110
+ -mfma
111
+ -mf16c
112
+ -O3
113
+ -DNDEBUG
114
+ -DLM_GGML_USE_CPU
115
+ -DLM_GGML_CPU_GENERIC
116
+ -DLM_GGML_USE_AVX2
117
+ -DLM_GGML_USE_AVX
118
+ -DLM_GGML_USE_SSE3
119
+ -DLM_GGML_USE_SSE
120
+ -DLM_GGML_USE_FMA
121
+ -DLM_GGML_USE_F16C
122
+ )
123
+
124
+ target_link_libraries(${target_name} ${LOG_LIB} Threads::Threads)
125
+
126
+ # Set output name
127
+ set_target_properties(${target_name} PROPERTIES
128
+ OUTPUT_NAME "llama-cpp-x86_64"
129
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/x86_64"
130
+ )
131
+ endfunction()
132
+
133
+ # Build x86_64 library for emulator
134
+ build_library_x86_64(llama-cpp-x86_64)
135
+
136
+ # Print build information
137
+ message(STATUS "Building llama-cpp for Android x86_64 (emulator)")
138
+ message(STATUS "Source directory: ${LLAMACPP_LIB_DIR}")
139
+ message(STATUS "Architecture: x86_64")
140
+ message(STATUS "Optimizations: AVX2, AVX, SSE3, SSE, FMA, F16C")
141
+ message(STATUS "Output directory: ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/x86_64")
@@ -0,0 +1,138 @@
1
+ cmake_minimum_required(VERSION 3.10)
2
+
3
+ project(llama-cpp)
4
+
5
+ set(CMAKE_CXX_STANDARD 17)
6
+ set(LLAMACPP_LIB_DIR ${CMAKE_SOURCE_DIR}/../../../cpp)
7
+
8
+ include_directories(
9
+ ${LLAMACPP_LIB_DIR}
10
+ ${LLAMACPP_LIB_DIR}/ggml-cpu
11
+ ${LLAMACPP_LIB_DIR}/tools/mtmd
12
+ ${LLAMACPP_LIB_DIR}/vendor/cpp-httplib
13
+ )
14
+
15
+ set(
16
+ SOURCE_FILES
17
+ ${LLAMACPP_LIB_DIR}/ggml.c
18
+ ${LLAMACPP_LIB_DIR}/ggml-alloc.c
19
+ ${LLAMACPP_LIB_DIR}/ggml-backend.cpp
20
+ ${LLAMACPP_LIB_DIR}/ggml-backend-reg.cpp
21
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/amx/amx.cpp
22
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/amx/mmq.cpp
23
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ggml-cpu.c
24
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ggml-cpu.cpp
25
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/quants.c
26
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/traits.cpp
27
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/repack.cpp
28
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/unary-ops.cpp
29
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/binary-ops.cpp
30
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/vec.cpp
31
+ ${LLAMACPP_LIB_DIR}/ggml-cpu/ops.cpp
32
+ ${LLAMACPP_LIB_DIR}/ggml-opt.cpp
33
+ ${LLAMACPP_LIB_DIR}/ggml-threading.cpp
34
+ ${LLAMACPP_LIB_DIR}/ggml-quants.c
35
+ ${LLAMACPP_LIB_DIR}/gguf.cpp
36
+ ${LLAMACPP_LIB_DIR}/log.cpp
37
+ ${LLAMACPP_LIB_DIR}/llama-impl.cpp
38
+ ${LLAMACPP_LIB_DIR}/chat-parser.cpp
39
+ ${LLAMACPP_LIB_DIR}/json-partial.cpp
40
+ ${LLAMACPP_LIB_DIR}/regex-partial.cpp
41
+ # Multimodal support
42
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd.cpp
43
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd-audio.cpp
44
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/clip.cpp
45
+ ${LLAMACPP_LIB_DIR}/tools/mtmd/mtmd-helper.cpp
46
+ ${LLAMACPP_LIB_DIR}/llama-grammar.cpp
47
+ ${LLAMACPP_LIB_DIR}/llama-sampling.cpp
48
+ ${LLAMACPP_LIB_DIR}/llama-vocab.cpp
49
+ ${LLAMACPP_LIB_DIR}/llama-adapter.cpp
50
+ ${LLAMACPP_LIB_DIR}/llama-chat.cpp
51
+ ${LLAMACPP_LIB_DIR}/llama-context.cpp
52
+ ${LLAMACPP_LIB_DIR}/llama-arch.cpp
53
+ ${LLAMACPP_LIB_DIR}/llama-batch.cpp
54
+ ${LLAMACPP_LIB_DIR}/llama-cparams.cpp
55
+ ${LLAMACPP_LIB_DIR}/llama-hparams.cpp
56
+ ${LLAMACPP_LIB_DIR}/llama.cpp
57
+ ${LLAMACPP_LIB_DIR}/llama-model.cpp
58
+ ${LLAMACPP_LIB_DIR}/llama-model-loader.cpp
59
+ ${LLAMACPP_LIB_DIR}/llama-model-saver.cpp
60
+ ${LLAMACPP_LIB_DIR}/llama-kv-cache.cpp
61
+ ${LLAMACPP_LIB_DIR}/llama-kv-cache-iswa.cpp
62
+ ${LLAMACPP_LIB_DIR}/llama-memory-hybrid.cpp
63
+ ${LLAMACPP_LIB_DIR}/llama-memory-recurrent.cpp
64
+ ${LLAMACPP_LIB_DIR}/llama-mmap.cpp
65
+ ${LLAMACPP_LIB_DIR}/llama-vocab.cpp
66
+ ${LLAMACPP_LIB_DIR}/llama-memory.cpp
67
+ ${LLAMACPP_LIB_DIR}/llama-io.cpp
68
+ ${LLAMACPP_LIB_DIR}/llama-graph.cpp
69
+ ${LLAMACPP_LIB_DIR}/sampling.cpp
70
+ ${LLAMACPP_LIB_DIR}/unicode-data.cpp
71
+ ${LLAMACPP_LIB_DIR}/unicode.cpp
72
+ ${LLAMACPP_LIB_DIR}/common.cpp
73
+ ${LLAMACPP_LIB_DIR}/chat.cpp
74
+ ${LLAMACPP_LIB_DIR}/json-schema-to-grammar.cpp
75
+ ${LLAMACPP_LIB_DIR}/nlohmann/json.hpp
76
+ ${LLAMACPP_LIB_DIR}/nlohmann/json_fwd.hpp
77
+ ${LLAMACPP_LIB_DIR}/minja/minja.hpp
78
+ ${LLAMACPP_LIB_DIR}/minja/chat-template.hpp
79
+ ${LLAMACPP_LIB_DIR}/anyascii.c
80
+ ${LLAMACPP_LIB_DIR}/cap-llama.cpp
81
+ ${LLAMACPP_LIB_DIR}/cap-completion.cpp
82
+ ${LLAMACPP_LIB_DIR}/cap-tts.cpp
83
+ ${LLAMACPP_LIB_DIR}/cap-ios-bridge.cpp
84
+ ${LLAMACPP_LIB_DIR}/cap-embedding.cpp
85
+ ${LLAMACPP_LIB_DIR}/cap-native-server.cpp
86
+ ${LLAMACPP_LIB_DIR}/vendor/cpp-httplib/httplib.cpp
87
+ ${CMAKE_SOURCE_DIR}/jni-utils.h
88
+ ${CMAKE_SOURCE_DIR}/jni.cpp
89
+ )
90
+
91
+ # Find Android libraries
92
+ find_library(LOG_LIB log)
93
+ find_library(ANDROID_LIB android)
94
+ find_package(Threads REQUIRED)
95
+
96
+ # ARM64 specific build function for real devices
97
+ function(build_library_arm64 target_name)
98
+ add_library(
99
+ ${target_name}
100
+ SHARED
101
+ ${SOURCE_FILES}
102
+ )
103
+
104
+ # ARM64 specific compile options for real devices
105
+ target_compile_options(${target_name} PRIVATE
106
+ -march=armv8-a
107
+ -mtune=cortex-a76
108
+ -O3
109
+ -DNDEBUG
110
+ -DLM_GGML_USE_CPU
111
+ -DLM_GGML_CPU_GENERIC
112
+ -fno-finite-math-only
113
+ -funroll-loops
114
+ )
115
+
116
+ # Link with Android libraries
117
+ target_link_libraries(${target_name}
118
+ ${LOG_LIB}
119
+ ${ANDROID_LIB}
120
+ Threads::Threads
121
+ )
122
+
123
+ # Set output name and directory
124
+ set_target_properties(${target_name} PROPERTIES
125
+ OUTPUT_NAME "llama-cpp-arm64"
126
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/arm64-v8a"
127
+ )
128
+ endfunction()
129
+
130
+ # Build ARM64 library for real devices
131
+ build_library_arm64(llama-cpp-arm64)
132
+
133
+ # Print build information
134
+ message(STATUS "Building llama-cpp for Android ARM64 (real devices)")
135
+ message(STATUS "Source directory: ${LLAMACPP_LIB_DIR}")
136
+ message(STATUS "Architecture: ARM64 (arm64-v8a)")
137
+ message(STATUS "Optimizations: ARMv8-A, Cortex-A76 tuning")
138
+ message(STATUS "Output directory: ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/arm64-v8a")