diff --git a/CMakeLists.txt b/CMakeLists.txt index 32542ecd27..82e24b5b25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -246,7 +246,9 @@ set_target_properties(llama PROPERTIES PUBLIC_HEADER "${LLAMA_PUBLIC_HEADERS}") -install(TARGETS llama LIBRARY PUBLIC_HEADER) +install(TARGETS llama + LIBRARY DESTINATION ${LLAMA_LIB_INSTALL_DIR} + PUBLIC_HEADER DESTINATION ${LLAMA_INCLUDE_INSTALL_DIR}) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/llama-config.cmake.in diff --git a/ggml/CMakeLists.txt b/ggml/CMakeLists.txt index 4323afe57b..c53d64d73d 100644 --- a/ggml/CMakeLists.txt +++ b/ggml/CMakeLists.txt @@ -309,6 +309,10 @@ endif () include(CMakePackageConfigHelpers) +set(GGML_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Location of header files") +set(GGML_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Location of library files") +set(GGML_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Location of binary files") + # all public headers set(GGML_PUBLIC_HEADERS include/ggml.h @@ -333,8 +337,10 @@ set_target_properties(ggml PROPERTIES PUBLIC_HEADER "${GGML_PUBLIC_HEADERS}") #if (GGML_METAL) # set_target_properties(ggml PROPERTIES RESOURCE "${CMAKE_CURRENT_SOURCE_DIR}/src/ggml-metal.metal") #endif() -install(TARGETS ggml LIBRARY PUBLIC_HEADER) -install(TARGETS ggml-base LIBRARY) +install(TARGETS ggml + LIBRARY DESTINATION ${GGML_LIB_INSTALL_DIR} + PUBLIC_HEADER DESTINATION ${GGML_INCLUDE_INSTALL_DIR}) +install(TARGETS ggml-base LIBRARY DESTINATION ${GGML_LIB_INSTALL_DIR}) if (GGML_STANDALONE) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ggml.pc.in @@ -378,9 +384,6 @@ set(GGML_VARIABLES_EXPANDED ${variable_set_statements}) # Create the CMake package and set install location. set(GGML_INSTALL_VERSION ${GGML_VERSION}) -set(GGML_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Location of header files") -set(GGML_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Location of library files") -set(GGML_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Location of binary files") configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ggml-config.cmake.in diff --git a/ggml/cmake/ggml-config.cmake.in b/ggml/cmake/ggml-config.cmake.in index 91c9d5cd34..e83850c1d9 100644 --- a/ggml/cmake/ggml-config.cmake.in +++ b/ggml/cmake/ggml-config.cmake.in @@ -112,7 +112,8 @@ if(NOT TARGET ggml::ggml) add_library(ggml::ggml UNKNOWN IMPORTED) set_target_properties(ggml::ggml PROPERTIES - IMPORTED_LOCATION "${GGML_LIBRARY}") + IMPORTED_LOCATION "${GGML_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${GGML_INCLUDE_DIR}") find_library(GGML_BASE_LIBRARY ggml-base REQUIRED