diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a4c17202..ea7175c9f 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,6 @@ include(cmake/StandardProjectSettings.cmake) include(cmake/PreventInSourceBuilds.cmake) include(cmake/PackageAddTest.cmake) include(cmake/Cache.cmake) -include(cmake/Python.cmake) option(BUILD_MQT_CORE_BINDINGS "Build the MQT Core Python bindings" OFF) if(BUILD_MQT_CORE_BINDINGS) @@ -20,6 +19,7 @@ if(BUILD_MQT_CORE_BINDINGS) set(BINDINGS ON CACHE INTERNAL "Enable settings related to Python bindings") + include(cmake/Python.cmake) find_python() endif() diff --git a/cmake/ExternalDependencies.cmake b/cmake/ExternalDependencies.cmake index c5e65d95d..327c5e731 100644 --- a/cmake/ExternalDependencies.cmake +++ b/cmake/ExternalDependencies.cmake @@ -70,19 +70,5 @@ if(BUILD_MQT_CORE_TESTS) endif() endif() -if(BUILD_MQT_CORE_BINDINGS) - if(NOT SKBUILD) - # Manually detect the installed pybind11 package and import it into CMake. - execute_process( - COMMAND "${Python_EXECUTABLE}" -m pybind11 --cmakedir - OUTPUT_STRIP_TRAILING_WHITESPACE - OUTPUT_VARIABLE pybind11_DIR) - list(APPEND CMAKE_PREFIX_PATH "${pybind11_DIR}") - endif() - - # add pybind11 library - find_package(pybind11 CONFIG REQUIRED) -endif() - # Make all declared dependencies available. FetchContent_MakeAvailable(${FETCH_PACKAGES}) diff --git a/cmake/Python.cmake b/cmake/Python.cmake index f240896b1..262c91f38 100644 --- a/cmake/Python.cmake +++ b/cmake/Python.cmake @@ -16,4 +16,20 @@ function(find_python) Python 3.8 REQUIRED COMPONENTS Interpreter Development.Module OPTIONAL_COMPONENTS Development.SABIModule) + + if(BUILD_MQT_CORE_BINDINGS) + if(NOT SKBUILD) + # Manually detect the installed pybind11 package and import it into CMake. + execute_process( + COMMAND "${Python_EXECUTABLE}" -m pybind11 --cmakedir + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE pybind11_DIR) + list(APPEND CMAKE_PREFIX_PATH "${pybind11_DIR}") + endif() + + message(STATUS "Python executable: ${Python_EXECUTABLE}") + + # add pybind11 library + find_package(pybind11 CONFIG REQUIRED) + endif() endfunction()