Skip to content

Commit 0bcdd43

Browse files
committed
Python: make sure that SymEngine can be found.
1 parent 64075a9 commit 0bcdd43

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/bindings/python/CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,14 @@ endif()
7777
if(MSVC)
7878
get_runtime_dlls_from_target(${LIBXML2_TARGET} TARGET_FILE LIBXML2_DLLS)
7979
get_runtime_dlls_from_target(${LIBXML2_TARGET} TARGET_FILE_NAME LIBXML2_DLL_NAMES)
80+
get_runtime_dlls_from_target(${SYMENGINE_TARGET} TARGET_FILE SYMENGINE_DLLS)
81+
get_runtime_dlls_from_target(${SYMENGINE_TARGET} TARGET_FILE_NAME SYMENGINE_DLL_NAMES)
8082
get_runtime_dlls_from_target(${ZLIB_TARGET} TARGET_FILE ZLIB_DLLS)
8183
get_runtime_dlls_from_target(${ZLIB_TARGET} TARGET_FILE_NAME ZLIB_DLL_NAMES)
82-
list(APPEND FINALISE_PYTHON_BINDINGS_ARGUMENTS -DTARGET_FILE_NAME_zlib=${ZLIB_DLL_NAMES})
83-
list(APPEND FINALISE_PYTHON_BINDINGS_ARGUMENTS -DTARGET_FILE_NAME_libxml2=${LIBXML2_DLL_NAMES})
84+
get_target_property(SYMENGINE_DLL_LOC ${SYMENGINE_TARGET} IMPORTED_LOCATION_DEBUG)
85+
get_filename_component(SYMENGINE_DLL_DIR "${SYMENGINE_DLL_LOC}" DIRECTORY)
86+
file(GLOB SYMENGINE_TRANSITIVE_DLLS "${SYMENGINE_DLL_DIR}/*.dll")
87+
list(REMOVE_ITEM SYMENGINE_TRANSITIVE_DLLS ${SYMENGINE_DLL_LOC})
8488
endif()
8589

8690
set(SWIG_PYTHON_BINDINGS_TARGETS)
@@ -197,7 +201,7 @@ set(FINALISE_PYTHON_BINDINGS_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/finalise_python_
197201
configure_file(${PROJECT_SOURCE_DIR}/cmake/finalise_python_package.in.cmake ${FINALISE_PYTHON_BINDINGS_SCRIPT} @ONLY)
198202
add_custom_command(TARGET python_bindings POST_BUILD
199203
COMMAND ${CMAKE_COMMAND} ${FINALISE_PYTHON_BINDINGS_ARGUMENTS} -P ${FINALISE_PYTHON_BINDINGS_SCRIPT}
200-
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:cellml> ${_GENERATOR_EXPRESSION_LIBCELLML_SONAME} ${LIBXML2_DLLS} ${ZLIB_DLLS} ${LIBCELLML_PYTHON_PACKAGE_DIR}
204+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:cellml> ${_GENERATOR_EXPRESSION_LIBCELLML_SONAME} ${LIBXML2_DLLS} ${ZLIB_DLLS} ${SYMENGINE_DLLS} ${SYMENGINE_TRANSITIVE_DLLS} ${LIBCELLML_PYTHON_PACKAGE_DIR}
201205
COMMAND ${CMAKE_COMMAND} -E copy_directory ${_SWIG_GENERATED_PYTHON_FILES_DIR} ${LIBCELLML_PYTHON_PACKAGE_DIR}
202206
COMMENT "Finalise preparation of libCellML Python bindings."
203207
)

0 commit comments

Comments
 (0)