diff --git a/python/cmake_modules/FindPythonLibsNew.cmake b/python/cmake_modules/FindPythonLibsNew.cmake index 0f2295aa43b..5cb65c9f1a4 100644 --- a/python/cmake_modules/FindPythonLibsNew.cmake +++ b/python/cmake_modules/FindPythonLibsNew.cmake @@ -224,7 +224,11 @@ FUNCTION(PYTHON_ADD_MODULE _NAME ) SET_TARGET_PROPERTIES(${_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") ELSE() - TARGET_LINK_LIBRARIES(${_NAME} ${PYTHON_LIBRARIES}) + # In general, we should not link against libpython as we do not embed + # the Python interpreter. The python binary itself can then define where + # the symbols should loaded from. + SET_TARGET_PROPERTIES(${_NAME} PROPERTIES LINK_FLAGS + "-Wl,-undefined,dynamic_lookup") ENDIF() IF(PYTHON_MODULE_${_NAME}_BUILD_SHARED) SET_TARGET_PROPERTIES(${_NAME} PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}") diff --git a/python/cmake_modules/UseCython.cmake b/python/cmake_modules/UseCython.cmake index 3b1c201edff..cee6066d31d 100644 --- a/python/cmake_modules/UseCython.cmake +++ b/python/cmake_modules/UseCython.cmake @@ -163,7 +163,6 @@ function( cython_add_module _name pyx_target_name generated_files) include_directories( ${PYTHON_INCLUDE_DIRS} ) python_add_module( ${_name} ${_generated_files} ${other_module_sources} ) add_dependencies( ${_name} ${pyx_target_name}) - target_link_libraries( ${_name} ${PYTHON_LIBRARIES} ) endfunction() include( CMakeParseArguments )