diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index d8287108d4c..97b8a876d48 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -230,16 +230,28 @@ find_package(Arrow REQUIRED) include_directories(SYSTEM ${ARROW_INCLUDE_DIR}) function(bundle_arrow_lib library_path) + get_filename_component(LIBRARY_DIR ${${library_path}} DIRECTORY) get_filename_component(LIBRARY_NAME ${${library_path}} NAME_WE) configure_file(${${library_path}} ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} COPYONLY) - configure_file(${${library_path}}.${ARROW_ABI_VERSION} - ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${ARROW_ABI_VERSION} - COPYONLY) - configure_file(${${library_path}}.${ARROW_SO_VERSION} - ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${ARROW_SO_VERSION} - COPYONLY) + + if (APPLE) + configure_file(${LIBRARY_DIR}/${LIBRARY_NAME}.${ARROW_ABI_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} + ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}.${ARROW_ABI_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} + COPYONLY) + configure_file(${LIBRARY_DIR}/${LIBRARY_NAME}.${ARROW_SO_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} + ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}.${ARROW_SO_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX} + COPYONLY) + else() + configure_file(${${library_path}}.${ARROW_ABI_VERSION} + ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${ARROW_ABI_VERSION} + COPYONLY) + configure_file(${${library_path}}.${ARROW_SO_VERSION} + ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${ARROW_SO_VERSION} + COPYONLY) + endif() + SET(ARROW_SHARED_LIB ${BUILD_OUTPUT_ROOT_DIRECTORY}/${LIBRARY_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) endfunction(bundle_arrow_lib) diff --git a/python/setup.py b/python/setup.py index 148224afb05..108a63fa92c 100644 --- a/python/setup.py +++ b/python/setup.py @@ -219,7 +219,12 @@ def move_lib(lib_name): lib_filename = (shared_library_prefix + lib_name + shared_library_suffix) # Also copy libraries with ABI/SO version suffix - libs = glob.glob(pjoin(self.build_type, lib_filename) + '*') + if sys.platform == 'darwin': + lib_pattern = (shared_library_prefix + lib_name + + ".*" + shared_library_suffix[1:]) + libs = glob.glob(pjoin(self.build_type, lib_pattern)) + else: + libs = glob.glob(pjoin(self.build_type, lib_filename) + '*') # Longest suffix library should be copied, all others symlinked libs.sort(key=lambda s: -len(s)) print(libs, libs[0])