pybind11 icon indicating copy to clipboard operation
pybind11 copied to clipboard

[BUG]: Unknown CMake command "python_add_library" in pybind11NewTools.cmake

Open rhaschke opened this issue 1 year ago • 4 comments

Required prerequisites

  • [X] Make sure you've read the documentation. Your issue may be addressed there.
  • [X] Search the issue tracker and Discussions to verify that this hasn't already been reported. +1 or comment there if it has.
  • [X] Consider asking first in the Gitter chat room or in a Discussion.

What version (or hash if on master) of pybind11 are you using?

2.9.1, master

Problem description

Using the new FindPython mode but the old pybind11_add_module, I get the following error:

Errors     << py_binding_tools:cmake /homes/rhaschke/src/ros/logs/py_binding_tools/build.cmake.000.log                                                                                                                                                                         
CMake Error at /usr/lib/cmake/pybind11/pybind11NewTools.cmake:205 (python_add_library):
  Unknown CMake command "python_add_library".
Call Stack (most recent call first):
  /opt/ros/one/share/pybind11_catkin/cmake/pybind11_catkin.cmake:27 (pybind11_add_module)
  CMakeLists.txt:44 (pybind_add_module)

The cmake function python_add_library was renamed to Python_add_library and I think, the corresponding calls in pybind11NewTools.cmake should be adapted accordingly: https://github.com/pybind/pybind11/blob/741d86f2e3527b667ba85d273a5eea19a0978ef5/tools/pybind11NewTools.cmake#L262 However, I'm surprised that I am the first running into that issue. Maybe I'm missing something else?

Reproducible example code

find_package(Python 3 REQUIRED)
find_package(pybind11 REQUIRED)
pybind11_add_module(py_binding_tools_module src/py_binding_tools.cpp)

Is this a regression? Put the last known working version here if it is.

Not a regression

rhaschke avatar Dec 19 '24 10:12 rhaschke

I come across with the same issue, when pybind is built with NVIDIA TensorRT-LLM

-- Found Torch: /home/ma-user/anaconda3/envs/py10-llm/lib/python3.10/site-packages/torch/lib/libtorch.so
-- TORCH_CXX_FLAGS: -D_GLIBCXX_USE_CXX11_ABI=0 -- Building for TensorRT version: 8.6.1, library version: 8 -- Using MPI_C_INCLUDE_DIRS: /usr/lib/x86_64-linux-gnu/openmpi/include;/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -- Using MPI_C_LIBRARIES: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so -- CMAKE_SYSTEM_PROCESSOR: x86_64 -- Operating System: ubuntu, 20.04 -- Performing Test HAS_FLTO -- Performing Test HAS_FLTO - Success -- Found pybind11: /home/ma-user/anaconda3/envs/py10-llm/lib/python3.10/site-packages/pybind11/include (found version "2.13.6") CMake Error at /home/ma-user/anaconda3/envs/py10-llm/lib/python3.10/site-packages/pybind11/share/cmake/pybind11/pybind11NewTools.cmake:267 (python_add_library): Unknown CMake command "python_add_library". Call Stack (most recent call first): tensorrt_llm/pybind/CMakeLists.txt:36 (pybind11_add_module)

2012zzhao avatar Dec 24 '24 10:12 2012zzhao

I come across with the same issue, when pybind is built with NVIDIA TensorRT-LLM

-- Found Torch: /home/ma-user/anaconda3/envs/py10-llm/lib/python3.10/site-packages/torch/lib/libtorch.so -- TORCH_CXX_FLAGS: -D_GLIBCXX_USE_CXX11_ABI=0 -- Building for TensorRT version: 8.6.1, library version: 8 -- Using MPI_C_INCLUDE_DIRS: /usr/lib/x86_64-linux-gnu/openmpi/include;/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -- Using MPI_C_LIBRARIES: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so -- CMAKE_SYSTEM_PROCESSOR: x86_64 -- Operating System: ubuntu, 20.04 -- Performing Test HAS_FLTO -- Performing Test HAS_FLTO - Success -- Found pybind11: /home/ma-user/anaconda3/envs/py10-llm/lib/python3.10/site-packages/pybind11/include (found version "2.13.6") CMake Error at /home/ma-user/anaconda3/envs/py10-llm/lib/python3.10/site-packages/pybind11/share/cmake/pybind11/pybind11NewTools.cmake:267 (python_add_library): Unknown CMake command "python_add_library". Call Stack (most recent call first): tensorrt_llm/pybind/CMakeLists.txt:36 (pybind11_add_module)

I come across with the same issue. just replace python_add_library by python3_add_library in FindPythonLibsNew.cmake

wangdongxuking61 avatar Feb 26 '25 06:02 wangdongxuking61