# CMake package configuration file for @PROJECT_NAME@ @PACKAGE_INIT@ set(SP3_WITH_SOFAEXPORTER @SP3_WITH_SOFAEXPORTER@) set(SP3_PYTHON_PACKAGES_DIRECTORY @SP3_PYTHON_PACKAGES_DIRECTORY@) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") include(SofaPython3Tools) # Find Python3 if(NOT TARGET Python::Python) if(CMAKE_VERSION VERSION_LESS "3.24.0") find_package(Python @PythonMAJMIN@ EXACT QUIET REQUIRED COMPONENTS Interpreter Development) else() find_package(Python @PythonMAJMIN@ EXACT QUIET REQUIRED COMPONENTS Interpreter Development GLOBAL) endif() endif() # Find pybind11 if(NOT TARGET pybind11) # Save PYTHON_* vars set(PYTHON_VERSION_RESET "${PYTHON_VERSION}") set(PYTHON_EXECUTABLE_RESET "${PYTHON_EXECUTABLE}") set(PYTHON_LIBRARIES_RESET "${PYTHON_LIBRARIES}") set(PYTHON_INCLUDE_DIRS_RESET "${PYTHON_INCLUDE_DIRS}") set(PYTHON_LIBRARY_RESET "${PYTHON_LIBRARY}") set(PYTHON_INCLUDE_DIR_RESET "${PYTHON_INCLUDE_DIR}") # Change PYTHON_* vars before pybind11 find_package # to be sure that pybind11 relies on the right Python version set(PYTHON_VERSION "${Python_VERSION}" CACHE STRING "" FORCE) set(PYTHON_EXECUTABLE "${Python_EXECUTABLE}" CACHE FILEPATH "" FORCE) set(PYTHON_LIBRARIES "${Python_LIBRARIES}" CACHE STRING "" FORCE) set(PYTHON_INCLUDE_DIRS "${Python_INCLUDE_DIRS}" CACHE STRING "" FORCE) if(EXISTS "${Python_LIBRARY}") set(PYTHON_LIBRARY "${Python_LIBRARY}" CACHE INTERNAL "" FORCE) elseif(EXISTS "${Python_LIBRARIES}") set(PYTHON_LIBRARY "${Python_LIBRARIES}" CACHE INTERNAL "" FORCE) endif() if(EXISTS "${Python_INCLUDE_DIR}") set(PYTHON_INCLUDE_DIR "${Python_INCLUDE_DIR}" CACHE INTERNAL "" FORCE) elseif(EXISTS "${Python_INCLUDE_DIRS}") set(PYTHON_INCLUDE_DIR "${Python_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE) endif() if(CMAKE_VERSION VERSION_LESS "3.24.0") find_package(pybind11 @pybind11_VERSION@ QUIET REQUIRED CONFIG) else() find_package(pybind11 @pybind11_VERSION@ QUIET REQUIRED CONFIG GLOBAL) endif() # Reset PYTHON_* vars set(PYTHON_VERSION "${PYTHON_VERSION_RESET}" CACHE STRING "" FORCE) set(PYTHON_EXECUTABLE "${PYTHON_EXECUTABLE_RESET}" CACHE FILEPATH "" FORCE) set(PYTHON_LIBRARIES "${PYTHON_LIBRARIES_RESET}" CACHE STRING "" FORCE) set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIRS_RESET}" CACHE STRING "" FORCE) set(PYTHON_LIBRARY "${PYTHON_LIBRARY_RESET}" CACHE INTERNAL "" FORCE) set(PYTHON_INCLUDE_DIR "${PYTHON_INCLUDE_DIR_RESET}" CACHE INTERNAL "" FORCE) endif() # Find SofaPython3::XXXXX if(NOT SofaPython3_FIND_COMPONENTS) set(SofaPython3_FIND_COMPONENTS Plugin Bindings) endif() foreach(component ${SofaPython3_FIND_COMPONENTS}) if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${component}Config.cmake") # For requested component, execute its "config" script set_and_check(config_file ${CMAKE_CURRENT_LIST_DIR}/${component}Config.cmake) include(${config_file}) set(SofaPython3_${component}_FOUND True) else() set(SofaPython3_FOUND False) set(SofaPython3_NOT_FOUND_MESSAGE "Unsupported component: ${component}.") endif() endforeach() # Check that the component/target is there. check_required_components(@PROJECT_NAME@)