[BUG]: Unknown CMake command "python_add_library" in pybind11NewTools.cmake
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
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, 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