mirror of
https://github.com/openRuyi-Project/openRuyi.git
synced 2026-04-28 11:03:42 +00:00
86 lines
3.4 KiB
Diff
86 lines
3.4 KiB
Diff
--- arrow-apache-arrow-23.0.1/cpp/cmake_modules/ThirdpartyToolchain.cmake.orig
|
|
+++ arrow-apache-arrow-23.0.1/cpp/cmake_modules/ThirdpartyToolchain.cmake
|
|
@@ -2321,72 +2321,21 @@
|
|
if(ARROW_MIMALLOC)
|
|
if(NOT ARROW_ENABLE_THREADING)
|
|
message(FATAL_ERROR "Can't use mimalloc with ARROW_ENABLE_THREADING=OFF")
|
|
- endif()
|
|
-
|
|
- message(STATUS "Building (vendored) mimalloc from source")
|
|
- # We only use a vendored mimalloc as we want to control its build options.
|
|
-
|
|
- set(MIMALLOC_LIB_BASE_NAME "mimalloc")
|
|
- if(${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
|
|
- set(MIMALLOC_LIB_BASE_NAME "${MIMALLOC_LIB_BASE_NAME}-${LOWERCASE_BUILD_TYPE}")
|
|
endif()
|
|
|
|
- set(MIMALLOC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/mimalloc_ep/src/mimalloc_ep")
|
|
- set(MIMALLOC_INCLUDE_DIR "${MIMALLOC_PREFIX}/include")
|
|
- set(MIMALLOC_STATIC_LIB
|
|
- "${MIMALLOC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${MIMALLOC_LIB_BASE_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
|
- )
|
|
+ message(STATUS "Using system mimalloc shared library")
|
|
+ find_package(mimalloc REQUIRED)
|
|
|
|
- set(MIMALLOC_C_FLAGS ${EP_C_FLAGS})
|
|
- if(MINGW)
|
|
- # Workaround https://github.com/microsoft/mimalloc/issues/910 on RTools40
|
|
- set(MIMALLOC_C_FLAGS "${MIMALLOC_C_FLAGS} -DERROR_COMMITMENT_MINIMUM=635")
|
|
+ if(NOT TARGET mimalloc::mimalloc)
|
|
+ add_library(mimalloc::mimalloc SHARED IMPORTED)
|
|
+ find_library(MIMALLOC_LIB mimalloc)
|
|
+ find_path(MIMALLOC_INCLUDE_DIR mimalloc.h)
|
|
+ set_target_properties(mimalloc::mimalloc PROPERTIES
|
|
+ IMPORTED_LOCATION "${MIMALLOC_LIB}")
|
|
+ target_include_directories(mimalloc::mimalloc INTERFACE "${MIMALLOC_INCLUDE_DIR}")
|
|
endif()
|
|
|
|
- set(MIMALLOC_PATCH_COMMAND "")
|
|
- if(${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
|
|
- find_program(PATCH patch REQUIRED)
|
|
- set(MIMALLOC_PATCH_COMMAND ${PATCH} -p1 -i
|
|
- ${CMAKE_CURRENT_LIST_DIR}/mimalloc-1138.patch)
|
|
- endif()
|
|
-
|
|
- set(MIMALLOC_CMAKE_ARGS
|
|
- ${EP_COMMON_CMAKE_ARGS}
|
|
- "-DCMAKE_C_FLAGS=${MIMALLOC_C_FLAGS}"
|
|
- "-DCMAKE_INSTALL_PREFIX=${MIMALLOC_PREFIX}"
|
|
- -DMI_INSTALL_TOPLEVEL=ON
|
|
- -DMI_OVERRIDE=OFF
|
|
- -DMI_LOCAL_DYNAMIC_TLS=ON
|
|
- -DMI_BUILD_OBJECT=OFF
|
|
- -DMI_BUILD_SHARED=OFF
|
|
- -DMI_BUILD_TESTS=OFF
|
|
- # GH-47229: Force mimalloc to generate armv8.0 binary
|
|
- -DMI_NO_OPT_ARCH=ON)
|
|
-
|
|
- externalproject_add(mimalloc_ep
|
|
- ${EP_COMMON_OPTIONS}
|
|
- URL ${MIMALLOC_SOURCE_URL}
|
|
- URL_HASH "SHA256=${ARROW_MIMALLOC_BUILD_SHA256_CHECKSUM}"
|
|
- PATCH_COMMAND ${MIMALLOC_PATCH_COMMAND}
|
|
- CMAKE_ARGS ${MIMALLOC_CMAKE_ARGS}
|
|
- BUILD_BYPRODUCTS "${MIMALLOC_STATIC_LIB}")
|
|
-
|
|
- file(MAKE_DIRECTORY ${MIMALLOC_INCLUDE_DIR})
|
|
-
|
|
- add_library(mimalloc::mimalloc STATIC IMPORTED)
|
|
- set_target_properties(mimalloc::mimalloc PROPERTIES IMPORTED_LOCATION
|
|
- "${MIMALLOC_STATIC_LIB}")
|
|
- target_include_directories(mimalloc::mimalloc BEFORE
|
|
- INTERFACE "${MIMALLOC_INCLUDE_DIR}")
|
|
- target_link_libraries(mimalloc::mimalloc INTERFACE Threads::Threads)
|
|
- if(WIN32)
|
|
- target_link_libraries(mimalloc::mimalloc INTERFACE "bcrypt.lib" "psapi.lib")
|
|
- endif()
|
|
- add_dependencies(mimalloc::mimalloc mimalloc_ep)
|
|
-
|
|
- list(APPEND ARROW_BUNDLED_STATIC_LIBS mimalloc::mimalloc)
|
|
-
|
|
- set(mimalloc_VENDORED TRUE)
|
|
+ set(mimalloc_VENDORED FALSE)
|
|
endif()
|
|
|
|
# ----------------------------------------------------------------------
|