102 lines
2.6 KiB
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
|
|
)
|