Skip to content

Commit 016ee00

Browse files
committed
feat: support aarch64 architecture for JindoSDK dependency
1 parent bd2e7dc commit 016ee00

2 files changed

Lines changed: 60 additions & 15 deletions

File tree

cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -268,15 +268,51 @@ else()
268268
endif()
269269
endif()
270270

271-
if(DEFINED ENV{PAIMON_JINDOSDK_C_URL})
272-
set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_URL}")
273-
else()
274-
if(EXISTS "${THIRDPARTY_DIR}/${PAIMON_JINDOSDK_C_PKG_NAME}")
275-
set_urls(JINDOSDK_C_SOURCE_URL "${THIRDPARTY_DIR}/${PAIMON_JINDOSDK_C_PKG_NAME}")
276-
else()
277-
set_urls(JINDOSDK_C_SOURCE_URL
278-
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz"
279-
)
271+
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
272+
set(JINDOSDK_C_DYNAMIC_LIB_FILE "libjindosdk_c.so")
273+
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64")
274+
set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
275+
"${PAIMON_JINDOSDK_C_LINUX_X86_64_BUILD_SHA256_CHECKSUM}")
276+
if(DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL})
277+
set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL}")
278+
else()
279+
set_urls(JINDOSDK_C_SOURCE_URL
280+
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz"
281+
)
282+
endif()
283+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64|ARM64")
284+
set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
285+
"${PAIMON_JINDOSDK_C_LINUX_AARCH64_BUILD_SHA256_CHECKSUM}")
286+
if(DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL})
287+
set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL}")
288+
else()
289+
set_urls(JINDOSDK_C_SOURCE_URL
290+
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux-el7-aarch64.tar.gz"
291+
)
292+
endif()
293+
endif()
294+
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
295+
set(JINDOSDK_C_DYNAMIC_LIB_FILE "libjindo-csdk.dylib")
296+
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64")
297+
set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
298+
"${PAIMON_JINDOSDK_C_MACOS_X86_64_BUILD_SHA256_CHECKSUM}")
299+
if(DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL})
300+
set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL}")
301+
else()
302+
set_urls(JINDOSDK_C_SOURCE_URL
303+
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-x86_64.tar.gz"
304+
)
305+
endif()
306+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64|ARM64")
307+
set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
308+
"${PAIMON_JINDOSDK_C_MACOS_AARCH64_BUILD_SHA256_CHECKSUM}")
309+
if(DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL})
310+
set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL}")
311+
else()
312+
set_urls(JINDOSDK_C_SOURCE_URL
313+
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-aarch64.tar.gz"
314+
)
315+
endif()
280316
endif()
281317
endif()
282318

@@ -720,19 +756,19 @@ macro(build_jindosdk_c)
720756
set(JINDOSDK_C_HOME "${JINDOSDK_C_PREFIX}")
721757
set(JINDOSDK_C_INCLUDE_DIR "${JINDOSDK_C_PREFIX}/include")
722758
set(JINDOSDK_C_LIB_DIR "${JINDOSDK_C_PREFIX}/lib/native")
723-
set(JINDOSDK_C_DYNAMIC_LIB "${JINDOSDK_C_LIB_DIR}/libjindosdk_c.so")
759+
set(JINDOSDK_C_DYNAMIC_LIB "${JINDOSDK_C_LIB_DIR}/${JINDOSDK_C_DYNAMIC_LIB_FILE}")
724760

725761
# Extract and install jindosdk from precompiled package
726762
externalproject_add(jindosdk_ep
727763
URL ${JINDOSDK_C_SOURCE_URL}
728-
URL_HASH "SHA256=${PAIMON_JINDOSDK_C_BUILD_SHA256_CHECKSUM}"
764+
URL_HASH "SHA256=${JINDOSDK_C_BUILD_SHA256_CHECKSUM}"
729765
${THIRDPARTY_LOG_OPTIONS}
730766
CONFIGURE_COMMAND ""
731767
BUILD_COMMAND ""
732768
INSTALL_COMMAND bash -c
733769
"cp -r <SOURCE_DIR>/include/* ${JINDOSDK_C_INCLUDE_DIR}"
734770
COMMAND bash -c
735-
"cp -r <SOURCE_DIR>/lib/native/libjindosdk_c.so* ${JINDOSDK_C_LIB_DIR}"
771+
"cp -r <SOURCE_DIR>/lib/native/${JINDOSDK_C_DYNAMIC_LIB_FILE}* ${JINDOSDK_C_LIB_DIR}"
736772
BUILD_BYPRODUCTS "${JINDOSDK_C_DYNAMIC_LIB}")
737773

738774
# The include directory must exist before it is referenced by a target.

