# SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM-MLU project cmake_minimum_required(VERSION 3.16) project(vllm_mlu_C) function(detect_debian10) if(EXISTS "/etc/os-release") file(READ "/etc/os-release" os_release) if(os_release MATCHES "PRETTY_NAME=\"Debian GNU/Linux 10" OR os_release MATCHES "VERSION_ID=\"10") set(DEBIAN_10 TRUE PARENT_SCOPE) message(STATUS "Detected Debian 10 (buster)") endif() endif() endfunction() detect_debian10() if(DEBIAN_10) find_program(GCC_PATH "gcc" PATHS "/usr/local/bin") if(GCC_PATH) message(STATUS "Using GCC on Debian 10: ${GCC_PATH}") set(CMAKE_C_COMPILER "${GCC_PATH}") set(CMAKE_CXX_COMPILER "/usr/local/bin/g++") else() message(WARNING "Debian 10 detected but gcc not found!") endif() endif() set(CMAKE_CXX_STANDARD 17) include(${CMAKE_CURRENT_LIST_DIR}/cmake/utils.cmake) # Suppress potential warnings about unused manually-specified variables set(ignoreMe "${VLLM_PYTHON_PATH}") set(PYTHON_SUPPORTED_VERSIONS "3.9" "3.10" "3.11" "3.12") find_package(pybind11 REQUIRED) append_cmake_prefix_path("torch" "torch.utils.cmake_prefix_path") set(VLLM_MLU_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}") find_package(Torch REQUIRED) if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRINGS "Build type Release/Debug (default Release)" FORCE) endif() file(GLOB VLLM_MLU_SRC ${CMAKE_CURRENT_SOURCE_DIR}/csrc/*.cpp) include_directories( ${pybind11_INCLUDE_DIRS} ${PYTHON_INCLUDE_PATH} ${TORCH_INCLUDE_DIRS} $ENV{NEUWARE_HOME}/include ) pybind11_add_module(vllm_mlu_C ${VLLM_MLU_SRC}) target_link_directories( vllm_mlu_C PRIVATE $ENV{NEUWARE_HOME}/lib64 ) target_link_libraries( vllm_mlu_C PUBLIC ${TORCH_LIBRARIES} libcndrv.so ) target_link_options(vllm_mlu_C PRIVATE "-Wl,-rpath,$ORIGIN:$ORIGIN/lib") install(TARGETS vllm_mlu_C DESTINATION ${VLLM_MLU_INSTALL_PATH})