diff --git a/bindings/CMakeLists.txt b/bindings/CMakeLists.txt index 260264b8..772e4ac9 100644 --- a/bindings/CMakeLists.txt +++ b/bindings/CMakeLists.txt @@ -14,7 +14,7 @@ if(HDE_COMPILE_PYTHON_BINDINGS) # Function to generate __init__.py file for both hde and wearables # It contains logic to ensure that it works fine on Windows when installing in arbitrary folders, # See https://docs.python.org/3.8/library/os.html#os.add_dll_directory - function(hde_generate_init_py_file GENERATION_LOCATION_OF_INIT_PY_FILE INSTALLATION_LOCATION_OF_INIT_PY_FILE) + function(hde_generate_init_py_file GENERATION_LOCATION_OF_INIT_PY_FILE INSTALLATION_LOCATION_OF_INIT_PY_FILE PYBIND11_OUTPUT_NAME) file(WRITE ${GENERATION_LOCATION_OF_INIT_PY_FILE}/__init__.py "") if(WIN32 AND BUILD_SHARED_LIBS) if(IS_ABSOLUTE ${INSTALLATION_LOCATION_OF_INIT_PY_FILE}) @@ -33,7 +33,7 @@ if(HDE_COMPILE_PYTHON_BINDINGS) file(APPEND ${GENERATION_LOCATION_OF_INIT_PY_FILE}/__init__.py "\n") endif() - file(APPEND ${GENERATION_LOCATION_OF_INIT_PY_FILE}/__init__.py "from .bindings import *\n") + file(APPEND ${GENERATION_LOCATION_OF_INIT_PY_FILE}/__init__.py "from .${PYBIND11_OUTPUT_NAME} import *\n") endfunction() # Install the resulting Python package for the active interpreter diff --git a/bindings/python-hde/CMakeLists.txt b/bindings/python-hde/CMakeLists.txt index a4adc190..7b6905e2 100644 --- a/bindings/python-hde/CMakeLists.txt +++ b/bindings/python-hde/CMakeLists.txt @@ -26,21 +26,22 @@ target_link_libraries(pybind11_hde PRIVATE ${pybind_link_libraries}) # # The generated Python dynamic module must have the same name as the pybind11 -# # module, i.e. `bindings`. +# # module, i.e. `hde_bindings`. +set(PYBIND11_BINDINGS_OUTPUT_NAME "hde_bindings") set_target_properties(pybind11_hde PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${HDE_PYTHON_PACKAGE}" - OUTPUT_NAME "bindings") + OUTPUT_NAME ${PYBIND11_BINDINGS_OUTPUT_NAME}) # Output package is: # # hde # |-- __init__.py (generated from main bindings CMake file) -# `-- bindings. +# `-- hde_bindings. install(TARGETS pybind11_hde DESTINATION ${PYTHON_INSTDIR}) # Create the __init__.py file -hde_generate_init_py_file("${HDE_PYTHON_PACKAGE}" "${PYTHON_INSTDIR}") +hde_generate_init_py_file("${HDE_PYTHON_PACKAGE}" "${PYTHON_INSTDIR}" ${PYBIND11_BINDINGS_OUTPUT_NAME}) # Install the __init__.py file install(FILES "${HDE_PYTHON_PACKAGE}/__init__.py" DESTINATION ${PYTHON_INSTDIR}) diff --git a/bindings/python-wearables/CMakeLists.txt b/bindings/python-wearables/CMakeLists.txt index 6fbe792a..671da988 100644 --- a/bindings/python-wearables/CMakeLists.txt +++ b/bindings/python-wearables/CMakeLists.txt @@ -26,20 +26,21 @@ target_link_libraries(pybind11_wearables PRIVATE ${pybind_link_libraries}) # # The generated Python dynamic module must have the same name as the pybind11 -# # module, i.e. `bindings`. +# # module, i.e. `wearables_bindings`. +set(PYBIND11_BINDINGS_OUTPUT_NAME "wearables_bindings") set_target_properties(pybind11_wearables PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${WEARABLES_PYTHON_PACKAGE}" - OUTPUT_NAME "bindings") + OUTPUT_NAME ${PYBIND11_BINDINGS_OUTPUT_NAME}) # Output package is: # # bipedal_locomotion # |-- __init__.py (generated from main bindings CMake file) -# `-- bindings. +# `-- wearables_bindings. install(TARGETS pybind11_wearables DESTINATION ${PYTHON_INSTDIR}) -hde_generate_init_py_file("${WEARABLES_PYTHON_PACKAGE}" "${PYTHON_INSTDIR}") +hde_generate_init_py_file("${WEARABLES_PYTHON_PACKAGE}" "${PYTHON_INSTDIR}" ${PYBIND11_BINDINGS_OUTPUT_NAME}) # Install the __init__.py file install(FILES "${WEARABLES_PYTHON_PACKAGE}/__init__.py" DESTINATION ${PYTHON_INSTDIR})