Skip to content

[BUG]: 'Unknown CMake command "python3_add_library" in pybind11NewTools.cmake #3996

@stridera

Description

@stridera

Required prerequisites

Problem description

Attempting to build throws an error in tools/pybind11NewTools.cmake throws the following error:
Unknown CMake command "python3_add_library".

Adding find_package (Python3 COMPONENTS Interpreter Development) fixes it.
image

Reproducible example code

src/cmakelists.txt

configure_file(${CMAKE_SOURCE_DIR}/third_party/pybind11/CMakeLists.txt ${CMAKE_BINARY_DIR}/external-projects/pybind11/CMakeLists.txt)
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/pybind11"
)
execute_process(COMMAND "${CMAKE_COMMAND}" --build .
    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/pybind11"
)

# Add pybind11 makefile
add_subdirectory("${CMAKE_BINARY_DIR}/third_party/pybind11"
                 "${CMAKE_BINARY_DIR}/third_party/pybind11"
                 EXCLUDE_FROM_ALL
)

set(PYBIND11_CPP_STANDARD -std=c++11)
# Force Pybind11 not to share resources with other pybind modules.
# With this definition we force the ABI version to be unique and not risk crashes on different modules.
# (workaround for RS5-10582; see also https://github.com/pybind/pybind11/issues/2898)
add_definitions(-DPYBIND11_COMPILER_TYPE="_librs_abi")
include_directories(${CMAKE_BINARY_DIR}/third_party/pybind11/include)

pybind11_add_module(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES} ${PYBIND_FILES})

/third_party/pybind11/

#  minimum required cmake version: 3.1.0
cmake_minimum_required(VERSION 3.1.0)

project(pybind11-download NONE)

include(ExternalProject)
ExternalProject_Add(
        pybind11
        PREFIX .
        GIT_REPOSITORY "https://github.com/pybind/pybind11.git"
        GIT_TAG "914c06fb252b6cc3727d0eedab6736e88a3fcb01" # 2.9.2
        SOURCE_DIR "${CMAKE_BINARY_DIR}/third_party/pybind11"
        # Override default steps with no action, we just want the clone step.
        CONFIGURE_COMMAND ""
        BUILD_COMMAND ""
        INSTALL_COMMAND ""
)

Metadata

Metadata

Assignees

No one assigned

    Labels

    triageNew bug, unverified

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions