File size: 1,400 Bytes
4a28d4d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # Copyright (c) OpenMMLab. All rights reserved.
cmake_minimum_required(VERSION 3.11)
project(_turbomind LANGUAGES CXX CUDA)
find_package(pybind11 CONFIG)
if(NOT pybind11_FOUND)
execute_process(COMMAND "pybind11-config" "--cmakedir"
RESULT_VARIABLE _COMMAND_SUCCESS
OUTPUT_VARIABLE pybind11_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE)
find_package(pybind11 CONFIG)
endif()
pybind11_add_module(${PROJECT_NAME} bind.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE turbomind xgrammar)
pybind11_add_module(_xgrammar xgrammar_bind.cpp)
target_link_libraries(_xgrammar PRIVATE core xgrammar)
target_compile_features(_xgrammar PRIVATE cxx_std_14)
if (CALL_FROM_SETUP_PY)
string(REPLACE "." ";" _ver ${CMAKE_CUDA_COMPILER_VERSION})
list(GET _ver 0 CUDA_MAJOR)
if(CUDA_MAJOR GREATER_EQUAL "13")
set(_INSTALL_CUDA_RPATH
"\$ORIGIN"
"\$ORIGIN/../../nvidia/nccl/lib/"
"\$ORIGIN/../../nvidia/cu${CUDA_MAJOR}/lib/"
)
else()
set(_INSTALL_CUDA_RPATH
"\$ORIGIN"
"\$ORIGIN/../../nvidia/nccl/lib/"
"\$ORIGIN/../../nvidia/cuda_runtime/lib/"
"\$ORIGIN/../../nvidia/cublas/lib/"
"\$ORIGIN/../../nvidia/curand/lib/"
)
endif()
set_target_properties(${PROJECT_NAME} PROPERTIES
BUILD_RPATH "\$ORIGIN"
INSTALL_RPATH "${_INSTALL_CUDA_RPATH}"
)
endif ()
|