| # 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 () |
|
|