llama.cpp/cmake/FindMUSA.cmake

102 lines
2.6 KiB
CMake

# find MUSA things
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
if(DEFINED ENV{MUSA_HOME})
set(MUSA_HOME $ENV{MUSA_HOME})
else()
set(MUSA_HOME /usr/local/musa)
endif()
set(MUSA_MCC ${MUSA_HOME}/bin/mcc)
if (DEFINED ENV{MUSA_ARCH})
set(MUSA_ARCH $ENV{MUSA_ARCH})
elseif(NOT MUSA_ARCH)
set(MUSA_ARCH "21")
endif()
if(NOT MUSA_INCLUDE_DIR)
set(MUSA_INCLUDE_DIR ${MUSA_HOME}/include)
endif()
if(NOT MUSA_LIBRARY_DIR)
set(MUSA_LIBRARY_DIR ${MUSA_HOME}/lib)
endif()
if(NOT MUSA_LIBRARIES)
find_library(
MUSA_MUSA_LIBRARY
NAMES libmusa.so
PATHS ${MUSA_LIBRARY_DIR}
)
find_library(
MUSA_MUBLAS_LIBRARY
NAMES libmublas.so
PATHS ${MUSA_LIBRARY_DIR}
)
find_library(
MUSA_MUSART_LIBRARY
NAMES libmusart.so
PATHS ${MUSA_LIBRARY_DIR}
)
if(MUSA_MUSA_LIBRARY AND MUSA_MUBLAS_LIBRARY AND MUSA_MUSART_LIBRARY)
set(MUSA_LIBRARIES "${MUSA_MUSA_LIBRARY};${MUSA_MUBLAS_LIBRARY};${MUSA_MUSART_LIBRARY}")
set(MUSA_MUSA_LIBRARY CACHE STRING "${MUSA_MUSA_LIBRARY}")
set(MUSA_MUBLAS_LIBRARY CACHE STRING "${MUSA_MUBLAS_LIBRARY}")
set(MUSA_MUSART_LIBRARY CACHE STRING "${MUSA_MUSART_LIBRARY}")
endif()
endif()
if(MUSA_LIBRARIES)
if(NOT TARGET MUSA::musa)
add_library(MUSA::musa SHARED IMPORTED)
set_target_properties(MUSA::musa PROPERTIES
IMPORTED_LOCATION ${MUSA_MUSA_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${MUSA_INCLUDE_DIR}
)
endif()
if(NOT TARGET MUSA::mublas)
add_library(MUSA::mublas SHARED IMPORTED)
set_target_properties(MUSA::mublas PROPERTIES
IMPORTED_LOCATION ${MUSA_MUBLAS_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${MUSA_INCLUDE_DIR}
)
endif()
if(NOT TARGET MUSA::musart)
add_library(MUSA::musart SHARED IMPORTED)
set_target_properties(MUSA::musart PROPERTIES
IMPORTED_LOCATION ${MUSA_MUSART_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${MUSA_INCLUDE_DIR}
)
endif()
set(MUSA_INCLUDE_DIR ${MUSA_INCLUDE_DIR} CACHE STRING "")
set(MUSA_LIBRARY_DIR ${MUSA_LIBRARY_DIR} CACHE STRING "")
set(MUSA_LIBRARIES ${MUSA_LIBRARIES} CACHE STRING "")
endif()
find_package_handle_standard_args(
MUSA
REQUIRED_VARS
MUSA_ARCH
MUSA_MCC
MUSA_INCLUDE_DIR
MUSA_LIBRARIES
MUSA_LIBRARY_DIR
)
mark_as_advanced(
MUSA_INCLUDE_DIR
MUSA_LIBRARIES
MUSA_LIBRARY_DIR
CMAKE_MUSA_ARCHITECTURES
CMAKE_MUSA_COMPILER
)