@@ -30,6 +30,7 @@ if(CMAKE_GENERATOR_TOOLSET)
3030endif ()
3131
3232string (TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE)
33+ string (TOLOWER ${CMAKE_BUILD_TYPE} LOWERCASE_BUILD_TYPE)
3334
3435set (EP_COMMON_TOOLCHAIN "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} "
3536 "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} " )
@@ -268,22 +269,65 @@ else()
268269 endif ()
269270endif ()
270271
271- if (DEFINED ENV{PAIMON_JINDOSDK_C_URL})
272- set (JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_URL} " )
272+ if (APPLE )
273+ set (JINDOSDK_C_DYNAMIC_LIB_NAME "jindosdk_c.${PAIMON_JINDOSDK_C_BUILD_VERSION} " )
274+ set (JINDOSDK_C_DYNAMIC_LIB_FILE "lib${JINDOSDK_C_DYNAMIC_LIB_NAME} .dylib" )
275+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64" )
276+ set (JINDOSDK_C_BUILD_SHA256_CHECKSUM
277+ "${PAIMON_JINDOSDK_C_MACOS_X86_64_BUILD_SHA256_CHECKSUM} " )
278+ if (DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL})
279+ set (JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL} " )
280+ else ()
281+ set_urls (JINDOSDK_C_SOURCE_URL
282+ "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"
283+ )
284+ endif ()
285+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64" )
286+ set (JINDOSDK_C_BUILD_SHA256_CHECKSUM
287+ "${PAIMON_JINDOSDK_C_MACOS_AARCH64_BUILD_SHA256_CHECKSUM} " )
288+ if (DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL})
289+ set (JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL} " )
290+ else ()
291+ set_urls (JINDOSDK_C_SOURCE_URL
292+ "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"
293+ )
294+ endif ()
295+ endif ()
273296else ()
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- )
297+ set (JINDOSDK_C_DYNAMIC_LIB_NAME "jindosdk_c" )
298+ set (JINDOSDK_C_DYNAMIC_LIB_FILE "lib${JINDOSDK_C_DYNAMIC_LIB_NAME} .so" )
299+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64" )
300+ set (JINDOSDK_C_BUILD_SHA256_CHECKSUM
301+ "${PAIMON_JINDOSDK_C_LINUX_X86_64_BUILD_SHA256_CHECKSUM} " )
302+ if (DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL})
303+ set (JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL} " )
304+ else ()
305+ set_urls (JINDOSDK_C_SOURCE_URL
306+ "https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION} /jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION} -linux.tar.gz"
307+ )
308+ endif ()
309+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64" )
310+ set (JINDOSDK_C_BUILD_SHA256_CHECKSUM
311+ "${PAIMON_JINDOSDK_C_LINUX_AARCH64_BUILD_SHA256_CHECKSUM} " )
312+ if (DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL})
313+ set (JINDOSDK_C_SOURCE_URL "$ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL} " )
314+ else ()
315+ set_urls (JINDOSDK_C_SOURCE_URL
316+ "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"
317+ )
318+ endif ()
280319 endif ()
281320endif ()
282321
283322set (EP_CXX_FLAGS "${CMAKE_CXX_FLAGS} " )
284323set (EP_C_FLAGS "${CMAKE_C_FLAGS} " )
285324string (REPLACE "-Wglobal-constructors" "" EP_CXX_FLAGS ${EP_CXX_FLAGS} )
286325string (REPLACE "-Wglobal-constructors" "" EP_C_FLAGS ${EP_C_FLAGS} )
326+ # Remove coverage flags from third-party dependencies to avoid gcov dependency
327+ string (REPLACE "--coverage" "" EP_CXX_FLAGS ${EP_CXX_FLAGS} )
328+ string (REPLACE "--coverage" "" EP_C_FLAGS ${EP_C_FLAGS} )
329+ string (REPLACE "-DCOVERAGE_BUILD" "" EP_CXX_FLAGS ${EP_CXX_FLAGS} )
330+ string (REPLACE "-DCOVERAGE_BUILD" "" EP_C_FLAGS ${EP_C_FLAGS} )
287331if (NOT MSVC_TOOLCHAIN)
288332 # Set -fPIC on all external projects
289333 string (APPEND EP_CXX_FLAGS
@@ -311,6 +355,10 @@ set(EP_COMMON_CMAKE_ARGS
311355 -DCMAKE_C_FLAGS=${EP_C_FLAGS}
312356 -DCMAKE_INSTALL_LIBDIR=lib)
313357
358+ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.30" )
359+ list (APPEND EP_COMMON_CMAKE_ARGS -DCMAKE_POLICY_VERSION_MINIMUM=3.5)
360+ endif ()
361+
314362macro (build_lucene )
315363 message (STATUS "Building lucene from source" )
316364
@@ -720,19 +768,19 @@ macro(build_jindosdk_c)
720768 set (JINDOSDK_C_HOME "${JINDOSDK_C_PREFIX} " )
721769 set (JINDOSDK_C_INCLUDE_DIR "${JINDOSDK_C_PREFIX} /include" )
722770 set (JINDOSDK_C_LIB_DIR "${JINDOSDK_C_PREFIX} /lib/native" )
723- set (JINDOSDK_C_DYNAMIC_LIB "${JINDOSDK_C_LIB_DIR} /libjindosdk_c.so " )
771+ set (JINDOSDK_C_DYNAMIC_LIB "${JINDOSDK_C_LIB_DIR} /${JINDOSDK_C_DYNAMIC_LIB_FILE} " )
724772
725773 # Extract and install jindosdk from precompiled package
726774 externalproject_add (jindosdk_ep
727775 URL ${JINDOSDK_C_SOURCE_URL}
728- URL_HASH "SHA256=${PAIMON_JINDOSDK_C_BUILD_SHA256_CHECKSUM } "
776+ URL_HASH "SHA256=${JINDOSDK_C_BUILD_SHA256_CHECKSUM } "
729777 ${THIRDPARTY_LOG_OPTIONS}
730778 CONFIGURE_COMMAND ""
731779 BUILD_COMMAND ""
732780 INSTALL_COMMAND bash -c
733781 "cp -r <SOURCE_DIR>/include/* ${JINDOSDK_C_INCLUDE_DIR} "
734782 COMMAND bash -c
735- "cp -r <SOURCE_DIR>/lib/native/libjindosdk_c.so * ${JINDOSDK_C_LIB_DIR} "
783+ "cp -r <SOURCE_DIR>/lib/native/${JINDOSDK_C_DYNAMIC_LIB_FILE} * ${JINDOSDK_C_LIB_DIR} "
736784 BUILD_BYPRODUCTS "${JINDOSDK_C_DYNAMIC_LIB} " )
737785
738786 # The include directory must exist before it is referenced by a target.
@@ -750,7 +798,7 @@ macro(build_jindosdk_c)
750798 install (DIRECTORY "${JINDOSDK_C_LIB_DIR} /"
751799 DESTINATION ${CMAKE_INSTALL_LIBDIR}
752800 FILES_MATCHING
753- PATTERN "libjindosdk_c.so *" )
801+ PATTERN "${JINDOSDK_C_DYNAMIC_LIB_FILE} *" )
754802
755803endmacro ()
756804
@@ -780,7 +828,8 @@ macro(build_jindosdk_nextarch)
780828 "-DCMAKE_INSTALL_PREFIX=${JINDOSDK_NEXTARCH_PREFIX} "
781829 "-DCMAKE_CXX_FLAGS=${JINDOSDK_NEXTARCH_CMAKE_CXX_FLAGS} "
782830 "-DCMAKE_C_FLAGS=${JINDOSDK_NEXTARCH_CMAKE_C_FLAGS} "
783- -DJINDOSDK_ROOT=${JINDOSDK_C_DIR_ROOT} )
831+ -DJINDOSDK_ROOT=${JINDOSDK_C_DIR_ROOT}
832+ -DJINDOSDK_LIBRARY_NAME=${JINDOSDK_C_DYNAMIC_LIB_NAME} )
784833
785834 externalproject_add (jindosdk-nextarch_ep
786835 SOURCE_DIR ${JINDOSDK_NEXTARCH_SOURCE_DIR}
@@ -1048,7 +1097,6 @@ macro(build_arrow)
10481097 file (MAKE_DIRECTORY "${ARROW_INCLUDE_DIR} " )
10491098
10501099 set (ARROW_BUILD_DIR "${CMAKE_BINARY_DIR} /arrow" )
1051- string (TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
10521100 set (ARROW_STATIC_LIB
10531101 "${ARROW_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} arrow${CMAKE_STATIC_LIBRARY_SUFFIX} "
10541102 )
@@ -1097,7 +1145,8 @@ macro(build_arrow)
10971145 -DZSTD_ROOT=${ARROW_ZSTD_ROOT}
10981146 -DZLIB_ROOT=${ARROW_ZLIB_ROOT}
10991147 -DSnappy_ROOT=${ARROW_SNAPPY_ROOT}
1100- -DLZ4_ROOT=${ARROW_LZ4_ROOT} )
1148+ -DLZ4_ROOT=${ARROW_LZ4_ROOT}
1149+ -DBUILD_WARNING_LEVEL=PRODUCTION) # ignore warnings under gcc8
11011150
11021151 set (ARROW_CONFIGURE SOURCE_SUBDIR "cpp" CMAKE_ARGS ${ARROW_CMAKE_ARGS} )
11031152 set (PATCH_FILE "${CMAKE_CURRENT_LIST_DIR} /arrow.diff" )
@@ -1121,38 +1170,38 @@ macro(build_arrow)
11211170 PROPERTIES IMPORTED_LOCATION "${ARROW_PREFIX} /lib/libarrow.a"
11221171 INTERFACE_INCLUDE_DIRECTORIES "${ARROW_INCLUDE_DIR} "
11231172 INTERFACE_LINK_DIRECTORIES
1124- "${ARROW_BUILD_DIR} /${CMAKE_BUILD_TYPE_LOWER } " )
1173+ "${ARROW_BUILD_DIR} /${LOWERCASE_BUILD_TYPE } " )
11251174
11261175 add_library (arrow_dataset STATIC IMPORTED )
11271176 set_target_properties (arrow_dataset
11281177 PROPERTIES IMPORTED_LOCATION
11291178 "${ARROW_PREFIX} /lib/libarrow_dataset.a"
11301179 INTERFACE_INCLUDE_DIRECTORIES "${ARROW_INCLUDE_DIR} "
11311180 INTERFACE_LINK_DIRECTORIES
1132- "${ARROW_BUILD_DIR} /${CMAKE_BUILD_TYPE_LOWER } " )
1181+ "${ARROW_BUILD_DIR} /${LOWERCASE_BUILD_TYPE } " )
11331182
11341183 add_library (arrow_acero STATIC IMPORTED )
11351184 set_target_properties (arrow_acero
11361185 PROPERTIES IMPORTED_LOCATION
11371186 "${ARROW_PREFIX} /lib/libarrow_acero.a"
11381187 INTERFACE_INCLUDE_DIRECTORIES "${ARROW_INCLUDE_DIR} "
11391188 INTERFACE_LINK_DIRECTORIES
1140- "${ARROW_BUILD_DIR} /${CMAKE_BUILD_TYPE_LOWER } " )
1189+ "${ARROW_BUILD_DIR} /${LOWERCASE_BUILD_TYPE } " )
11411190
11421191 add_library (parquet STATIC IMPORTED )
11431192 set_target_properties (parquet
11441193 PROPERTIES IMPORTED_LOCATION "${ARROW_PREFIX} /lib/libparquet.a"
11451194 INTERFACE_INCLUDE_DIRECTORIES "${ARROW_INCLUDE_DIR} "
11461195 INTERFACE_LINK_DIRECTORIES
1147- "${ARROW_BUILD_DIR} /${CMAKE_BUILD_TYPE_LOWER } " )
1196+ "${ARROW_BUILD_DIR} /${LOWERCASE_BUILD_TYPE } " )
11481197
11491198 add_library (arrow_bundled_dependencies STATIC IMPORTED )
11501199 set_target_properties (arrow_bundled_dependencies
11511200 PROPERTIES IMPORTED_LOCATION
11521201 "${ARROW_PREFIX} /lib/libarrow_bundled_dependencies.a"
11531202 INTERFACE_INCLUDE_DIRECTORIES "${ARROW_INCLUDE_DIR} "
11541203 INTERFACE_LINK_DIRECTORIES
1155- "${ARROW_BUILD_DIR} /${CMAKE_BUILD_TYPE_LOWER } " )
1204+ "${ARROW_BUILD_DIR} /${LOWERCASE_BUILD_TYPE } " )
11561205
11571206 add_dependencies (arrow arrow_ep )
11581207 add_dependencies (parquet arrow_ep )
@@ -1195,7 +1244,7 @@ macro(build_gtest)
11951244 # Library and runtime same on non-Windows
11961245 set (_GTEST_LIBRARY_DIR "${_GTEST_RUNTIME_DIR} " )
11971246
1198- if (CMAKE_BUILD_TYPE_LOWER STREQUAL "debug" )
1247+ if (LOWERCASE_BUILD_TYPE STREQUAL "debug" )
11991248 set (GTEST_STATIC_LIB "${GTEST_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} gtestd.a" )
12001249 set (GMOCK_STATIC_LIB "${GTEST_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} gmockd.a" )
12011250 set (GTEST_MAIN_STATIC_LIB
@@ -1258,7 +1307,7 @@ macro(build_tbb)
12581307
12591308 set (TBB_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /tbb_ep-install" )
12601309
1261- if (CMAKE_BUILD_TYPE_LOWER STREQUAL "debug" )
1310+ if (LOWERCASE_BUILD_TYPE STREQUAL "debug" )
12621311 set (TBB_STATIC_LIB "${TBB_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} tbb_debug.a" )
12631312 else ()
12641313 set (TBB_STATIC_LIB "${TBB_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} tbb.a" )
@@ -1269,8 +1318,6 @@ macro(build_tbb)
12691318
12701319 set (TBB_BUILD_DIR "${CMAKE_BINARY_DIR} /tbb" )
12711320
1272- string (TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
1273-
12741321 set (TBB_CMAKE_ARGS
12751322 ${EP_COMMON_CMAKE_ARGS}
12761323 "-DCMAKE_INSTALL_PREFIX=${TBB_PREFIX} "
@@ -1290,7 +1337,7 @@ macro(build_tbb)
12901337 PROPERTIES IMPORTED_LOCATION "${TBB_STATIC_LIB} "
12911338 INTERFACE_INCLUDE_DIRECTORIES "${TBB_INCLUDE_DIR} "
12921339 INTERFACE_LINK_DIRECTORIES
1293- "${TBB_BUILD_DIR} /${CMAKE_BUILD_TYPE_LOWER } " )
1340+ "${TBB_BUILD_DIR} /${LOWERCASE_BUILD_TYPE } " )
12941341 add_dependencies (tbb tbb_ep )
12951342
12961343endmacro (build_tbb )
0 commit comments