@@ -2,33 +2,37 @@ cmake_minimum_required(VERSION 3.4...3.22)
22
33project (llama_cpp)
44
5- option (FORCE_CMAKE "Force CMake build of Python bindings" OFF )
5+ option (LLAMA_BUILD "Build llama.cpp shared library and install alongside python package" ON )
66
7- set (FORCE_CMAKE $ENV{FORCE_CMAKE} )
87
9- if (UNIX AND NOT FORCE_CMAKE)
10- add_custom_command (
11- OUTPUT ${CMAKE_CURRENT_SOURCE_DIR} /vendor/llama.cpp/libllama.so
12- COMMAND make libllama.so
13- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /vendor/llama.cpp
14- )
15- add_custom_target (
16- run ALL
17- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR} /vendor/llama.cpp/libllama.so
18- )
19- install (
20- FILES ${CMAKE_CURRENT_SOURCE_DIR} /vendor/llama.cpp/libllama.so
21- DESTINATION llama_cpp
22- )
23- else ()
8+ if (LLAMA_BUILD)
249 set (BUILD_SHARED_LIBS "On" )
10+ if (APPLE )
11+ # Need to disable these llama.cpp flags on Apple
12+ # otherwise users may encounter invalid instruction errors
13+ set (LLAMA_AVX "Off" CACHE BOOL "llama: enable AVX" FORCE)
14+ set (LLAMA_AVX2 "Off" CACHE BOOL "llama: enable AVX2" FORCE)
15+ set (LLAMA_FMA "Off" CACHE BOOL "llama: enable FMA" FORCE)
16+ set (LLAMA_F16C "Off" CACHE BOOL "llama: enable F16C" FORCE)
17+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native -mtune=native" )
18+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=native" )
19+ endif ()
2520 add_subdirectory (vendor/llama.cpp)
2621 install (
2722 TARGETS llama
28- LIBRARY DESTINATION llama_cpp
29- RUNTIME DESTINATION llama_cpp
30- ARCHIVE DESTINATION llama_cpp
31- FRAMEWORK DESTINATION llama_cpp
32- RESOURCE DESTINATION llama_cpp
23+ LIBRARY DESTINATION ${SKBUILD_PLATLIB_DIR} /llama_cpp
24+ RUNTIME DESTINATION ${SKBUILD_PLATLIB_DIR} /llama_cpp
25+ ARCHIVE DESTINATION ${SKBUILD_PLATLIB_DIR} /llama_cpp
26+ FRAMEWORK DESTINATION ${SKBUILD_PLATLIB_DIR} /llama_cpp
27+ RESOURCE DESTINATION ${SKBUILD_PLATLIB_DIR} /llama_cpp
28+ )
29+ # Temporary fix for https://github.com/scikit-build/scikit-build-core/issues/374
30+ install (
31+ TARGETS llama
32+ LIBRARY DESTINATION ${CMAKE_CURRENT_SOURCE_DIR} /llama_cpp
33+ RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR} /llama_cpp
34+ ARCHIVE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR} /llama_cpp
35+ FRAMEWORK DESTINATION ${CMAKE_CURRENT_SOURCE_DIR} /llama_cpp
36+ RESOURCE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR} /llama_cpp
3337 )
3438endif ()
0 commit comments