@@ -10,14 +10,22 @@ function(llama_cpp_python_install_target target)
1010 return ()
1111 endif ()
1212
13- install (
14- TARGETS ${target}
15- LIBRARY DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
16- RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
17- ARCHIVE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
18- FRAMEWORK DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
19- RESOURCE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
20- )
13+ if (EMSCRIPTEN)
14+ set_target_properties (${target} PROPERTIES
15+ OUTPUT_NAME "${target} .cpython-00-wasm32-emscripten"
16+ )
17+ endif ()
18+
19+ if (NOT EMSCRIPTEN)
20+ install (
21+ TARGETS ${target}
22+ LIBRARY DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
23+ RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
24+ ARCHIVE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
25+ FRAMEWORK DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
26+ RESOURCE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR } /llama_cpp/lib
27+ )
28+ endif ()
2129 install (
2230 TARGETS ${target}
2331 LIBRARY DESTINATION ${SKBUILD_PLATLIB_DIR} /llama_cpp/lib
@@ -65,6 +73,33 @@ if (LLAMA_BUILD)
6573 # Disable building curl support
6674 set (LLAMA_CURL OFF CACHE BOOL "llama.cpp: enable curl" FORCE )
6775
76+ if (EMSCRIPTEN)
77+ if (DEFINED EMSCRIPTEN_SYSTEM_PROCESSOR)
78+ set (CMAKE_SYSTEM_PROCESSOR ${EMSCRIPTEN_SYSTEM_PROCESSOR} CACHE STRING "Target processor" FORCE )
79+ else ()
80+ set (CMAKE_SYSTEM_PROCESSOR wasm32 CACHE STRING "Target processor" FORCE )
81+ endif ()
82+
83+ set (LLAVA_BUILD OFF CACHE BOOL "Build llava shared library and install alongside python package" FORCE )
84+ set (LLAMA_WASM_MEM64 OFF CACHE BOOL "llama.cpp: enable wasm64 memory" FORCE )
85+ set (GGML_NATIVE OFF CACHE BOOL "ggml: enable -march=native" FORCE )
86+ set (GGML_OPENMP OFF CACHE BOOL "ggml: use OpenMP" FORCE )
87+ set (GGML_METAL OFF CACHE BOOL "ggml: use Metal" FORCE )
88+ set (GGML_BLAS OFF CACHE BOOL "ggml: use BLAS" FORCE )
89+ set (GGML_CUDA OFF CACHE BOOL "ggml: use CUDA" FORCE )
90+ set (GGML_HIP OFF CACHE BOOL "ggml: use HIP" FORCE )
91+ set (GGML_VULKAN OFF CACHE BOOL "ggml: use Vulkan" FORCE )
92+ set (GGML_OPENCL OFF CACHE BOOL "ggml: use OpenCL" FORCE )
93+ set (GGML_RPC OFF CACHE BOOL "ggml: use RPC" FORCE )
94+
95+ # Pyodide auto-loads side modules from top-level site-packages/lib
96+ # before Python imports run, so keep upstream installs package-local.
97+ set (CMAKE_INSTALL_BINDIR llama_cpp/lib CACHE PATH "Install binaries" FORCE )
98+ set (CMAKE_INSTALL_INCLUDEDIR llama_cpp/include CACHE PATH "Install headers" FORCE )
99+ set (CMAKE_INSTALL_LIBDIR llama_cpp/lib CACHE PATH "Install libraries" FORCE )
100+ set (LLAMA_BUILD_COMMON OFF CACHE BOOL "Build llama.cpp common library" FORCE )
101+ endif ()
102+
68103 # Architecture detection and settings for Apple platforms
69104 if (APPLE )
70105 # Get the target architecture
0 commit comments