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,16 @@
1
+ {
2
+ "name": "llama_engine",
3
+ "type": "module",
4
+ "description": "Embedded llama.cpp Wasm runtime for llama-cpp-pro (web/PWA)",
5
+ "version": "0.1.0",
6
+ "license": "MIT",
7
+ "files": [
8
+ "llama_engine.wasm",
9
+ "llama_engine.js",
10
+ "llama_engine.d.ts",
11
+ "llama_engine_emscripten.mjs"
12
+ ],
13
+ "main": "llama_engine.js",
14
+ "types": "llama_engine.d.ts",
15
+ "sideEffects": []
16
+ }
@@ -0,0 +1,11 @@
1
+ # Pre-built desktop sidecar binaries are placed here for electron-builder packaging.
2
+ #
3
+ # Expected layout (after `npm run build:sidecar`):
4
+ # darwin-arm64
5
+ # darwin-x64
6
+ # linux-x64
7
+ # win32-x64.exe
8
+ # win32-x64-rocm.exe (optional AMD variant)
9
+ # libggml-vulkan.so (optional GPU plugins, same directory as sidecar)
10
+ #
11
+ # CI release workflows copy from sidecar/bin/ — see docs/DESKTOP_ARCHITECTURE.md
@@ -0,0 +1,161 @@
1
+ cmake_minimum_required(VERSION 3.16)
2
+ project(llama-cpp VERSION 1.0.0 LANGUAGES CXX C)
3
+
4
+ set(CMAKE_CXX_STANDARD 17)
5
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
6
+
7
+ # iOS specific settings for ARM64 devices
8
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0)
9
+ set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE NO)
10
+
11
+ # Metal first (embedded shader source); CPU + Accelerate always available as fallback.
12
+ add_definitions(
13
+ -DNDEBUG
14
+ -DO3
15
+ -DLM_GGML_USE_CPU
16
+ -DLM_GGML_USE_ACCELERATE
17
+ -DLM_GGML_USE_METAL
18
+ -DLM_GGML_METAL_EMBED_LIBRARY
19
+ -DLM_GGML_METAL_USE_BF16
20
+ )
21
+
22
+ set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp)
23
+
24
+ enable_language(ASM)
25
+ include(${CMAKE_CURRENT_SOURCE_DIR}/metal-embed.cmake)
26
+
27
+ # ARM64‑tuned ggml sources
28
+ set(SOURCE_FILES_ARCH
29
+ ${SOURCE_DIR}/ggml-cpu/arch/arm/quants.c
30
+ ${SOURCE_DIR}/ggml-cpu/arch/arm/repack.cpp
31
+ )
32
+
33
+ # Define public headers
34
+ set(PUBLIC_HEADERS
35
+ ${SOURCE_DIR}/cap-llama.h
36
+ ${SOURCE_DIR}/cap-completion.h
37
+ ${SOURCE_DIR}/cap-embedding.h
38
+ ${SOURCE_DIR}/cap-ios-bridge.h
39
+ ${SOURCE_DIR}/cap-tts.h
40
+ ${SOURCE_DIR}/llama.h
41
+ ${SOURCE_DIR}/ggml.h
42
+ )
43
+
44
+ # Create library target
45
+ add_library(llama-cpp SHARED
46
+ ${SOURCE_DIR}/ggml.c
47
+ ${SOURCE_DIR}/ggml-alloc.c
48
+ ${SOURCE_DIR}/ggml-backend.cpp
49
+ ${SOURCE_DIR}/ggml-backend-reg.cpp
50
+ ${SOURCE_DIR}/ggml-cpu/amx/amx.cpp
51
+ ${SOURCE_DIR}/ggml-cpu/amx/mmq.cpp
52
+ ${SOURCE_DIR}/ggml-cpu/ggml-cpu.c
53
+ ${SOURCE_DIR}/ggml-cpu/ggml-cpu.cpp
54
+ ${SOURCE_DIR}/ggml-cpu/quants.c
55
+ ${SOURCE_DIR}/ggml-cpu/traits.cpp
56
+ ${SOURCE_DIR}/ggml-cpu/repack.cpp
57
+ ${SOURCE_DIR}/ggml-cpu/unary-ops.cpp
58
+ ${SOURCE_DIR}/ggml-cpu/binary-ops.cpp
59
+ ${SOURCE_DIR}/ggml-cpu/vec.cpp
60
+ ${SOURCE_DIR}/ggml-cpu/ops.cpp
61
+ ${SOURCE_DIR}/ggml-metal.m
62
+ ${SOURCE_DIR}/ggml-opt.cpp
63
+ ${SOURCE_DIR}/ggml-threading.cpp
64
+ ${SOURCE_DIR}/ggml-quants.c
65
+ ${SOURCE_DIR}/gguf.cpp
66
+ ${SOURCE_DIR}/log.cpp
67
+ ${SOURCE_DIR}/llama-impl.cpp
68
+ ${SOURCE_DIR}/llama-grammar.cpp
69
+ ${SOURCE_DIR}/llama-sampling.cpp
70
+ ${SOURCE_DIR}/llama-vocab.cpp
71
+ ${SOURCE_DIR}/llama-adapter.cpp
72
+ ${SOURCE_DIR}/llama-chat.cpp
73
+ ${SOURCE_DIR}/llama-context.cpp
74
+ ${SOURCE_DIR}/llama-arch.cpp
75
+ ${SOURCE_DIR}/llama-batch.cpp
76
+ ${SOURCE_DIR}/llama-cparams.cpp
77
+ ${SOURCE_DIR}/llama-hparams.cpp
78
+ ${SOURCE_DIR}/llama.cpp
79
+ ${SOURCE_DIR}/llama-model.cpp
80
+ ${SOURCE_DIR}/llama-model-loader.cpp
81
+ ${SOURCE_DIR}/llama-model-saver.cpp
82
+ ${SOURCE_DIR}/llama-mmap.cpp
83
+ ${SOURCE_DIR}/llama-kv-cache.cpp
84
+ ${SOURCE_DIR}/llama-kv-cache-iswa.cpp
85
+ ${SOURCE_DIR}/llama-memory-hybrid.cpp
86
+ ${SOURCE_DIR}/llama-memory-recurrent.cpp
87
+ ${SOURCE_DIR}/llama-memory.cpp
88
+ ${SOURCE_DIR}/llama-io.cpp
89
+ ${SOURCE_DIR}/llama-graph.cpp
90
+ ${SOURCE_DIR}/sampling.cpp
91
+ ${SOURCE_DIR}/unicode-data.cpp
92
+ ${SOURCE_DIR}/unicode.cpp
93
+ ${SOURCE_DIR}/common.cpp
94
+ ${SOURCE_DIR}/chat.cpp
95
+ # Additional sources required for JSON parsing, chat parser, and mtmd tools
96
+ ${SOURCE_DIR}/chat-parser.cpp
97
+ ${SOURCE_DIR}/regex-partial.cpp
98
+ ${SOURCE_DIR}/json-partial.cpp
99
+ ${SOURCE_DIR}/json-schema-to-grammar.cpp
100
+ ${SOURCE_DIR}/anyascii.c
101
+ ${SOURCE_DIR}/tools/mtmd/mtmd.cpp
102
+ ${SOURCE_DIR}/tools/mtmd/mtmd-helper.cpp
103
+ ${SOURCE_DIR}/tools/mtmd/mtmd-audio.cpp
104
+ ${SOURCE_DIR}/tools/mtmd/clip.cpp
105
+ ${SOURCE_DIR}/cap-llama.cpp
106
+ ${SOURCE_DIR}/cap-completion.cpp
107
+ ${SOURCE_DIR}/cap-tts.cpp
108
+ ${SOURCE_DIR}/cap-embedding.cpp
109
+ ${SOURCE_DIR}/cap-ios-bridge.cpp
110
+ ${SOURCE_DIR}/cap-native-server.cpp
111
+ ${SOURCE_DIR}/vendor/cpp-httplib/httplib.cpp
112
+ ${SOURCE_FILES_ARCH}
113
+ ${METALLIB_EMBED_ASM}
114
+ )
115
+
116
+ # Set target properties
117
+ set_target_properties(llama-cpp PROPERTIES
118
+ FRAMEWORK TRUE
119
+ FRAMEWORK_VERSION A
120
+ MACOSX_FRAMEWORK_IDENTIFIER com.arusatech.llama-cpp
121
+ MACOSX_FRAMEWORK_BUNDLE_VERSION 1.0.0
122
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING 1.0.0
123
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
124
+ XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ""
125
+ XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO
126
+ XCODE_ATTRIBUTE_ENABLE_BITCODE NO
127
+ )
128
+
129
+ # Include directories
130
+ target_include_directories(llama-cpp PRIVATE
131
+ ${SOURCE_DIR}
132
+ ${SOURCE_DIR}/ggml-cpu
133
+ ${SOURCE_DIR}/tools/mtmd
134
+ ${SOURCE_DIR}/vendor/cpp-httplib
135
+ )
136
+
137
+ # ARM64: rely on Clang's default tuning; no x86‑specific -march flags here
138
+
139
+ # Link frameworks via linker flags
140
+ target_link_options(llama-cpp PRIVATE
141
+ "-Wl,-framework,Accelerate"
142
+ "-Wl,-framework,Metal"
143
+ "-Wl,-framework,MetalKit"
144
+ "-Wl,-framework,Foundation"
145
+ "-Wl,-framework,CoreGraphics"
146
+ )
147
+
148
+ # Public headers
149
+ set_target_properties(llama-cpp PROPERTIES
150
+ PUBLIC_HEADER "${PUBLIC_HEADERS}"
151
+ )
152
+
153
+ # Install rules
154
+ install(TARGETS llama-cpp
155
+ FRAMEWORK DESTINATION .
156
+ )
157
+
158
+ message(STATUS "Building llama-cpp for ARM64 (devices)")
159
+ message(STATUS "Source directory: ${SOURCE_DIR}")
160
+ message(STATUS "Architecture: arm64")
161
+
@@ -0,0 +1,188 @@
1
+ cmake_minimum_required(VERSION 3.16)
2
+ project(llama-cpp VERSION 1.0.0 LANGUAGES CXX C)
3
+
4
+ set(CMAKE_CXX_STANDARD 17)
5
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
6
+
7
+ # iOS specific settings for x86_64 emulator
8
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0)
9
+ set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE NO)
10
+
11
+ # Metal first (embedded shader source); CPU + Accelerate always available as fallback.
12
+ add_definitions(
13
+ -DNDEBUG
14
+ -DO3
15
+ -DLM_GGML_USE_CPU
16
+ -DLM_GGML_USE_ACCELERATE
17
+ -DLM_GGML_USE_METAL
18
+ -DLM_GGML_METAL_EMBED_LIBRARY
19
+ -DLM_GGML_METAL_USE_BF16
20
+ )
21
+
22
+ # X86_64 specific optimizations for emulator
23
+ add_definitions(-DLM_GGML_CPU_GENERIC)
24
+ add_definitions(-DLM_GGML_USE_AVX2)
25
+ add_definitions(-DLM_GGML_USE_AVX)
26
+ add_definitions(-DLM_GGML_USE_SSE3)
27
+ add_definitions(-DLM_GGML_USE_SSE)
28
+ add_definitions(-DLM_GGML_USE_F16C)
29
+ add_definitions(-DLM_GGML_USE_FMA)
30
+
31
+ set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp)
32
+
33
+ enable_language(ASM)
34
+ include(${CMAKE_CURRENT_SOURCE_DIR}/metal-embed.cmake)
35
+
36
+ # Use x86_64 optimized source files for emulator
37
+ set(SOURCE_FILES_ARCH
38
+ ${SOURCE_DIR}/ggml-cpu/arch/x86/quants.c
39
+ ${SOURCE_DIR}/ggml-cpu/arch/x86/repack.cpp
40
+ )
41
+
42
+ # Define public headers
43
+ set(PUBLIC_HEADERS
44
+ ${SOURCE_DIR}/cap-llama.h
45
+ ${SOURCE_DIR}/cap-completion.h
46
+ ${SOURCE_DIR}/cap-embedding.h
47
+ ${SOURCE_DIR}/cap-ios-bridge.h
48
+ ${SOURCE_DIR}/cap-tts.h
49
+ ${SOURCE_DIR}/llama.h
50
+ ${SOURCE_DIR}/ggml.h
51
+ )
52
+
53
+ # Create library target
54
+ add_library(llama-cpp SHARED
55
+ ${SOURCE_DIR}/ggml.c
56
+ ${SOURCE_DIR}/ggml-alloc.c
57
+ ${SOURCE_DIR}/ggml-backend.cpp
58
+ ${SOURCE_DIR}/ggml-backend-reg.cpp
59
+ ${SOURCE_DIR}/ggml-cpu/amx/amx.cpp
60
+ ${SOURCE_DIR}/ggml-cpu/amx/mmq.cpp
61
+ ${SOURCE_DIR}/ggml-cpu/ggml-cpu.c
62
+ ${SOURCE_DIR}/ggml-cpu/ggml-cpu.cpp
63
+ ${SOURCE_DIR}/ggml-cpu/quants.c
64
+ ${SOURCE_DIR}/ggml-cpu/traits.cpp
65
+ ${SOURCE_DIR}/ggml-cpu/repack.cpp
66
+ ${SOURCE_DIR}/ggml-cpu/unary-ops.cpp
67
+ ${SOURCE_DIR}/ggml-cpu/binary-ops.cpp
68
+ ${SOURCE_DIR}/ggml-cpu/vec.cpp
69
+ ${SOURCE_DIR}/ggml-cpu/ops.cpp
70
+ ${SOURCE_DIR}/ggml-metal.m
71
+ ${SOURCE_DIR}/ggml-opt.cpp
72
+ ${SOURCE_DIR}/ggml-threading.cpp
73
+ ${SOURCE_DIR}/ggml-quants.c
74
+ ${SOURCE_DIR}/gguf.cpp
75
+ ${SOURCE_DIR}/log.cpp
76
+ ${SOURCE_DIR}/llama-impl.cpp
77
+ ${SOURCE_DIR}/llama-grammar.cpp
78
+ ${SOURCE_DIR}/llama-sampling.cpp
79
+ ${SOURCE_DIR}/llama-vocab.cpp
80
+ ${SOURCE_DIR}/llama-adapter.cpp
81
+ ${SOURCE_DIR}/llama-chat.cpp
82
+ ${SOURCE_DIR}/llama-context.cpp
83
+ ${SOURCE_DIR}/llama-arch.cpp
84
+ ${SOURCE_DIR}/llama-batch.cpp
85
+ ${SOURCE_DIR}/llama-cparams.cpp
86
+ ${SOURCE_DIR}/llama-hparams.cpp
87
+ ${SOURCE_DIR}/llama.cpp
88
+ ${SOURCE_DIR}/llama-model.cpp
89
+ ${SOURCE_DIR}/llama-model-loader.cpp
90
+ ${SOURCE_DIR}/llama-model-saver.cpp
91
+ ${SOURCE_DIR}/llama-mmap.cpp
92
+ ${SOURCE_DIR}/llama-kv-cache.cpp
93
+ ${SOURCE_DIR}/llama-kv-cache-iswa.cpp
94
+ ${SOURCE_DIR}/llama-memory-hybrid.cpp
95
+ ${SOURCE_DIR}/llama-memory-recurrent.cpp
96
+ ${SOURCE_DIR}/llama-memory.cpp
97
+ ${SOURCE_DIR}/llama-io.cpp
98
+ ${SOURCE_DIR}/llama-graph.cpp
99
+ ${SOURCE_DIR}/sampling.cpp
100
+ ${SOURCE_DIR}/unicode-data.cpp
101
+ ${SOURCE_DIR}/unicode.cpp
102
+ ${SOURCE_DIR}/common.cpp
103
+ ${SOURCE_DIR}/chat.cpp
104
+ # Additional sources required for JSON parsing, chat parser, and mtmd tools
105
+ ${SOURCE_DIR}/chat-parser.cpp
106
+ ${SOURCE_DIR}/regex-partial.cpp
107
+ ${SOURCE_DIR}/json-partial.cpp
108
+ ${SOURCE_DIR}/json-schema-to-grammar.cpp
109
+ ${SOURCE_DIR}/anyascii.c
110
+ ${SOURCE_DIR}/tools/mtmd/mtmd.cpp
111
+ ${SOURCE_DIR}/tools/mtmd/mtmd-helper.cpp
112
+ ${SOURCE_DIR}/tools/mtmd/mtmd-audio.cpp
113
+ ${SOURCE_DIR}/tools/mtmd/clip.cpp
114
+ ${SOURCE_DIR}/minja/minja.hpp
115
+ ${SOURCE_DIR}/minja/chat-template.hpp
116
+ ${SOURCE_DIR}/nlohmann/json.hpp
117
+ ${SOURCE_DIR}/nlohmann/json_fwd.hpp
118
+ ${SOURCE_DIR}/cap-llama.cpp
119
+ ${SOURCE_DIR}/cap-completion.cpp
120
+ ${SOURCE_DIR}/cap-tts.cpp
121
+ ${SOURCE_DIR}/cap-embedding.cpp
122
+ ${SOURCE_DIR}/cap-ios-bridge.cpp
123
+ ${SOURCE_DIR}/cap-native-server.cpp
124
+ ${SOURCE_DIR}/vendor/cpp-httplib/httplib.cpp
125
+ ${SOURCE_FILES_ARCH}
126
+ ${METALLIB_EMBED_ASM}
127
+ )
128
+
129
+ # Set target properties
130
+ set_target_properties(llama-cpp PROPERTIES
131
+ FRAMEWORK TRUE
132
+ FRAMEWORK_VERSION A
133
+ MACOSX_FRAMEWORK_IDENTIFIER com.arusatech.llama-cpp
134
+ MACOSX_FRAMEWORK_BUNDLE_VERSION 1.0.0
135
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING 1.0.0
136
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
137
+ XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ""
138
+ XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO
139
+ XCODE_ATTRIBUTE_ENABLE_BITCODE NO
140
+ )
141
+
142
+ # Set include directories
143
+ target_include_directories(llama-cpp PRIVATE
144
+ ${SOURCE_DIR}
145
+ ${SOURCE_DIR}/ggml-cpu
146
+ ${SOURCE_DIR}/tools/mtmd
147
+ ${SOURCE_DIR}/vendor/cpp-httplib
148
+ )
149
+
150
+ # Set compile options for x86_64 optimization
151
+ target_compile_options(llama-cpp PRIVATE
152
+ -march=x86-64
153
+ -mtune=generic
154
+ -mavx2
155
+ -mavx
156
+ -msse3
157
+ -msse
158
+ -mfma
159
+ -mf16c
160
+ )
161
+
162
+ # Set link options
163
+ # NOTE:
164
+ # Use -Wl,-framework,<Name> so that the compiler driver passes the correct
165
+ # framework flags through to the linker as a single option.
166
+ target_link_options(llama-cpp PRIVATE
167
+ "-Wl,-framework,Accelerate"
168
+ "-Wl,-framework,Metal"
169
+ "-Wl,-framework,MetalKit"
170
+ "-Wl,-framework,Foundation"
171
+ "-Wl,-framework,CoreGraphics"
172
+ )
173
+
174
+ # Set public headers
175
+ set_target_properties(llama-cpp PROPERTIES
176
+ PUBLIC_HEADER "${PUBLIC_HEADERS}"
177
+ )
178
+
179
+ # Install rules
180
+ install(TARGETS llama-cpp
181
+ FRAMEWORK DESTINATION .
182
+ )
183
+
184
+ # Print build information
185
+ message(STATUS "Building llama-cpp for x86_64 (emulator)")
186
+ message(STATUS "Source directory: ${SOURCE_DIR}")
187
+ message(STATUS "Architecture: x86_64")
188
+ message(STATUS "Optimizations: AVX2, AVX, SSE3, SSE, FMA, F16C")
@@ -0,0 +1,161 @@
1
+ cmake_minimum_required(VERSION 3.16)
2
+ project(llama-cpp VERSION 1.0.0 LANGUAGES CXX C)
3
+
4
+ set(CMAKE_CXX_STANDARD 17)
5
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
6
+
7
+ # iOS specific settings for ARM64 devices
8
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 13.0)
9
+ set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE NO)
10
+
11
+ # Metal first (embedded shader source); CPU + Accelerate always available as fallback.
12
+ add_definitions(
13
+ -DNDEBUG
14
+ -DO3
15
+ -DLM_GGML_USE_CPU
16
+ -DLM_GGML_USE_ACCELERATE
17
+ -DLM_GGML_USE_METAL
18
+ -DLM_GGML_METAL_EMBED_LIBRARY
19
+ -DLM_GGML_METAL_USE_BF16
20
+ )
21
+
22
+ set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp)
23
+
24
+ enable_language(ASM)
25
+ include(${CMAKE_CURRENT_SOURCE_DIR}/metal-embed.cmake)
26
+
27
+ # ARM64‑tuned ggml sources
28
+ set(SOURCE_FILES_ARCH
29
+ ${SOURCE_DIR}/ggml-cpu/arch/arm/quants.c
30
+ ${SOURCE_DIR}/ggml-cpu/arch/arm/repack.cpp
31
+ )
32
+
33
+ # Define public headers
34
+ set(PUBLIC_HEADERS
35
+ ${SOURCE_DIR}/cap-llama.h
36
+ ${SOURCE_DIR}/cap-completion.h
37
+ ${SOURCE_DIR}/cap-embedding.h
38
+ ${SOURCE_DIR}/cap-ios-bridge.h
39
+ ${SOURCE_DIR}/cap-tts.h
40
+ ${SOURCE_DIR}/llama.h
41
+ ${SOURCE_DIR}/ggml.h
42
+ )
43
+
44
+ # Create library target
45
+ add_library(llama-cpp SHARED
46
+ ${SOURCE_DIR}/ggml.c
47
+ ${SOURCE_DIR}/ggml-alloc.c
48
+ ${SOURCE_DIR}/ggml-backend.cpp
49
+ ${SOURCE_DIR}/ggml-backend-reg.cpp
50
+ ${SOURCE_DIR}/ggml-cpu/amx/amx.cpp
51
+ ${SOURCE_DIR}/ggml-cpu/amx/mmq.cpp
52
+ ${SOURCE_DIR}/ggml-cpu/ggml-cpu.c
53
+ ${SOURCE_DIR}/ggml-cpu/ggml-cpu.cpp
54
+ ${SOURCE_DIR}/ggml-cpu/quants.c
55
+ ${SOURCE_DIR}/ggml-cpu/traits.cpp
56
+ ${SOURCE_DIR}/ggml-cpu/repack.cpp
57
+ ${SOURCE_DIR}/ggml-cpu/unary-ops.cpp
58
+ ${SOURCE_DIR}/ggml-cpu/binary-ops.cpp
59
+ ${SOURCE_DIR}/ggml-cpu/vec.cpp
60
+ ${SOURCE_DIR}/ggml-cpu/ops.cpp
61
+ ${SOURCE_DIR}/ggml-metal.m
62
+ ${SOURCE_DIR}/ggml-opt.cpp
63
+ ${SOURCE_DIR}/ggml-threading.cpp
64
+ ${SOURCE_DIR}/ggml-quants.c
65
+ ${SOURCE_DIR}/gguf.cpp
66
+ ${SOURCE_DIR}/log.cpp
67
+ ${SOURCE_DIR}/llama-impl.cpp
68
+ ${SOURCE_DIR}/llama-grammar.cpp
69
+ ${SOURCE_DIR}/llama-sampling.cpp
70
+ ${SOURCE_DIR}/llama-vocab.cpp
71
+ ${SOURCE_DIR}/llama-adapter.cpp
72
+ ${SOURCE_DIR}/llama-chat.cpp
73
+ ${SOURCE_DIR}/llama-context.cpp
74
+ ${SOURCE_DIR}/llama-arch.cpp
75
+ ${SOURCE_DIR}/llama-batch.cpp
76
+ ${SOURCE_DIR}/llama-cparams.cpp
77
+ ${SOURCE_DIR}/llama-hparams.cpp
78
+ ${SOURCE_DIR}/llama.cpp
79
+ ${SOURCE_DIR}/llama-model.cpp
80
+ ${SOURCE_DIR}/llama-model-loader.cpp
81
+ ${SOURCE_DIR}/llama-model-saver.cpp
82
+ ${SOURCE_DIR}/llama-mmap.cpp
83
+ ${SOURCE_DIR}/llama-kv-cache.cpp
84
+ ${SOURCE_DIR}/llama-kv-cache-iswa.cpp
85
+ ${SOURCE_DIR}/llama-memory-hybrid.cpp
86
+ ${SOURCE_DIR}/llama-memory-recurrent.cpp
87
+ ${SOURCE_DIR}/llama-memory.cpp
88
+ ${SOURCE_DIR}/llama-io.cpp
89
+ ${SOURCE_DIR}/llama-graph.cpp
90
+ ${SOURCE_DIR}/sampling.cpp
91
+ ${SOURCE_DIR}/unicode-data.cpp
92
+ ${SOURCE_DIR}/unicode.cpp
93
+ ${SOURCE_DIR}/common.cpp
94
+ ${SOURCE_DIR}/chat.cpp
95
+ # Additional sources required for JSON parsing, chat parser, and mtmd tools
96
+ ${SOURCE_DIR}/chat-parser.cpp
97
+ ${SOURCE_DIR}/regex-partial.cpp
98
+ ${SOURCE_DIR}/json-partial.cpp
99
+ ${SOURCE_DIR}/json-schema-to-grammar.cpp
100
+ ${SOURCE_DIR}/anyascii.c
101
+ ${SOURCE_DIR}/tools/mtmd/mtmd.cpp
102
+ ${SOURCE_DIR}/tools/mtmd/mtmd-helper.cpp
103
+ ${SOURCE_DIR}/tools/mtmd/mtmd-audio.cpp
104
+ ${SOURCE_DIR}/tools/mtmd/clip.cpp
105
+ ${SOURCE_DIR}/cap-llama.cpp
106
+ ${SOURCE_DIR}/cap-completion.cpp
107
+ ${SOURCE_DIR}/cap-tts.cpp
108
+ ${SOURCE_DIR}/cap-embedding.cpp
109
+ ${SOURCE_DIR}/cap-ios-bridge.cpp
110
+ ${SOURCE_DIR}/cap-native-server.cpp
111
+ ${SOURCE_DIR}/vendor/cpp-httplib/httplib.cpp
112
+ ${SOURCE_FILES_ARCH}
113
+ ${METALLIB_EMBED_ASM}
114
+ )
115
+
116
+ # Set target properties
117
+ set_target_properties(llama-cpp PROPERTIES
118
+ FRAMEWORK TRUE
119
+ FRAMEWORK_VERSION A
120
+ MACOSX_FRAMEWORK_IDENTIFIER com.arusatech.llama-cpp
121
+ MACOSX_FRAMEWORK_BUNDLE_VERSION 1.0.0
122
+ MACOSX_FRAMEWORK_SHORT_VERSION_STRING 1.0.0
123
+ XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
124
+ XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ""
125
+ XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO
126
+ XCODE_ATTRIBUTE_ENABLE_BITCODE NO
127
+ )
128
+
129
+ # Include directories
130
+ target_include_directories(llama-cpp PRIVATE
131
+ ${SOURCE_DIR}
132
+ ${SOURCE_DIR}/ggml-cpu
133
+ ${SOURCE_DIR}/tools/mtmd
134
+ ${SOURCE_DIR}/vendor/cpp-httplib
135
+ )
136
+
137
+ # ARM64: rely on Clang's default tuning; no x86‑specific -march flags here
138
+
139
+ # Link frameworks via linker flags
140
+ target_link_options(llama-cpp PRIVATE
141
+ "-Wl,-framework,Accelerate"
142
+ "-Wl,-framework,Metal"
143
+ "-Wl,-framework,MetalKit"
144
+ "-Wl,-framework,Foundation"
145
+ "-Wl,-framework,CoreGraphics"
146
+ )
147
+
148
+ # Public headers
149
+ set_target_properties(llama-cpp PROPERTIES
150
+ PUBLIC_HEADER "${PUBLIC_HEADERS}"
151
+ )
152
+
153
+ # Install rules
154
+ install(TARGETS llama-cpp
155
+ FRAMEWORK DESTINATION .
156
+ )
157
+
158
+ message(STATUS "Building llama-cpp for ARM64 (devices)")
159
+ message(STATUS "Source directory: ${SOURCE_DIR}")
160
+ message(STATUS "Architecture: arm64")
161
+
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>English</string>
7
+ <key>CFBundleExecutable</key>
8
+ <string>llama-cpp</string>
9
+ <key>CFBundleIconFile</key>
10
+ <string></string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>com.arusatech.llama-cpp</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string></string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>FMWK</string>
19
+ <key>CFBundleSignature</key>
20
+ <string>????</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>1.0.0</string>
23
+ <key>CFBundleShortVersionString</key>
24
+ <string>1.0.0</string>
25
+ <key>CSResourcesFileMapped</key>
26
+ <true/>
27
+ </dict>
28
+ </plist>