mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-01-15 09:38:00 +08:00
update arch detection in cmake
This commit is contained in:
parent
617190880d
commit
636d646b9c
@ -146,7 +146,7 @@ if(MI_OVERRIDE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(WIN32)
|
||||
if (NOT MI_WIN_REDIRECT)
|
||||
# use a negative define for backward compatibility
|
||||
list(APPEND mi_defines MI_WIN_NOREDIRECT=1)
|
||||
@ -324,19 +324,24 @@ endif()
|
||||
# Determine architecture
|
||||
set(MI_OPT_ARCH_FLAGS "")
|
||||
set(MI_ARCH "unknown")
|
||||
if(APPLE)
|
||||
list(FIND CMAKE_OSX_ARCHITECTURES "x86_64" x64_index)
|
||||
list(FIND CMAKE_OSX_ARCHITECTURES "arm64" arm64_index)
|
||||
if(x64_index GREATER_EQUAL 0)
|
||||
set(MI_ARCH "x64")
|
||||
elseif(arm64_index GREATER_EQUAL 0)
|
||||
set(MI_ARCH "arm64")
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "x64")
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86|i[3456]86" OR CMAKE_GENERATOR_PLATFORM MATCHES "x86|Win32")
|
||||
set(MI_ARCH "x86")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|x64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "x64")
|
||||
set(MI_ARCH "x64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|armv8.?" OR CMAKE_GENERATOR_PLATFORM MATCHES "ARM64")
|
||||
set(MI_ARCH "arm64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
||||
set(MI_ARCH "arm32")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv")
|
||||
if(CMAKE_SIZEOF_VOID_P==4)
|
||||
set(MI_ARCH "riscv32")
|
||||
else
|
||||
set(MI_ARCH "riscv64")
|
||||
endif()
|
||||
else()
|
||||
set(MI_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
||||
endif()
|
||||
message(STATUS "Architecture: ${MI_ARCH}")
|
||||
|
||||
# Check /proc/cpuinfo for an SV39 MMU and limit the virtual address bits.
|
||||
# (this will skip the aligned hinting in that case. Issue #939, #949)
|
||||
@ -528,12 +533,12 @@ if(MI_BUILD_SHARED)
|
||||
)
|
||||
if(WIN32 AND MI_WIN_REDIRECT)
|
||||
# On windows, link and copy the mimalloc redirection dll too.
|
||||
if(MI_ARCH STREQUAL "arm64")
|
||||
set(MIMALLOC_REDIRECT_SUFFIX "-arm64")
|
||||
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
if(MI_ARCH STREQUAL "x64")
|
||||
set(MIMALLOC_REDIRECT_SUFFIX "")
|
||||
elseif(MI_ARCH STREQUAL "x86")
|
||||
set(MIMALLOC_REDIRECT_SUFFIX "32")
|
||||
else()
|
||||
set(MIMALLOC_REDIRECT_SUFFIX "")
|
||||
set(MIMALLOC_REDIRECT_SUFFIX "-${MI_ARCH}") # -arm64 etc.
|
||||
endif()
|
||||
|
||||
target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect${MIMALLOC_REDIRECT_SUFFIX}.lib)
|
||||
|
Loading…
x
Reference in New Issue
Block a user