diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake index e9ded4f0..046d26ef 100644 --- a/cmake_modules/ThirdpartyToolchain.cmake +++ b/cmake_modules/ThirdpartyToolchain.cmake @@ -268,15 +268,53 @@ else() endif() endif() -if(DEFINED ENV{PAIMON_JINDOSDK_C_URL}) - set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_URL}") +if(APPLE) + set(JINDOSDK_C_DYNAMIC_LIB_NAME "jindosdk_c.${PAIMON_JINDOSDK_C_BUILD_VERSION}") + set(JINDOSDK_C_DYNAMIC_LIB_FILE "lib${JINDOSDK_C_DYNAMIC_LIB_NAME}.dylib") + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") + set(JINDOSDK_C_BUILD_SHA256_CHECKSUM + "${PAIMON_JINDOSDK_C_MACOS_X86_64_BUILD_SHA256_CHECKSUM}") + if(DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL}) + set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL}") + else() + set_urls(JINDOSDK_C_SOURCE_URL + "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" + ) + endif() + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64") + set(JINDOSDK_C_BUILD_SHA256_CHECKSUM + "${PAIMON_JINDOSDK_C_MACOS_AARCH64_BUILD_SHA256_CHECKSUM}") + if(DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL}) + set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL}") + else() + set_urls(JINDOSDK_C_SOURCE_URL + "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" + ) + endif() + endif() else() - if(EXISTS "${THIRDPARTY_DIR}/${PAIMON_JINDOSDK_C_PKG_NAME}") - set_urls(JINDOSDK_C_SOURCE_URL "${THIRDPARTY_DIR}/${PAIMON_JINDOSDK_C_PKG_NAME}") - else() - set_urls(JINDOSDK_C_SOURCE_URL - "https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz" - ) + set(JINDOSDK_C_DYNAMIC_LIB_NAME "jindosdk_c") + set(JINDOSDK_C_DYNAMIC_LIB_FILE "lib${JINDOSDK_C_DYNAMIC_LIB_NAME}.so") + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64") + set(JINDOSDK_C_BUILD_SHA256_CHECKSUM + "${PAIMON_JINDOSDK_C_LINUX_X86_64_BUILD_SHA256_CHECKSUM}") + if(DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL}) + set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL}") + else() + set_urls(JINDOSDK_C_SOURCE_URL + "https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz" + ) + endif() + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64") + set(JINDOSDK_C_BUILD_SHA256_CHECKSUM + "${PAIMON_JINDOSDK_C_LINUX_AARCH64_BUILD_SHA256_CHECKSUM}") + if(DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL}) + set(JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL}") + else() + set_urls(JINDOSDK_C_SOURCE_URL + "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" + ) + endif() endif() endif() @@ -720,19 +758,19 @@ macro(build_jindosdk_c) set(JINDOSDK_C_HOME "${JINDOSDK_C_PREFIX}") set(JINDOSDK_C_INCLUDE_DIR "${JINDOSDK_C_PREFIX}/include") set(JINDOSDK_C_LIB_DIR "${JINDOSDK_C_PREFIX}/lib/native") - set(JINDOSDK_C_DYNAMIC_LIB "${JINDOSDK_C_LIB_DIR}/libjindosdk_c.so") + set(JINDOSDK_C_DYNAMIC_LIB "${JINDOSDK_C_LIB_DIR}/${JINDOSDK_C_DYNAMIC_LIB_FILE}") # Extract and install jindosdk from precompiled package externalproject_add(jindosdk_ep URL ${JINDOSDK_C_SOURCE_URL} - URL_HASH "SHA256=${PAIMON_JINDOSDK_C_BUILD_SHA256_CHECKSUM}" + URL_HASH "SHA256=${JINDOSDK_C_BUILD_SHA256_CHECKSUM}" ${THIRDPARTY_LOG_OPTIONS} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND bash -c "cp -r /include/* ${JINDOSDK_C_INCLUDE_DIR}" COMMAND bash -c - "cp -r /lib/native/libjindosdk_c.so* ${JINDOSDK_C_LIB_DIR}" + "cp -r /lib/native/${JINDOSDK_C_DYNAMIC_LIB_FILE}* ${JINDOSDK_C_LIB_DIR}" BUILD_BYPRODUCTS "${JINDOSDK_C_DYNAMIC_LIB}") # The include directory must exist before it is referenced by a target. @@ -750,7 +788,7 @@ macro(build_jindosdk_c) install(DIRECTORY "${JINDOSDK_C_LIB_DIR}/" DESTINATION ${CMAKE_INSTALL_LIBDIR} FILES_MATCHING - PATTERN "libjindosdk_c.so*") + PATTERN "${JINDOSDK_C_DYNAMIC_LIB_FILE}*") endmacro() @@ -780,7 +818,8 @@ macro(build_jindosdk_nextarch) "-DCMAKE_INSTALL_PREFIX=${JINDOSDK_NEXTARCH_PREFIX}" "-DCMAKE_CXX_FLAGS=${JINDOSDK_NEXTARCH_CMAKE_CXX_FLAGS}" "-DCMAKE_C_FLAGS=${JINDOSDK_NEXTARCH_CMAKE_C_FLAGS}" - -DJINDOSDK_ROOT=${JINDOSDK_C_DIR_ROOT}) + -DJINDOSDK_ROOT=${JINDOSDK_C_DIR_ROOT} + -DJINDOSDK_LIBRARY_NAME=${JINDOSDK_C_DYNAMIC_LIB_NAME}) externalproject_add(jindosdk-nextarch_ep SOURCE_DIR ${JINDOSDK_NEXTARCH_SOURCE_DIR} diff --git a/third_party/jindosdk-nextarch/cmake_modules/Findjindosdk_c.cmake b/third_party/jindosdk-nextarch/cmake_modules/Findjindosdk_c.cmake index 6b13a7d0..c9d5cb49 100644 --- a/third_party/jindosdk-nextarch/cmake_modules/Findjindosdk_c.cmake +++ b/third_party/jindosdk-nextarch/cmake_modules/Findjindosdk_c.cmake @@ -36,7 +36,7 @@ find_path(JINDOSDK_INCLUDE_DIR jdo_api.h PATH_SUFFIXES "include") find_library(JINDOSDK_LIBRARY - NAMES jindosdk_c + NAMES ${JINDOSDK_LIBRARY_NAME} HINTS ${_jindosdk_path} PATH_SUFFIXES "lib/native") diff --git a/third_party/versions.txt b/third_party/versions.txt index 51c4bec3..5ec744ee 100644 --- a/third_party/versions.txt +++ b/third_party/versions.txt @@ -81,8 +81,14 @@ PAIMON_RAPIDJSON_BUILD_SHA256_CHECKSUM=b9290a9a6d444c8e049bd589ab804e0ccf2b05dc5 PAIMON_RAPIDJSON_PKG_NAME=rapidjson-${PAIMON_RAPIDJSON_BUILD_VERSION}.tar.gz PAIMON_JINDOSDK_C_BUILD_VERSION=6.10.2 -PAIMON_JINDOSDK_C_BUILD_SHA256_CHECKSUM=23e61c9815fab1cd88c369445bdbe1eab02cc09bafed3bb5118ecaf5b2fbc518 -PAIMON_JINDOSDK_C_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}.tar.gz +PAIMON_JINDOSDK_C_LINUX_X86_64_BUILD_SHA256_CHECKSUM=23e61c9815fab1cd88c369445bdbe1eab02cc09bafed3bb5118ecaf5b2fbc518 +PAIMON_JINDOSDK_C_LINUX_X86_64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz +PAIMON_JINDOSDK_C_LINUX_AARCH64_BUILD_SHA256_CHECKSUM=b4afbf6abaa9bad2e3c6bd6a02af2acd81f4dc418b313ef959e1c55f9fb13ebd +PAIMON_JINDOSDK_C_LINUX_AARCH64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux-el7-aarch64.tar.gz +PAIMON_JINDOSDK_C_MACOS_X86_64_BUILD_SHA256_CHECKSUM=3c79e2be018a486423fa63dd5ffe5a9a08477f9cf51ffdae81c0320e2190b489 +PAIMON_JINDOSDK_C_MACOS_X86_64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-x86_64.tar.gz +PAIMON_JINDOSDK_C_MACOS_AARCH64_BUILD_SHA256_CHECKSUM=7db9e47b7311f6ffcaa661a4d73c989640f9bbbbd2ad48e35788aa99d44759db +PAIMON_JINDOSDK_C_MACOS_AARCH64_PKG_NAME=jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-aarch64.tar.gz PAIMON_LUCENE_BUILD_VERSION=3.0.9 PAIMON_LUCENE_BUILD_SHA256_CHECKSUM=4e69e29d5d79a976498ef71eab70c9c88c7014708be4450a9fda7780fe93584e @@ -119,7 +125,10 @@ DEPENDENCIES=( "PAIMON_FMT_URL ${PAIMON_FMT_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/fmtlib/fmt/archive/refs/tags/${PAIMON_FMT_BUILD_VERSION}.tar.gz" "PAIMON_GLOG_URL ${PAIMON_GLOG_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/google/glog/archive/${PAIMON_GLOG_BUILD_VERSION}.tar.gz" "PAIMON_RAPIDJSON_URL ${PAIMON_RAPIDJSON_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/miloyip/rapidjson/archive/${PAIMON_RAPIDJSON_BUILD_VERSION}.tar.gz" - "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" + "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" + "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" + "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" + "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" "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" "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" "PAIMON_JIEBA_URL ${PAIMON_JIEBA_PKG_NAME} ${THIRDPARTY_MIRROR_URL}https://github.com/yanyiwu/cppjieba/archive/refs/tags/${PAIMON_JIEBA_BUILD_VERSION}.tar.gz"