third_party/versions.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,14 @@ PAIMON_RAPIDJSON_BUILD_SHA256_CHECKSUM=b9290a9a6d444c8e049bd589ab804e0ccf2b05dc5
8181
PAIMON_RAPIDJSON_PKG_NAME=rapidjson-${PAIMON_RAPIDJSON_BUILD_VERSION}.tar.gz
8282

8383
PAIMON_JINDOSDK_C_BUILD_VERSION=6.10.2
84-
PAIMON_JINDOSDK_C_BUILD_SHA256_CHECKSUM=23e61c9815fab1cd88c369445bdbe1eab02cc09bafed3bb5118ecaf5b2fbc518
85-
PAIMON_JINDOSDK_C_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}.tar.gz
84+
PAIMON_JINDOSDK_C_LINUX_X86_64_BUILD_SHA256_CHECKSUM=23e61c9815fab1cd88c369445bdbe1eab02cc09bafed3bb5118ecaf5b2fbc518
85+
PAIMON_JINDOSDK_C_LINUX_X86_64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz
86+
PAIMON_JINDOSDK_C_LINUX_AARCH64_BUILD_SHA256_CHECKSUM=b4afbf6abaa9bad2e3c6bd6a02af2acd81f4dc418b313ef959e1c55f9fb13ebd
87+
PAIMON_JINDOSDK_C_LINUX_AARCH64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux-el7-aarch64.tar.gz
88+
PAIMON_JINDOSDK_C_MACOS_X86_64_BUILD_SHA256_CHECKSUM=3c79e2be018a486423fa63dd5ffe5a9a08477f9cf51ffdae81c0320e2190b489
89+
PAIMON_JINDOSDK_C_MACOS_X86_64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-x86_64.tar.gz
90+
PAIMON_JINDOSDK_C_MACOS_AARCH64_BUILD_SHA256_CHECKSUM=7db9e47b7311f6ffcaa661a4d73c989640f9bbbbd2ad48e35788aa99d44759db
91+
PAIMON_JINDOSDK_C_MACOS_AARCH64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-aarch64.tar.gz
8692

8793
PAIMON_LUCENE_BUILD_VERSION=3.0.9
8894
PAIMON_LUCENE_BUILD_SHA256_CHECKSUM=4e69e29d5d79a976498ef71eab70c9c88c7014708be4450a9fda7780fe93584e
@@ -119,7 +125,10 @@ DEPENDENCIES=(
119125
"PAIMON_FMT_URL ${PAIMON_FMT_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/fmtlib/fmt/archive/refs/tags/${PAIMON_FMT_BUILD_VERSION}.tar.gz"
120126
"PAIMON_GLOG_URL ${PAIMON_GLOG_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/google/glog/archive/${PAIMON_GLOG_BUILD_VERSION}.tar.gz"
121127
"PAIMON_RAPIDJSON_URL ${PAIMON_RAPIDJSON_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/miloyip/rapidjson/archive/${PAIMON_RAPIDJSON_BUILD_VERSION}.tar.gz"
122-
"PAIMON_JINDOSDK_C_URL ${PAIMON_JINDOSDK_C_PKG_NAME} https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz"
128+
"PAIMON_JINDOSDK_C_LINUX_X86_64_URL ${PAIMON_JINDOSDK_C_LINUX_X86_64_PKG_NAME} https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz"
129+
"PAIMON_JINDOSDK_C_LINUX_AARCH64_URL ${PAIMON_JINDOSDK_C_LINUX_AARCH64_PKG_NAME} https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux-el7-aarch64.tar.gz"
130+
"PAIMON_JINDOSDK_C_MACOS_X86_64_URL ${PAIMON_JINDOSDK_C_MACOS_X86_64_PKG_NAME} https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-x86_64.tar.gz"
131+
"PAIMON_JINDOSDK_C_MACOS_AARCH64_URL ${PAIMON_JINDOSDK_C_MACOS_AARCH64_PKG_NAME} https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-aarch64.tar.gz"
123132
"PAIMON_LUCENE_URL ${PAIMON_LUCENE_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/luceneplusplus/LucenePlusPlus/archive/refs/tags/rel_${PAIMON_LUCENE_BUILD_VERSION}.tar.gz"
124133
"PAIMON_LIMONP_URL ${PAIMON_LIMONP_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/yanyiwu/limonp/archive/refs/tags/v${PAIMON_LIMONP_BUILD_VERSION}.tar.gz"
125134
"PAIMON_JIEBA_URL ${PAIMON_JIEBA_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/yanyiwu/cppjieba/archive/refs/tags/${PAIMON_JIEBA_BUILD_VERSION}.tar.gz"

0 commit comments

Comments
 (0)