Skip to content

Commit e51f200

Browse files
committed
fix: Fix installation location for shared libraries
1 parent d5f6a15 commit e51f200

File tree

1 file changed

+25
-45
lines changed

1 file changed

+25
-45
lines changed

CMakeLists.txt

Lines changed: 25 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,28 @@ project(llama_cpp)
55
option(LLAMA_BUILD "Build llama.cpp shared library and install alongside python package" ON)
66
option(LLAVA_BUILD "Build llava shared library and install alongside python package" ON)
77

8-
if(SKBUILD_STATE STREQUAL "editable")
9-
# Install into the source directory
10-
# Temporary fix for https://github.com/scikit-build/scikit-build-core/issues/374
11-
set(LLAMA_CPP_PYTHON_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/llama_cpp/lib)
12-
else()
13-
set(LLAMA_CPP_PYTHON_INSTALL_DIR ${SKBUILD_PLATLIB_DIR}/llama_cpp/lib)
14-
endif()
15-
16-
message(STATUS "LLAMA_CPP_PYTHON_INSTALL_DIR: ${LLAMA_CPP_PYTHON_INSTALL_DIR}")
8+
function(llama_cpp_python_install_target target)
9+
install(
10+
TARGETS ${target}
11+
LIBRARY DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/llama_cpp/lib
12+
RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/llama_cpp/lib
13+
ARCHIVE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/llama_cpp/lib
14+
FRAMEWORK DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/llama_cpp/lib
15+
RESOURCE DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/llama_cpp/lib
16+
)
17+
install(
18+
TARGETS ${target}
19+
LIBRARY DESTINATION ${SKBUILD_PLATLIB_DIR}/llama_cpp/lib
20+
RUNTIME DESTINATION ${SKBUILD_PLATLIB_DIR}/llama_cpp/lib
21+
ARCHIVE DESTINATION ${SKBUILD_PLATLIB_DIR}/llama_cpp/lib
22+
FRAMEWORK DESTINATION ${SKBUILD_PLATLIB_DIR}/llama_cpp/lib
23+
RESOURCE DESTINATION ${SKBUILD_PLATLIB_DIR}/llama_cpp/lib
24+
)
25+
set_target_properties(${target} PROPERTIES
26+
INSTALL_RPATH "$ORIGIN"
27+
BUILD_WITH_INSTALL_RPATH TRUE
28+
)
29+
endfunction()
1730

1831
if (LLAMA_BUILD)
1932
set(BUILD_SHARED_LIBS "On")
@@ -45,30 +58,8 @@ if (LLAMA_BUILD)
4558
endif()
4659

4760
add_subdirectory(vendor/llama.cpp)
48-
install(
49-
TARGETS llama
50-
LIBRARY DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
51-
RUNTIME DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
52-
ARCHIVE DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
53-
FRAMEWORK DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
54-
RESOURCE DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
55-
)
56-
set_target_properties(llama PROPERTIES
57-
INSTALL_RPATH "$ORIGIN"
58-
BUILD_WITH_INSTALL_RPATH TRUE
59-
)
60-
install(
61-
TARGETS ggml
62-
LIBRARY DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
63-
RUNTIME DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
64-
ARCHIVE DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
65-
FRAMEWORK DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
66-
RESOURCE DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
67-
)
68-
set_target_properties(ggml PROPERTIES
69-
INSTALL_RPATH "$ORIGIN"
70-
BUILD_WITH_INSTALL_RPATH TRUE
71-
)
61+
llama_cpp_python_install_target(llama)
62+
llama_cpp_python_install_target(ggml)
7263
# Workaround for Windows + CUDA https://github.com/abetlen/llama-cpp-python/issues/563
7364
if (WIN32 AND (LLAMA_CUDA OR LLAMA_CUBLAS))
7465
install(
@@ -94,17 +85,6 @@ if (LLAMA_BUILD)
9485
if (WIN32)
9586
set_target_properties(llava_shared PROPERTIES CUDA_ARCHITECTURES OFF)
9687
endif()
97-
install(
98-
TARGETS llava_shared
99-
LIBRARY DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
100-
RUNTIME DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
101-
ARCHIVE DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
102-
FRAMEWORK DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
103-
RESOURCE DESTINATION ${LLAMA_CPP_PYTHON_INSTALL_DIR}
104-
)
105-
set_target_properties(llava PROPERTIES
106-
INSTALL_RPATH "$ORIGIN"
107-
BUILD_WITH_INSTALL_RPATH TRUE
108-
)
88+
llama_cpp_python_install_target(llava_shared)
10989
endif()
11090
endif()

0 commit comments

Comments
 (0)