@@ -2,33 +2,37 @@ cmake_minimum_required(VERSION 3.4...3.22)
2
2
3
3
project (llama_cpp)
4
4
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 )
6
6
7
- set (FORCE_CMAKE $ENV{FORCE_CMAKE} )
8
7
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)
24
9
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 ()
25
20
add_subdirectory (vendor/llama.cpp)
26
21
install (
27
22
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
33
37
)
34
38
endif ()
0 commit comments