This is an automated email from the ASF dual-hosted git repository.
philo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git
The following commit(s) were added to refs/heads/main by this push:
new f1bb1d678 [CI] Add CMake format check (#5941)
f1bb1d678 is described below
commit f1bb1d678f0056a3b346b889dc9317351e0c0c6f
Author: PHILO-HE <[email protected]>
AuthorDate: Fri Jun 14 08:53:08 2024 +0800
[CI] Add CMake format check (#5941)
---
.../{code_style.yml => check_license.yml} | 28 +-
.github/workflows/code_style.yml | 49 +-
{dev => .github/workflows/util}/check.py | 0
{dev => .github/workflows/util}/check.sh | 4 +-
.../workflows/util}/excluded_copyright_files.txt | 1 +
{dev => .github/workflows/util}/license-header.py | 0
{dev => .github/workflows/util}/license.header | 0
{dev => .github/workflows/util}/util.py | 0
cpp-ch/CMakeLists.txt | 160 +++---
cpp-ch/local-engine/CMakeLists.txt | 208 ++++----
cpp-ch/local-engine/Functions/CMakeLists.txt | 71 +--
.../local-engine/Storages/Parquet/CMakeLists.txt | 15 +-
.../Storages/SubstraitSource/CMakeLists.txt | 32 +-
cpp-ch/local-engine/examples/CMakeLists.txt | 5 +-
cpp-ch/local-engine/proto/CMakeLists.txt | 47 +-
cpp-ch/local-engine/tests/CMakeLists.txt | 132 ++---
cpp/CMake/BuildGTest.cmake | 9 +-
cpp/CMake/BuildGflags.cmake | 6 +-
cpp/CMake/BuildGlog.cmake | 12 +-
cpp/CMake/BuildGoogleBenchmark.cmake | 15 +-
cpp/CMake/BuildMemkind.cmake | 121 ++---
cpp/CMake/BuildQATZstd.cmake | 80 +--
cpp/CMake/BuildQATzip.cmake | 87 ++--
cpp/CMake/BuildQpl.cmake | 77 ++-
cpp/CMake/ConfigArrow.cmake | 26 +-
cpp/CMake/FindThrift.cmake | 103 ++--
cpp/CMake/FindZstd.cmake | 45 +-
cpp/CMake/Findglog.cmake | 50 +-
cpp/CMake/Findjemalloc_pic.cmake | 40 +-
cpp/CMakeLists.txt | 54 +-
cpp/core/CMakeLists.txt | 273 +++++-----
cpp/core/benchmarks/CMakeLists.txt | 3 +-
cpp/velox/CMakeLists.txt | 549 ++++++++++++++-------
cpp/velox/benchmarks/CMakeLists.txt | 11 +-
cpp/velox/tests/CMakeLists.txt | 51 +-
docs/developers/CppCodingStyle.md | 11 +-
36 files changed, 1331 insertions(+), 1044 deletions(-)
diff --git a/.github/workflows/code_style.yml
b/.github/workflows/check_license.yml
similarity index 66%
copy from .github/workflows/code_style.yml
copy to .github/workflows/check_license.yml
index f1c9c2548..338397dbd 100644
--- a/.github/workflows/code_style.yml
+++ b/.github/workflows/check_license.yml
@@ -13,44 +13,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-name: Code style checks
-
+name: license header check
on:
pull_request
-
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{
github.workflow }}
cancel-in-progress: true
jobs:
- formatting-check:
- name: Formatting Check
- runs-on: ubuntu-latest
- strategy:
- matrix:
- path:
- - check: 'cpp/core'
- exclude: ''
- - check: 'cpp/velox'
- exclude: ''
- steps:
- - uses: actions/checkout@v4
- - name: Run clang-format style check for C/C++ programs.
- uses: jidicula/[email protected]
- with:
- clang-format-version: '15'
- check-path: ${{ matrix.path['check'] }}
- fallback-style: 'Google' # optional
-
license-check:
name: License Header Check
runs-on: ubuntu-latest
-
steps:
- uses: actions/checkout@v3
-
- name: Check License Header
run: |
git fetch --recurse-submodules=no origin main
${{github.event.pull_request.base.sha}}
pip install regex
- dev/check.sh ${{github.event.pull_request.base.sha}}
+ cd $GITHUB_WORKSPACE/
+ ./.github/workflows/util/check.sh
${{github.event.pull_request.base.sha}}
diff --git a/.github/workflows/code_style.yml b/.github/workflows/code_style.yml
index f1c9c2548..841726437 100644
--- a/.github/workflows/code_style.yml
+++ b/.github/workflows/code_style.yml
@@ -14,43 +14,56 @@
# limitations under the License.
name: Code style checks
-
on:
- pull_request
-
+ pull_request:
+ paths:
+ - '.github/workflows/code_style.yml'
+ - 'cpp/**'
+ - 'cpp-ch/**'
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{
github.workflow }}
cancel-in-progress: true
jobs:
- formatting-check:
- name: Formatting Check
+ CPP-format-check:
+ name: CPP Format Check
runs-on: ubuntu-latest
strategy:
matrix:
path:
- - check: 'cpp/core'
- exclude: ''
- - check: 'cpp/velox'
+ - check: 'cpp'
exclude: ''
steps:
- uses: actions/checkout@v4
- - name: Run clang-format style check for C/C++ programs.
+ - name: Run clang-format style check for C/C++
uses: jidicula/[email protected]
with:
clang-format-version: '15'
check-path: ${{ matrix.path['check'] }}
fallback-style: 'Google' # optional
- license-check:
- name: License Header Check
+ CMake-format-check:
+ name: CMake Format Check
runs-on: ubuntu-latest
-
+ container: ubuntu:22.04
steps:
- - uses: actions/checkout@v3
-
- - name: Check License Header
+ - name: Install tools
+ run: |
+ apt update -y
+ apt install git python3-pip -y
+ pip3 install --user cmake-format
+ - uses: actions/checkout@v4
+ - name: Check CMake format
run: |
- git fetch --recurse-submodules=no origin main
${{github.event.pull_request.base.sha}}
- pip install regex
- dev/check.sh ${{github.event.pull_request.base.sha}}
+ git config --global --add safe.directory $GITHUB_WORKSPACE
+ cd $GITHUB_WORKSPACE/
+ fileList=$(find ./cpp ./cpp-ch -name CMakeLists.txt -o -name *.cmake)
+ for file in $fileList; do
+ /github/home/.local/bin/cmake-format --first-comment-is-literal
True --in-place $file
+ done
+ if [ -n "$(git status --porcelain)" ]; then
+ echo "Please use cmake-format to format cmake files or apply the
below patch."
+ git diff -- '*CMakeLists.txt' '*.cmake'
+ exit 1
+ fi
+ echo "No CMake format issue."
diff --git a/dev/check.py b/.github/workflows/util/check.py
similarity index 100%
rename from dev/check.py
rename to .github/workflows/util/check.py
diff --git a/dev/check.sh b/.github/workflows/util/check.sh
similarity index 90%
rename from dev/check.sh
rename to .github/workflows/util/check.sh
index 9b940845f..d8db8bd40 100755
--- a/dev/check.sh
+++ b/.github/workflows/util/check.sh
@@ -15,9 +15,9 @@
# limitations under the License.
export BASE_COMMIT=$1
-dev/check.py header branch
+./.github/workflows/util/check.py header branch
if [ $? -ne 0 ]; then
- dev/check.py header branch --fix
+ ./.github/workflows/util/check.py header branch --fix
echo -e "\n==== Apply using:"
echo "patch -p1 \<<EOF"
git --no-pager diff
diff --git a/dev/excluded_copyright_files.txt
b/.github/workflows/util/excluded_copyright_files.txt
similarity index 68%
rename from dev/excluded_copyright_files.txt
rename to .github/workflows/util/excluded_copyright_files.txt
index 782f76882..ea5de1830 100644
--- a/dev/excluded_copyright_files.txt
+++ b/.github/workflows/util/excluded_copyright_files.txt
@@ -1,2 +1,3 @@
*cpp-ch/local-engine/Storages/ch_parquet/arrow/*
*dev/*
+*.github/workflows/util/*
diff --git a/dev/license-header.py b/.github/workflows/util/license-header.py
similarity index 100%
rename from dev/license-header.py
rename to .github/workflows/util/license-header.py
diff --git a/dev/license.header b/.github/workflows/util/license.header
similarity index 100%
rename from dev/license.header
rename to .github/workflows/util/license.header
diff --git a/dev/util.py b/.github/workflows/util/util.py
similarity index 100%
rename from dev/util.py
rename to .github/workflows/util/util.py
diff --git a/cpp-ch/CMakeLists.txt b/cpp-ch/CMakeLists.txt
index 0c41f494d..1ef19b3b5 100644
--- a/cpp-ch/CMakeLists.txt
+++ b/cpp-ch/CMakeLists.txt
@@ -16,7 +16,9 @@ cmake_minimum_required(VERSION 3.20)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/clickhouse.version CH_VERSION)
-set(CH_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ClickHouse CACHE STRING
"ClickHouse source dir")
+set(CH_SOURCE_DIR
+ ${CMAKE_CURRENT_SOURCE_DIR}/ClickHouse
+ CACHE STRING "ClickHouse source dir")
string(REGEX REPLACE ".*CH_ORG=([^\n]+).*" "\\1" CH_ORG "${CH_VERSION}")
string(REGEX REPLACE ".*CH_BRANCH=([^\n]+).*" "\\1" CH_BRANCH "${CH_VERSION}")
string(REGEX REPLACE ".*CH_COMMIT=([^\n]+).*" "\\1" CH_COMMIT "${CH_VERSION}")
@@ -27,93 +29,93 @@ message("CH_COMMIT=${CH_COMMIT}")
project(libch LANGUAGES C CXX ASM)
file(GLOB clickhouse_files "${CH_SOURCE_DIR}/*")
-if ("${CH_SOURCE_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}/ClickHouse")
- if (NOT clickhouse_files)
- execute_process(COMMAND git clone -b ${CH_BRANCH} --depth 3
https://github.com/${CH_ORG}/ClickHouse.git ${CH_SOURCE_DIR}
COMMAND_ERROR_IS_FATAL ANY)
- execute_process(COMMAND git reset --hard ${CH_COMMIT}
WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
- execute_process(COMMAND git submodule update --init --force --depth 1
WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
- else()
- execute_process(COMMAND git fetch origin ${CH_BRANCH} --depth 3
WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
- execute_process(COMMAND git checkout ${CH_BRANCH} WORKING_DIRECTORY
${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
- execute_process(COMMAND git reset --hard ${CH_COMMIT}
WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
- execute_process(COMMAND git submodule update --init --recursive
--force --depth 1 WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
- endif()
+if("${CH_SOURCE_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}/ClickHouse")
+ if(NOT clickhouse_files)
+ execute_process(
+ COMMAND
+ git clone -b ${CH_BRANCH} --depth 3
+ https://github.com/${CH_ORG}/ClickHouse.git ${CH_SOURCE_DIR}
+ COMMAND_ERROR_IS_FATAL ANY)
+ execute_process(
+ COMMAND git reset --hard ${CH_COMMIT}
+ WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
+ execute_process(
+ COMMAND git submodule update --init --force --depth 1
+ WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
+ else()
+ execute_process(
+ COMMAND git fetch origin ${CH_BRANCH} --depth 3
+ WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
+ execute_process(
+ COMMAND git checkout ${CH_BRANCH}
+ WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
+ execute_process(
+ COMMAND git reset --hard ${CH_COMMIT}
+ WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
+ execute_process(
+ COMMAND git submodule update --init --recursive --force --depth 1
+ WORKING_DIRECTORY ${CH_SOURCE_DIR} COMMAND_ERROR_IS_FATAL ANY)
+ endif()
else()
- if (NOT clickhouse_files)
- # Checking out *all* submodules takes > 5 min. Therefore, the smoke
build ("FastTest") in CI initializes only the set of
- # submodules minimally needed for a build and we cannot assume here
that all submodules are populated.
- message(ERROR "clickhouse ${CH_SOURCE_DIR} is missing or empty. to fix
try run:")
- message(STATUS " git clone --recursive --depth 1
https://github.com/Kyligence/ClickHouse.git ${CMAKE_SOURCE_DIR}")
- endif()
+ if(NOT clickhouse_files)
+ # Checking out *all* submodules takes > 5 min. Therefore, the smoke build
+ # ("FastTest") in CI initializes only the set of submodules minimally
needed
+ # for a build and we cannot assume here that all submodules are populated.
+ message(ERROR
+ "clickhouse ${CH_SOURCE_DIR} is missing or empty. to fix try run:")
+ message(
+ STATUS
+ " git clone --recursive --depth 1
https://github.com/Kyligence/ClickHouse.git ${CMAKE_SOURCE_DIR}"
+ )
+ endif()
endif()
-if (EXISTS "${CH_SOURCE_DIR}/utils/extern-local-engine")
- execute_process(COMMAND rm -rf ${CH_SOURCE_DIR}/utils/extern-local-engine)
-endif ()
-execute_process(COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/local-engine
${CH_SOURCE_DIR}/utils/extern-local-engine COMMAND_ERROR_IS_FATAL ANY)
+if(EXISTS "${CH_SOURCE_DIR}/utils/extern-local-engine")
+ execute_process(COMMAND rm -rf ${CH_SOURCE_DIR}/utils/extern-local-engine)
+endif()
+execute_process(
+ COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/local-engine
+ ${CH_SOURCE_DIR}/utils/extern-local-engine COMMAND_ERROR_IS_FATAL
ANY)
-# execute_process(COMMAND find ${CMAKE_CURRENT_SOURCE_DIR}/local-engine -regex
'.*\.\(c\|cpp\|h\)' -exec clang-format-15 --verbose -i --style=file -i {} \;)
+# execute_process(COMMAND find ${CMAKE_CURRENT_SOURCE_DIR}/local-engine -regex
+# '.*\.\(c\|cpp\|h\)' -exec clang-format-15 --verbose -i --style=file -i {} \;)
set(CH_BINARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/build")
option(ENABLE_CPP_TEST "Build CPP Unit test" OFF)
-if (ENABLE_CPP_TEST)
-add_custom_command(
- USES_TERMINAL
- COMMAND
- bash -c
- \"cmake -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DENABLE_PROTOBUF=ON
- -DENABLE_TESTS=ON
- -DENABLE_JEMALLOC=ON
- -DENABLE_MULTITARGET_CODE=ON
- -DENABLE_EXTERN_LOCAL_ENGINE=ON
- -DCOMPILER_FLAGS='-fvisibility=hidden -fvisibility-inlines-hidden'
- -S ${CH_SOURCE_DIR} -G Ninja -B ${CH_BINARY_DIR} &&
- cmake --build ${CH_BINARY_DIR} --target ch unit_tests_local_engine\"
- OUTPUT _build_ch)
+if(ENABLE_CPP_TEST)
+ add_custom_command(
+ USES_TERMINAL
+ COMMAND
+ bash -c \"cmake -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DENABLE_PROTOBUF=ON
+ -DENABLE_TESTS=ON -DENABLE_JEMALLOC=ON -DENABLE_MULTITARGET_CODE=ON
+ -DENABLE_EXTERN_LOCAL_ENGINE=ON -DCOMPILER_FLAGS='-fvisibility=hidden
+ -fvisibility-inlines-hidden' -S ${CH_SOURCE_DIR} -G Ninja -B
+ ${CH_BINARY_DIR} && cmake --build ${CH_BINARY_DIR} --target ch
+ unit_tests_local_engine\"
+ OUTPUT _build_ch)
else()
-add_custom_command(
- USES_TERMINAL
- COMMAND
- bash -c
- \"cmake -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DENABLE_PROTOBUF=ON
- -DENABLE_TESTS=OFF
- -DENABLE_JEMALLOC=ON
- -DENABLE_MULTITARGET_CODE=ON
- -DENABLE_EXTERN_LOCAL_ENGINE=ON
- -DENABLE_ODBC=OFF
- -DENABLE_CAPNP=OFF
- -DENABLE_ROCKSDB=OFF
- -DENABLE_GRPC=OFF
- -DENABLE_RUST=OFF
- -DENABLE_H3=OFF
- -DENABLE_AMQPCPP=OFF
- -DENABLE_CASSANDRA=OFF
- -DENABLE_KAFKA=OFF
- -DENABLE_NATS=OFF
- -DENABLE_LIBPQXX=OFF
- -DENABLE_NURAFT=OFF
- -DENABLE_DATASKETCHES=OFF
- -DENABLE_SQLITE=OFF
- -DENABLE_S2_GEOMETRY=OFF
- -DENABLE_ANNOY=OFF
- -DENABLE_ULID=OFF
- -DENABLE_MYSQL=OFF
- -DENABLE_BCRYPT=OFF
- -DENABLE_LDAP=OFF
- -DENABLE_MSGPACK=OFF
- -DUSE_REPLXX=OFF
- -DENABLE_CLICKHOUSE_ALL=OFF
- -DCOMPILER_FLAGS='-fvisibility=hidden -fvisibility-inlines-hidden'
- -S ${CH_SOURCE_DIR} -G Ninja -B ${CH_BINARY_DIR} &&
- cmake --build ${CH_BINARY_DIR} --target libch\"
- OUTPUT _build_ch)
+ add_custom_command(
+ USES_TERMINAL
+ COMMAND
+ bash -c \"cmake -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DENABLE_PROTOBUF=ON
+ -DENABLE_TESTS=OFF -DENABLE_JEMALLOC=ON -DENABLE_MULTITARGET_CODE=ON
+ -DENABLE_EXTERN_LOCAL_ENGINE=ON -DENABLE_ODBC=OFF -DENABLE_CAPNP=OFF
+ -DENABLE_ROCKSDB=OFF -DENABLE_GRPC=OFF -DENABLE_RUST=OFF -DENABLE_H3=OFF
+ -DENABLE_AMQPCPP=OFF -DENABLE_CASSANDRA=OFF -DENABLE_KAFKA=OFF
+ -DENABLE_NATS=OFF -DENABLE_LIBPQXX=OFF -DENABLE_NURAFT=OFF
+ -DENABLE_DATASKETCHES=OFF -DENABLE_SQLITE=OFF -DENABLE_S2_GEOMETRY=OFF
+ -DENABLE_ANNOY=OFF -DENABLE_ULID=OFF -DENABLE_MYSQL=OFF
+ -DENABLE_BCRYPT=OFF -DENABLE_LDAP=OFF -DENABLE_MSGPACK=OFF
+ -DUSE_REPLXX=OFF -DENABLE_CLICKHOUSE_ALL=OFF
+ -DCOMPILER_FLAGS='-fvisibility=hidden -fvisibility-inlines-hidden' -S
+ ${CH_SOURCE_DIR} -G Ninja -B ${CH_BINARY_DIR} && cmake --build
+ ${CH_BINARY_DIR} --target libch\"
+ OUTPUT _build_ch)
endif()
add_custom_target(build_ch ALL DEPENDS _build_ch)
diff --git a/cpp-ch/local-engine/CMakeLists.txt
b/cpp-ch/local-engine/CMakeLists.txt
index 8c96c5f98..93ee4b821 100644
--- a/cpp-ch/local-engine/CMakeLists.txt
+++ b/cpp-ch/local-engine/CMakeLists.txt
@@ -13,22 +13,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-
-if (ENABLE_MULTITARGET_CODE)
- add_definitions(-DENABLE_MULTITARGET_CODE=1)
+if(ENABLE_MULTITARGET_CODE)
+ add_definitions(-DENABLE_MULTITARGET_CODE=1)
else()
- add_definitions(-DENABLE_MULTITARGET_CODE=0)
+ add_definitions(-DENABLE_MULTITARGET_CODE=0)
endif()
-set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w -ffunction-sections -fdata-sections")
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -ffunction-sections
-fdata-sections")
-set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}
-Wl,--no-export-dynamic -Wl,--gc-sections")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w -ffunction-sections -fdata-sections")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -ffunction-sections
-fdata-sections")
+set(CMAKE_SHARED_LINKER_FLAGS
+ "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-export-dynamic -Wl,--gc-sections")
-if (COMPILER_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
--ld-path=${LLD_WRAPPER}")
+if(COMPILER_CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16)
+ set(CMAKE_SHARED_LINKER_FLAGS
+ "${CMAKE_SHARED_LINKER_FLAGS} --ld-path=${LLD_WRAPPER}")
else()
- set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
--ld-path=${LLD_PATH}")
-endif ()
+ set(CMAKE_SHARED_LINKER_FLAGS
+ "${CMAKE_SHARED_LINKER_FLAGS} --ld-path=${LLD_PATH}")
+endif()
set(THRIFT_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/thrift/lib/cpp/src")
@@ -37,7 +39,7 @@ include(FindJava)
include(UseJava)
include(FindJNI)
-#set(JNI_NATIVE_SOURCES local_engine_jni.cpp)
+# set(JNI_NATIVE_SOURCES local_engine_jni.cpp)
set(LOCALENGINE_SHARED_LIB _gluten_ch)
add_subdirectory(proto)
@@ -61,116 +63,124 @@ add_headers_and_sources(disks Disks)
add_headers_and_sources(disks Disks/ObjectStorages)
include_directories(
- ${JNI_INCLUDE_DIRS}
- ${CMAKE_CURRENT_BINARY_DIR}/proto
- ${THRIFT_INCLUDE_DIR}
- ${CMAKE_BINARY_DIR}/contrib/thrift-cmake
- ${CMAKE_BINARY_DIR}/contrib/llvm-project/llvm/include
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${ClickHouse_SOURCE_DIR}/src
- ${ClickHouse_SOURCE_DIR}/base
- ${ClickHouse_SOURCE_DIR}/contrib/orc/c++/include
- ${ClickHouse_SOURCE_DIR}/contrib/arrow-cmake/cpp/src/orc/c++/include
- ${CMAKE_BINARY_DIR}/contrib/orc/c++/include
-
${ClickHouse_SOURCE_DIR}/contrib/azure/sdk/storage/azure-storage-blobs/inc
- ${ClickHouse_SOURCE_DIR}/contrib/azure/sdk/core/azure-core/inc
-
${ClickHouse_SOURCE_DIR}/contrib/azure/sdk/storage/azure-storage-common/inc
- ${ClickHouse_SOURCE_DIR}/contrib/llvm-project/llvm/include
-
${ClickHouse_SOURCE_DIR}/contrib/llvm-project/utils/bazel/llvm-project-overlay/llvm/include
+ ${JNI_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_BINARY_DIR}/proto
+ ${THRIFT_INCLUDE_DIR}
+ ${CMAKE_BINARY_DIR}/contrib/thrift-cmake
+ ${CMAKE_BINARY_DIR}/contrib/llvm-project/llvm/include
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${ClickHouse_SOURCE_DIR}/src
+ ${ClickHouse_SOURCE_DIR}/base
+ ${ClickHouse_SOURCE_DIR}/contrib/orc/c++/include
+ ${ClickHouse_SOURCE_DIR}/contrib/arrow-cmake/cpp/src/orc/c++/include
+ ${CMAKE_BINARY_DIR}/contrib/orc/c++/include
+ ${ClickHouse_SOURCE_DIR}/contrib/azure/sdk/storage/azure-storage-blobs/inc
+ ${ClickHouse_SOURCE_DIR}/contrib/azure/sdk/core/azure-core/inc
+ ${ClickHouse_SOURCE_DIR}/contrib/azure/sdk/storage/azure-storage-common/inc
+ ${ClickHouse_SOURCE_DIR}/contrib/llvm-project/llvm/include
+
${ClickHouse_SOURCE_DIR}/contrib/llvm-project/utils/bazel/llvm-project-overlay/llvm/include
)
add_subdirectory(Storages/Parquet)
add_subdirectory(Storages/SubstraitSource)
add_subdirectory(Functions)
-add_library(gluten_clickhouse_backend_libs
- ${builder_sources}
- ${join_sources}
- ${parser_sources}
- ${rewriter_sources}
- ${storages_sources}
- ${common_sources}
- ${external_sources}
- ${shuffle_sources}
- ${operator_sources}
- ${aggregate_functions_sources}
- ${jni_sources}
- ${disks_sources}
-)
-
-target_link_libraries(gluten_clickhouse_backend_libs PUBLIC
- substrait_source
- clickhouse_aggregate_functions
- clickhouse_functions
- gluten_spark_functions
- ch_contrib::xxHash
-)
+add_library(
+ gluten_clickhouse_backend_libs
+ ${builder_sources}
+ ${join_sources}
+ ${parser_sources}
+ ${rewriter_sources}
+ ${storages_sources}
+ ${common_sources}
+ ${external_sources}
+ ${shuffle_sources}
+ ${operator_sources}
+ ${aggregate_functions_sources}
+ ${jni_sources}
+ ${disks_sources})
+
+target_link_libraries(
+ gluten_clickhouse_backend_libs
+ PUBLIC substrait_source clickhouse_aggregate_functions clickhouse_functions
+ gluten_spark_functions ch_contrib::xxHash)
# Add udf sources files in sub directories to functions_sources
-option(ENABLE_LOCAL_UDFS "Build UDFs in 'local-engine/Parser/*_udf'
subdirectories" ON)
-if (ENABLE_LOCAL_UDFS)
- file(GLOB children CONFIGURE_DEPENDS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
Parser/*_udf)
- foreach(child ${children})
- add_headers_and_sources(local_udfs ${child})
- endforeach()
-endif ()
-
-file(GLOB children CONFIGURE_DEPENDS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
Parser/*_function_parser)
+option(ENABLE_LOCAL_UDFS
+ "Build UDFs in 'local-engine/Parser/*_udf' subdirectories" ON)
+if(ENABLE_LOCAL_UDFS)
+ file(
+ GLOB children CONFIGURE_DEPENDS
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ Parser/*_udf)
+ foreach(child ${children})
+ add_headers_and_sources(local_udfs ${child})
+ endforeach()
+endif()
+
+file(
+ GLOB children CONFIGURE_DEPENDS
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ Parser/*_function_parser)
foreach(child ${children})
- add_headers_and_sources(function_parsers ${child})
+ add_headers_and_sources(function_parsers ${child})
endforeach()
-# Notice: soures files under Parser/*_udf subdirectories must be built into
target ${LOCALENGINE_SHARED_LIB} directly
-# to make sure all function parsers are registered successly.
-add_library(${LOCALENGINE_SHARED_LIB} SHARED
- local_engine_jni.cpp
- ${local_udfs_sources}
- ${function_parsers_sources}
- $<TARGET_OBJECTS:clickhouse_malloc>) # why add clickhouse_malloc?
check clickhouse PR-8046
+# Notice: soures files under Parser/*_udf subdirectories must be built into
+# target ${LOCALENGINE_SHARED_LIB} directly to make sure all function parsers
+# are registered successly.
+add_library(
+ ${LOCALENGINE_SHARED_LIB} SHARED
+ local_engine_jni.cpp ${local_udfs_sources} ${function_parsers_sources}
+ $<TARGET_OBJECTS:clickhouse_malloc>) # why add clickhouse_malloc? check
+ # clickhouse PR-8046
target_compile_options(${LOCALENGINE_SHARED_LIB} PUBLIC -fPIC
- -Wno-shorten-64-to-32)
-
-target_link_libraries(${LOCALENGINE_SHARED_LIB}
-PUBLIC
- clickhouse_new_delete
- clickhouse_common_config
- clickhouse_common_io
- clickhouse_parsers
- clickhouse_storages_system
- loggers
- gluten_clickhouse_backend_libs
- ch_contrib::protobuf
-PRIVATE
- substrait
-)
+ -Wno-shorten-64-to-32)
+
+target_link_libraries(
+ ${LOCALENGINE_SHARED_LIB}
+ PUBLIC clickhouse_new_delete
+ clickhouse_common_config
+ clickhouse_common_io
+ clickhouse_parsers
+ clickhouse_storages_system
+ loggers
+ gluten_clickhouse_backend_libs
+ ch_contrib::protobuf
+ PRIVATE substrait)
target_link_libraries(${LOCALENGINE_SHARED_LIB} PUBLIC ch_parquet)
-if (ENABLE_JEMALLOC)
- target_link_options(${LOCALENGINE_SHARED_LIB} PRIVATE
- -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libch.map
-Wl,-Bsymbolic-functions)
+if(ENABLE_JEMALLOC)
+ target_link_options(
+ ${LOCALENGINE_SHARED_LIB} PRIVATE
+ -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libch.map
+ -Wl,-Bsymbolic-functions)
else()
- target_link_options(${LOCALENGINE_SHARED_LIB} PRIVATE
-
-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libch-hide-jemalloc.map)
+ target_link_options(
+ ${LOCALENGINE_SHARED_LIB} PRIVATE
+ -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/libch-hide-jemalloc.map)
endif()
-if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
- set(LOCALENGINE_SHARED_LIB_NAME "libchd.so")
-else ()
- set(LOCALENGINE_SHARED_LIB_NAME "libch.so")
-endif ()
+if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
+ set(LOCALENGINE_SHARED_LIB_NAME "libchd.so")
+else()
+ set(LOCALENGINE_SHARED_LIB_NAME "libch.so")
+endif()
add_custom_command(
- OUTPUT ${LOCALENGINE_SHARED_LIB_NAME}
- COMMAND ${CMAKE_COMMAND} -E rename
$<TARGET_FILE:${LOCALENGINE_SHARED_LIB}> ${LOCALENGINE_SHARED_LIB_NAME}
- COMMENT "Renaming $<TARGET_FILE:${LOCALENGINE_SHARED_LIB}> to
${LOCALENGINE_SHARED_LIB_NAME}"
- DEPENDS ${LOCALENGINE_SHARED_LIB})
+ OUTPUT ${LOCALENGINE_SHARED_LIB_NAME}
+ COMMAND ${CMAKE_COMMAND} -E rename $<TARGET_FILE:${LOCALENGINE_SHARED_LIB}>
+ ${LOCALENGINE_SHARED_LIB_NAME}
+ COMMENT
+ "Renaming $<TARGET_FILE:${LOCALENGINE_SHARED_LIB}> to
${LOCALENGINE_SHARED_LIB_NAME}"
+ DEPENDS ${LOCALENGINE_SHARED_LIB})
add_custom_target(libch ALL DEPENDS ${LOCALENGINE_SHARED_LIB_NAME})
add_subdirectory(tests)
-if (ENABLE_EXAMPLES)
- add_subdirectory(examples)
-endif()
\ No newline at end of file
+if(ENABLE_EXAMPLES)
+ add_subdirectory(examples)
+endif()
diff --git a/cpp-ch/local-engine/Functions/CMakeLists.txt
b/cpp-ch/local-engine/Functions/CMakeLists.txt
index 5968c8609..746973155 100644
--- a/cpp-ch/local-engine/Functions/CMakeLists.txt
+++ b/cpp-ch/local-engine/Functions/CMakeLists.txt
@@ -16,51 +16,52 @@
add_headers_and_sources(gluten_spark_functions .)
add_library(gluten_spark_functions_obj OBJECT
${gluten_spark_functions_sources})
-list (APPEND PRIVATE_LIBS
- boost::headers_only
- pcg_random
- Poco::Foundation
- Poco::Util
- Poco::Net
- Poco::JSON
- ch_contrib::cctz
- ch_contrib::fmt
- ch_contrib::pdqsort
- ch_contrib::miniselect
- ch_contrib::magic_enum
- ch_contrib::double_conversion
- ch_contrib::dragonbox_to_chars
- ch_contrib::re2
- ch_contrib::abseil_swiss_tables
- ch_contrib::sparsehash
- ch_contrib::metrohash
- ch_contrib::murmurhash
- ch_contrib::wyhash
- ch_contrib::cityhash
- ch_contrib::farmhash
- ch_contrib::xxHash
- OpenSSL::SSL
-)
+list(
+ APPEND
+ PRIVATE_LIBS
+ boost::headers_only
+ pcg_random
+ Poco::Foundation
+ Poco::Util
+ Poco::Net
+ Poco::JSON
+ ch_contrib::cctz
+ ch_contrib::fmt
+ ch_contrib::pdqsort
+ ch_contrib::miniselect
+ ch_contrib::magic_enum
+ ch_contrib::double_conversion
+ ch_contrib::dragonbox_to_chars
+ ch_contrib::re2
+ ch_contrib::abseil_swiss_tables
+ ch_contrib::sparsehash
+ ch_contrib::metrohash
+ ch_contrib::murmurhash
+ ch_contrib::wyhash
+ ch_contrib::cityhash
+ ch_contrib::farmhash
+ ch_contrib::xxHash
+ OpenSSL::SSL)
-if (TARGET ch_contrib::vectorscan)
- list (APPEND PRIVATE_LIBS ch_contrib::vectorscan)
+if(TARGET ch_contrib::vectorscan)
+ list(APPEND PRIVATE_LIBS ch_contrib::vectorscan)
endif()
-if (TARGET ch_contrib::rapidjson)
- list (APPEND PRIVATE_LIBS ch_contrib::rapidjson)
+if(TARGET ch_contrib::rapidjson)
+ list(APPEND PRIVATE_LIBS ch_contrib::rapidjson)
endif()
-if (TARGET ch_contrib::simdjson)
- list (APPEND PRIVATE_LIBS ch_contrib::simdjson)
+if(TARGET ch_contrib::simdjson)
+ list(APPEND PRIVATE_LIBS ch_contrib::simdjson)
endif()
-if (TARGET ch_rust::blake3)
- list (APPEND PRIVATE_LIBS ch_rust::blake3)
+if(TARGET ch_rust::blake3)
+ list(APPEND PRIVATE_LIBS ch_rust::blake3)
endif()
-list (APPEND OBJECT_LIBS $<TARGET_OBJECTS:gluten_spark_functions_obj>)
+list(APPEND OBJECT_LIBS $<TARGET_OBJECTS:gluten_spark_functions_obj>)
target_link_libraries(gluten_spark_functions_obj PRIVATE ${PRIVATE_LIBS})
add_library(gluten_spark_functions INTERFACE)
-target_link_libraries(gluten_spark_functions INTERFACE ${OBJECT_LIBS})
\ No newline at end of file
+target_link_libraries(gluten_spark_functions INTERFACE ${OBJECT_LIBS})
diff --git a/cpp-ch/local-engine/Storages/Parquet/CMakeLists.txt
b/cpp-ch/local-engine/Storages/Parquet/CMakeLists.txt
index f3d9e14f4..bfe538710 100644
--- a/cpp-ch/local-engine/Storages/Parquet/CMakeLists.txt
+++ b/cpp-ch/local-engine/Storages/Parquet/CMakeLists.txt
@@ -18,13 +18,10 @@ set(ARROW_INCLUDE_DIR
"${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src")
add_headers_and_sources(Parquet .)
add_library(ch_parquet ${Parquet_sources})
-target_link_libraries(ch_parquet PUBLIC
- boost::headers_only
- clickhouse_common_io
-)
+target_link_libraries(ch_parquet PUBLIC boost::headers_only
+ clickhouse_common_io)
-target_include_directories(ch_parquet SYSTEM BEFORE PUBLIC
- ${ARROW_INCLUDE_DIR}
- ${CMAKE_BINARY_DIR}/contrib/arrow-cmake/cpp/src
- ${ClickHouse_SOURCE_DIR}/contrib/arrow-cmake/cpp/src
-)
+target_include_directories(
+ ch_parquet SYSTEM BEFORE
+ PUBLIC ${ARROW_INCLUDE_DIR} ${CMAKE_BINARY_DIR}/contrib/arrow-cmake/cpp/src
+ ${ClickHouse_SOURCE_DIR}/contrib/arrow-cmake/cpp/src)
diff --git a/cpp-ch/local-engine/Storages/SubstraitSource/CMakeLists.txt
b/cpp-ch/local-engine/Storages/SubstraitSource/CMakeLists.txt
index 4e43c924f..228f54255 100644
--- a/cpp-ch/local-engine/Storages/SubstraitSource/CMakeLists.txt
+++ b/cpp-ch/local-engine/Storages/SubstraitSource/CMakeLists.txt
@@ -15,30 +15,24 @@
set(ARROW_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/arrow/cpp/src")
-
macro(add_headers_and_sources_including_cc prefix common_path)
- add_glob(${prefix}_headers ${CMAKE_CURRENT_SOURCE_DIR} ${common_path}/*.h)
- add_glob(${prefix}_sources ${common_path}/*.cpp ${common_path}/*.c
${common_path}/*.cc ${common_path}/*.h)
+ add_glob(${prefix}_headers ${CMAKE_CURRENT_SOURCE_DIR} ${common_path}/*.h)
+ add_glob(${prefix}_sources ${common_path}/*.cpp ${common_path}/*.c
+ ${common_path}/*.cc ${common_path}/*.h)
endmacro()
add_headers_and_sources(substrait_source .)
add_headers_and_sources_including_cc(ch_parquet arrow)
add_library(substrait_source ${substrait_source_sources})
-target_compile_options(substrait_source PRIVATE
- -Wno-suggest-destructor-override
- -Wno-inconsistent-missing-destructor-override
-)
+target_compile_options(
+ substrait_source PRIVATE -Wno-suggest-destructor-override
+ -Wno-inconsistent-missing-destructor-override)
-target_link_libraries(substrait_source PUBLIC
- boost::headers_only
- ch_contrib::protobuf
- clickhouse_common_io
- ch_contrib::hdfs
- substrait
-)
+target_link_libraries(
+ substrait_source PUBLIC boost::headers_only ch_contrib::protobuf
+ clickhouse_common_io ch_contrib::hdfs substrait)
-target_include_directories(substrait_source SYSTEM BEFORE PUBLIC
- ${ARROW_INCLUDE_DIR}
- ${CMAKE_BINARY_DIR}/contrib/arrow-cmake/cpp/src
- ${ClickHouse_SOURCE_DIR}/contrib/arrow-cmake/cpp/src
-)
\ No newline at end of file
+target_include_directories(
+ substrait_source SYSTEM BEFORE
+ PUBLIC ${ARROW_INCLUDE_DIR} ${CMAKE_BINARY_DIR}/contrib/arrow-cmake/cpp/src
+ ${ClickHouse_SOURCE_DIR}/contrib/arrow-cmake/cpp/src)
diff --git a/cpp-ch/local-engine/examples/CMakeLists.txt
b/cpp-ch/local-engine/examples/CMakeLists.txt
index bbeeb98d2..03cd3bfe3 100644
--- a/cpp-ch/local-engine/examples/CMakeLists.txt
+++ b/cpp-ch/local-engine/examples/CMakeLists.txt
@@ -13,5 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-clickhouse_add_executable (signal_demo signal_demo.cpp)
-target_link_libraries(signal_demo PRIVATE gluten_clickhouse_backend_libs
loggers)
\ No newline at end of file
+clickhouse_add_executable(signal_demo signal_demo.cpp)
+target_link_libraries(signal_demo PRIVATE gluten_clickhouse_backend_libs
+ loggers)
diff --git a/cpp-ch/local-engine/proto/CMakeLists.txt
b/cpp-ch/local-engine/proto/CMakeLists.txt
index 31583ff65..ffb34504a 100644
--- a/cpp-ch/local-engine/proto/CMakeLists.txt
+++ b/cpp-ch/local-engine/proto/CMakeLists.txt
@@ -12,37 +12,34 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-file(GLOB protobuf_files
- substrait/*.proto
- substrait/extensions/*.proto
- )
+file(GLOB protobuf_files substrait/*.proto substrait/extensions/*.proto)
-FOREACH(FIL ${protobuf_files})
- file(RELATIVE_PATH FIL_RELATIVE
${ClickHouse_SOURCE_DIR}/utils/extern-local-engine/proto/ ${FIL})
- string(REGEX REPLACE "\\.proto" "" FILE_NAME ${FIL_RELATIVE})
- LIST(APPEND SUBSTRAIT_SRCS
"${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.pb.cc")
- LIST(APPEND SUBSTRAIT_HEADERS
"${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.pb.h")
-ENDFOREACH()
+foreach(FIL ${protobuf_files})
+ file(RELATIVE_PATH FIL_RELATIVE
+ ${ClickHouse_SOURCE_DIR}/utils/extern-local-engine/proto/ ${FIL})
+ string(REGEX REPLACE "\\.proto" "" FILE_NAME ${FIL_RELATIVE})
+ list(APPEND SUBSTRAIT_SRCS "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.pb.cc")
+ list(APPEND SUBSTRAIT_HEADERS
"${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.pb.h")
+endforeach()
# Generate Substrait headers
add_custom_command(
- OUTPUT ${SUBSTRAIT_SRCS} ${SUBSTRAIT_HEADERS}
- COMMAND
- $<TARGET_FILE:protoc> --cpp_out ${CMAKE_CURRENT_BINARY_DIR}
- --proto_path ${CMAKE_CURRENT_SOURCE_DIR}
- --proto_path ${ClickHouse_SOURCE_DIR}/contrib/google-protobuf/src
- ${protobuf_files}
- DEPENDS ${protobuf_files}
- COMMENT "Running cpp protocol buffer compiler"
- VERBATIM)
-add_custom_target(generate_substrait ALL DEPENDS ${SUBSTRAIT_SRCS}
${SUBSTRAIT_HEADERS})
+ OUTPUT ${SUBSTRAIT_SRCS} ${SUBSTRAIT_HEADERS}
+ COMMAND
+ $<TARGET_FILE:protoc> --cpp_out ${CMAKE_CURRENT_BINARY_DIR} --proto_path
+ ${CMAKE_CURRENT_SOURCE_DIR} --proto_path
+ ${ClickHouse_SOURCE_DIR}/contrib/google-protobuf/src ${protobuf_files}
+ DEPENDS ${protobuf_files}
+ COMMENT "Running cpp protocol buffer compiler"
+ VERBATIM)
+add_custom_target(generate_substrait ALL DEPENDS ${SUBSTRAIT_SRCS}
+ ${SUBSTRAIT_HEADERS})
set_source_files_properties(${SUBSTRAIT_SRCS} PROPERTIES GENERATED TRUE)
add_library(substrait ${SUBSTRAIT_SRCS})
add_dependencies(substrait generate_substrait)
-target_compile_options(substrait PUBLIC -fPIC
- -Wno-reserved-identifier
- -Wno-deprecated)
-target_include_directories(substrait SYSTEM BEFORE PRIVATE
${CMAKE_CURRENT_BINARY_DIR})
+target_compile_options(substrait PUBLIC -fPIC -Wno-reserved-identifier
+ -Wno-deprecated)
+target_include_directories(substrait SYSTEM BEFORE
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(substrait ch_contrib::protobuf)
-
diff --git a/cpp-ch/local-engine/tests/CMakeLists.txt
b/cpp-ch/local-engine/tests/CMakeLists.txt
index 9781a332e..be02bf623 100644
--- a/cpp-ch/local-engine/tests/CMakeLists.txt
+++ b/cpp-ch/local-engine/tests/CMakeLists.txt
@@ -12,76 +12,92 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testConfig.h.in
${CMAKE_CURRENT_SOURCE_DIR}/testConfig.h)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testConfig.h.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/testConfig.h)
-if (ENABLE_TESTS)
- macro(add_gtest_sources prefix common_path)
- add_glob(${prefix}_sources ${common_path}/gtest*.cpp)
- endmacro()
+if(ENABLE_TESTS)
+ macro(add_gtest_sources prefix common_path)
+ add_glob(${prefix}_sources ${common_path}/gtest*.cpp)
+ endmacro()
- set(USE_INTERNAL_GTEST_LIBRARY 0)
- set(BENCHMARK_ENABLE_TESTING OFF)
+ set(USE_INTERNAL_GTEST_LIBRARY 0)
+ set(BENCHMARK_ENABLE_TESTING OFF)
- enable_testing()
- include(CTest)
+ enable_testing()
+ include(CTest)
- include_directories(${GTEST_INCLUDE_DIRS})
+ include_directories(${GTEST_INCLUDE_DIRS})
- set(TEST_DATA_DIR
"${ClickHouse_SOURCE_DIR}/utils/extern-local-engine/tests")
- set(HAVE_POSIX_REGEX 1)
- set(LOCAL_ENGINE_DIR "${ClickHouse_SOURCE_DIR}/utils/extern-local-engine")
+ set(TEST_DATA_DIR "${ClickHouse_SOURCE_DIR}/utils/extern-local-engine/tests")
+ set(HAVE_POSIX_REGEX 1)
+ set(LOCAL_ENGINE_DIR "${ClickHouse_SOURCE_DIR}/utils/extern-local-engine")
- add_gtest_sources(local_engine_gtest .)
- if (ENABLE_LOCAL_UDFS)
- file(GLOB children CONFIGURE_DEPENDS RELATIVE
${CMAKE_CURRENT_SOURCE_DIR} ../Parser/*_udf/tests)
- foreach(child ${children})
- add_gtest_sources(local_engine_gtest ${child})
- endforeach()
-
- file(GLOB children CONFIGURE_DEPENDS RELATIVE
${CMAKE_CURRENT_SOURCE_DIR} ../Parser/*_udf)
- foreach(child ${children})
- add_headers_and_sources(local_engine_udf ${child})
- endforeach()
- endif ()
+ add_gtest_sources(local_engine_gtest .)
+ if(ENABLE_LOCAL_UDFS)
+ file(
+ GLOB children CONFIGURE_DEPENDS
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ../Parser/*_udf/tests)
+ foreach(child ${children})
+ add_gtest_sources(local_engine_gtest ${child})
+ endforeach()
- file(GLOB children CONFIGURE_DEPENDS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
../Parser/*_function_parser)
+ file(
+ GLOB children CONFIGURE_DEPENDS
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ../Parser/*_udf)
foreach(child ${children})
- add_headers_and_sources(local_engine_function_parser ${child})
+ add_headers_and_sources(local_engine_udf ${child})
endforeach()
+ endif()
+ file(
+ GLOB children CONFIGURE_DEPENDS
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ../Parser/*_function_parser)
+ foreach(child ${children})
+ add_headers_and_sources(local_engine_function_parser ${child})
+ endforeach()
- message("local engine gtest sources: ${local_engine_gtest_sources}")
- message("local engine udf sources: ${local_engine_udf_sources}")
- message("local engine function parser sources:
${local_engine_function_parser_sources}")
+ message("local engine gtest sources: ${local_engine_gtest_sources}")
+ message("local engine udf sources: ${local_engine_udf_sources}")
+ message(
+ "local engine function parser sources:
${local_engine_function_parser_sources}"
+ )
- add_executable(unit_tests_local_engine
- gluten_test_util.cpp
- ${local_engine_gtest_sources}
- ${local_engine_udf_sources}
- ${local_engine_function_parser_sources})
- target_include_directories(unit_tests_local_engine PRIVATE
- ${ClickHouse_SOURCE_DIR}/utils/extern-local_engine
- ${CMAKE_CURRENT_SOURCE_DIR}
- )
- # no-unreachable-code for GTEST_SKIP
- target_compile_options(unit_tests_local_engine PRIVATE
-Wno-unreachable-code)
- target_link_libraries(unit_tests_local_engine PRIVATE
gluten_clickhouse_backend_libs clickhouse_parsers loggers ch_contrib::gmock_all
ch_contrib::gtest)
- target_link_libraries(unit_tests_local_engine PRIVATE ch_parquet)
+ add_executable(
+ unit_tests_local_engine
+ gluten_test_util.cpp ${local_engine_gtest_sources}
+ ${local_engine_udf_sources} ${local_engine_function_parser_sources})
+ target_include_directories(
+ unit_tests_local_engine
+ PRIVATE ${ClickHouse_SOURCE_DIR}/utils/extern-local_engine
+ ${CMAKE_CURRENT_SOURCE_DIR})
+ # no-unreachable-code for GTEST_SKIP
+ target_compile_options(unit_tests_local_engine PRIVATE -Wno-unreachable-code)
+ target_link_libraries(
+ unit_tests_local_engine
+ PRIVATE gluten_clickhouse_backend_libs clickhouse_parsers loggers
+ ch_contrib::gmock_all ch_contrib::gtest)
+ target_link_libraries(unit_tests_local_engine PRIVATE ch_parquet)
endif()
-if (ENABLE_BENCHMARKS)
- include_directories(benchmark_local_engine SYSTEM PUBLIC
- ${ClickHouse_SOURCE_DIR}/utils/extern-local_engine
- )
- add_executable(benchmark_local_engine
- gluten_test_util.cpp
- benchmark_local_engine.cpp
- benchmark_parquet_read.cpp
- benchmark_spark_row.cpp
- benchmark_unix_timestamp_function.cpp
- benchmark_spark_floor_function.cpp
- benchmark_cast_float_function.cpp
- benchmark_to_datetime_function.cpp
- benchmark_spark_divide_function.cpp)
- target_link_libraries(benchmark_local_engine PRIVATE
gluten_clickhouse_backend_libs ch_contrib::gbenchmark_all loggers ch_parquet)
+if(ENABLE_BENCHMARKS)
+ include_directories(benchmark_local_engine SYSTEM PUBLIC
+ ${ClickHouse_SOURCE_DIR}/utils/extern-local_engine)
+ add_executable(
+ benchmark_local_engine
+ gluten_test_util.cpp
+ benchmark_local_engine.cpp
+ benchmark_parquet_read.cpp
+ benchmark_spark_row.cpp
+ benchmark_unix_timestamp_function.cpp
+ benchmark_spark_floor_function.cpp
+ benchmark_cast_float_function.cpp
+ benchmark_to_datetime_function.cpp
+ benchmark_spark_divide_function.cpp)
+ target_link_libraries(
+ benchmark_local_engine
+ PRIVATE gluten_clickhouse_backend_libs ch_contrib::gbenchmark_all loggers
+ ch_parquet)
endif()
diff --git a/cpp/CMake/BuildGTest.cmake b/cpp/CMake/BuildGTest.cmake
index fff99455c..d85578c05 100644
--- a/cpp/CMake/BuildGTest.cmake
+++ b/cpp/CMake/BuildGTest.cmake
@@ -6,15 +6,14 @@ set(GLUTEN_GTEST_BUILD_SHA256_CHECKSUM
ad7fdba11ea011c1d925b3289cf4af2c66a352e18d4c7264392fead75e919363)
set(GLUTEN_GTEST_SOURCE_URL
"https://github.com/google/googletest/archive/refs/tags/v${GLUTEN_GTEST_VERSION}.tar.gz"
- )
+)
resolve_dependency_url(GTEST)
message(STATUS "Building gtest from source")
FetchContent_Declare(
- gtest
- URL ${GLUTEN_GTEST_SOURCE_URL}
- URL_HASH "${GLUTEN_GTEST_BUILD_SHA256_CHECKSUM}"
-)
+ gtest
+ URL ${GLUTEN_GTEST_SOURCE_URL}
+ URL_HASH "${GLUTEN_GTEST_BUILD_SHA256_CHECKSUM}")
FetchContent_MakeAvailable(gtest)
diff --git a/cpp/CMake/BuildGflags.cmake b/cpp/CMake/BuildGflags.cmake
index 4cb201115..8e66bd6b9 100644
--- a/cpp/CMake/BuildGflags.cmake
+++ b/cpp/CMake/BuildGflags.cmake
@@ -17,10 +17,10 @@
include_guard(GLOBAL)
set(GLUTEN_GFLAGS_BUILD_SHA256_CHECKSUM
- 34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf)
+ 34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf)
string(CONCAT GLUTEN_GFLAGS_SOURCE_URL
- "https://github.com/gflags/gflags/archive/refs/tags/"
- "v${GLUTEN_GFLAGS_VERSION}.tar.gz")
+ "https://github.com/gflags/gflags/archive/refs/tags/"
+ "v${GLUTEN_GFLAGS_VERSION}.tar.gz")
resolve_dependency_url(GFLAGS)
diff --git a/cpp/CMake/BuildGlog.cmake b/cpp/CMake/BuildGlog.cmake
index cf405225c..3f0f78a16 100644
--- a/cpp/CMake/BuildGlog.cmake
+++ b/cpp/CMake/BuildGlog.cmake
@@ -14,10 +14,10 @@
include_guard(GLOBAL)
set(GLUTEN_GLOG_BUILD_SHA256_CHECKSUM
- 8a83bf982f37bb70825df71a9709fa90ea9f4447fb3c099e1d720a439d88bad6)
+ 8a83bf982f37bb70825df71a9709fa90ea9f4447fb3c099e1d720a439d88bad6)
set(GLUTEN_GLOG_SOURCE_URL
-
"https://github.com/google/glog/archive/refs/tags/v${GLUTEN_GLOG_VERSION}.tar.gz"
- )
+
"https://github.com/google/glog/archive/refs/tags/v${GLUTEN_GLOG_VERSION}.tar.gz"
+)
resolve_dependency_url(GLOG)
@@ -27,7 +27,7 @@ FetchContent_Declare(
URL ${GLUTEN_GLOG_SOURCE_URL}
URL_HASH SHA256=${GLUTEN_GLOG_BUILD_SHA256_CHECKSUM}
PATCH_COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/glog/glog-no-export.patch
- && git apply ${CMAKE_CURRENT_LIST_DIR}/glog/glog-config.patch)
+ && git apply ${CMAKE_CURRENT_LIST_DIR}/glog/glog-config.patch)
set(BUILD_SHARED_LIBS OFF)
set(WITH_UNWIND OFF)
@@ -48,6 +48,6 @@ endif()
# These headers are missing from the include dir but adding the src dir causes
# issues with folly so we just copy it to the include dir
file(COPY ${glog_SOURCE_DIR}/src/glog/platform.h
- DESTINATION ${glog_BINARY_DIR}/glog)
+ DESTINATION ${glog_BINARY_DIR}/glog)
file(COPY ${glog_SOURCE_DIR}/src/glog/log_severity.h
- DESTINATION ${glog_BINARY_DIR}/glog)
+ DESTINATION ${glog_BINARY_DIR}/glog)
diff --git a/cpp/CMake/BuildGoogleBenchmark.cmake
b/cpp/CMake/BuildGoogleBenchmark.cmake
index 8efbb58ea..a71d73432 100644
--- a/cpp/CMake/BuildGoogleBenchmark.cmake
+++ b/cpp/CMake/BuildGoogleBenchmark.cmake
@@ -21,8 +21,10 @@ include(FetchContent)
set(GLUTEN_GBENCHMARK_BUILD_VERSION "v1.6.0")
set(GLUTEN_GBENCHMARK_SOURCE_URL
"https://github.com/google/benchmark/archive/refs/tags/${GLUTEN_GBENCHMARK_BUILD_VERSION}.tar.gz"
-
"https://github.com/ursa-labs/thirdparty/releases/download/latest/gbenchmark-${GLUTEN_GBENCHMARK_BUILD_VERSION}.tar.gz")
-set(GLUTEN_GBENCHMARK_BUILD_SHA256_CHECKSUM
"1f71c72ce08d2c1310011ea6436b31e39ccab8c2db94186d26657d41747c85d6")
+
"https://github.com/ursa-labs/thirdparty/releases/download/latest/gbenchmark-${GLUTEN_GBENCHMARK_BUILD_VERSION}.tar.gz"
+)
+set(GLUTEN_GBENCHMARK_BUILD_SHA256_CHECKSUM
+ "1f71c72ce08d2c1310011ea6436b31e39ccab8c2db94186d26657d41747c85d6")
resolve_dependency_url(GBENCHMARK)
@@ -30,12 +32,11 @@ set(GBENCHMARK_CMAKE_ARGS "-fPIC -w")
message(STATUS "Building google benchmark from source")
FetchContent_Declare(
- gbenchmark
- URL ${GLUTEN_GBENCHMARK_SOURCE_URL}
- URL_HASH "${GLUTEN_GBENCHMARK_BUILD_SHA256_CHECKSUM}"
-)
+ gbenchmark
+ URL ${GLUTEN_GBENCHMARK_SOURCE_URL}
+ URL_HASH "${GLUTEN_GBENCHMARK_BUILD_SHA256_CHECKSUM}")
-if (NOT gbenchmark_POPULATED)
+if(NOT gbenchmark_POPULATED)
# We don't want to build tests.
set(BENCHMARK_ENABLE_TESTING
OFF
diff --git a/cpp/CMake/BuildMemkind.cmake b/cpp/CMake/BuildMemkind.cmake
index 039db0cc0..2f2248de6 100644
--- a/cpp/CMake/BuildMemkind.cmake
+++ b/cpp/CMake/BuildMemkind.cmake
@@ -26,48 +26,50 @@ endif()
macro(build_hwloc)
message(STATUS "Building hwloc from source")
set(HWLOC_BUILD_VERSION "2.8.0")
- set(HWLOC_BUILD_SHA256_CHECKSUM
"311d44e99bbf6d269c2cbc569d073978d88352bc31d51e31457d4df94783172d")
+ set(HWLOC_BUILD_SHA256_CHECKSUM
+ "311d44e99bbf6d269c2cbc569d073978d88352bc31d51e31457d4df94783172d")
set(HWLOC_SOURCE_URL
-
"https://github.com/open-mpi/hwloc/archive/refs/tags/hwloc-${HWLOC_BUILD_VERSION}.tar.gz")
+
"https://github.com/open-mpi/hwloc/archive/refs/tags/hwloc-${HWLOC_BUILD_VERSION}.tar.gz"
+ )
set(HWLOC_LIB_NAME "hwloc")
set(HWLOC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/hwloc_ep-install")
set(HWLOC_SOURCE_DIR "${HWLOC_PREFIX}/src/hwloc_ep")
set(HWLOC_INCLUDE_DIR "${HWLOC_SOURCE_DIR}/include")
set(HWLOC_LIB_DIR "${HWLOC_SOURCE_DIR}/hwloc/.libs")
- set(HWLOC_STATIC_LIB_NAME
"${CMAKE_STATIC_LIBRARY_PREFIX}${HWLOC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(HWLOC_STATIC_LIB_NAME
+
"${CMAKE_STATIC_LIBRARY_PREFIX}${HWLOC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
set(HWLOC_STATIC_LIB_TARGETS
- "${HWLOC_SOURCE_DIR}/src/.libs/${HWLOC_STATIC_LIB_NAME}")
+ "${HWLOC_SOURCE_DIR}/src/.libs/${HWLOC_STATIC_LIB_NAME}")
set(HWLOC_CONFIGURE_ARGS
- "--prefix=${HWLOC_PREFIX}"
- "--with-pic"
- "--enable-static"
- "--disable-shared"
- "--enable-plugins")
- ExternalProject_Add(hwloc_ep
- PREFIX ${HWLOC_PREFIX}
- URL ${HWLOC_SOURCE_URL}
- URL_HASH "SHA256=${HWLOC_BUILD_SHA256_CHECKSUM}"
- SOURCE_DIR ${HWLOC_SOURCE_DIR}
- CONFIGURE_COMMAND ./configure ${HWLOC_CONFIGURE_ARGS}
- BUILD_COMMAND ${MAKE}
- BUILD_BYPRODUCTS ${HWLOC_STATIC_LIB_TARGETS}
- BUILD_IN_SOURCE 1)
+ "--prefix=${HWLOC_PREFIX}" "--with-pic" "--enable-static"
+ "--disable-shared" "--enable-plugins")
+ ExternalProject_Add(
+ hwloc_ep
+ PREFIX ${HWLOC_PREFIX}
+ URL ${HWLOC_SOURCE_URL}
+ URL_HASH "SHA256=${HWLOC_BUILD_SHA256_CHECKSUM}"
+ SOURCE_DIR ${HWLOC_SOURCE_DIR}
+ CONFIGURE_COMMAND ./configure ${HWLOC_CONFIGURE_ARGS}
+ BUILD_COMMAND ${MAKE}
+ BUILD_BYPRODUCTS ${HWLOC_STATIC_LIB_TARGETS}
+ BUILD_IN_SOURCE 1)
- ExternalProject_Add_Step(hwloc_ep pre-configure
- COMMAND ./autogen.sh
- DEPENDEES download
- DEPENDERS configure
- WORKING_DIRECTORY ${HWLOC_SOURCE_DIR})
+ ExternalProject_Add_Step(
+ hwloc_ep pre-configure
+ COMMAND ./autogen.sh
+ DEPENDEES download
+ DEPENDERS configure
+ WORKING_DIRECTORY ${HWLOC_SOURCE_DIR})
# The include directory must exist before it is referenced by a target.
file(MAKE_DIRECTORY "${HWLOC_INCLUDE_DIR}")
add_library(hwloc::hwloc STATIC IMPORTED)
- set_target_properties(hwloc::hwloc
- PROPERTIES IMPORTED_LOCATION
- "${HWLOC_LIB_DIR}/${HWLOC_STATIC_LIB_NAME}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${HWLOC_INCLUDE_DIR}")
+ set_target_properties(
+ hwloc::hwloc
+ PROPERTIES IMPORTED_LOCATION "${HWLOC_LIB_DIR}/${HWLOC_STATIC_LIB_NAME}"
+ INTERFACE_INCLUDE_DIRECTORIES "${HWLOC_INCLUDE_DIR}")
add_dependencies(hwloc::hwloc hwloc_ep)
endmacro()
@@ -75,36 +77,43 @@ endmacro()
macro(build_memkind)
message(STATUS "Building Memkind from source")
set(MEMKIND_BUILD_VERSION "v1.14.0")
- set(MEMKIND_BUILD_SHA256_CHECKSUM
"ab366b20b5a87ea655483631fc762ba6eb59eb6c3a08652e643f1ee3f06a6a12")
+ set(MEMKIND_BUILD_SHA256_CHECKSUM
+ "ab366b20b5a87ea655483631fc762ba6eb59eb6c3a08652e643f1ee3f06a6a12")
set(MEMKIND_SOURCE_URL
-
"https://github.com/memkind/memkind/archive/refs/tags/${MEMKIND_BUILD_VERSION}.tar.gz")
+
"https://github.com/memkind/memkind/archive/refs/tags/${MEMKIND_BUILD_VERSION}.tar.gz"
+ )
set(MEMKIND_LIB_NAME "memkind")
set(MEMKIND_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/memkind_ep-install")
set(MEMKIND_SOURCE_DIR "${MEMKIND_PREFIX}/src/memkind_ep")
set(MEMKIND_INCLUDE_DIR "${MEMKIND_SOURCE_DIR}/include")
set(MEMKIND_LIB_DIR "${MEMKIND_SOURCE_DIR}/.libs")
- set(MEMKIND_STATIC_LIB_NAME
"${CMAKE_STATIC_LIBRARY_PREFIX}${MEMKIND_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(MEMKIND_STATIC_LIB_NAME
+
"${CMAKE_STATIC_LIBRARY_PREFIX}${MEMKIND_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
set(MEMKIND_STATIC_LIB_TARGETS
- "${MEMKIND_SOURCE_DIR}/src/.libs/${MEMKIND_STATIC_LIB_NAME}")
- set(MEMKIND_CONFIGURE_ARGS
- "--prefix=${MEMKIND_PREFIX}"
- "--with-pic"
- "--enable-static")
- ExternalProject_Add(memkind_ep
- PREFIX ${MEMKIND_PREFIX}
- URL ${MEMKIND_SOURCE_URL}
- URL_HASH "SHA256=${MEMKIND_BUILD_SHA256_CHECKSUM}"
- SOURCE_DIR ${MEMKIND_SOURCE_DIR}
- CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env LDFLAGS=-L${HWLOC_LIB_DIR}
env CFLAGS=-I${HWLOC_INCLUDE_DIR} env CXXFLAGS=-I${HWLOC_INCLUDE_DIR}
./configure ${MEMKIND_CONFIGURE_ARGS}
- BUILD_COMMAND ${MAKE}
- BUILD_BYPRODUCTS ${MEMKIND_STATIC_LIB_TARGETS}
- BUILD_IN_SOURCE 1)
+ "${MEMKIND_SOURCE_DIR}/src/.libs/${MEMKIND_STATIC_LIB_NAME}")
+ set(MEMKIND_CONFIGURE_ARGS "--prefix=${MEMKIND_PREFIX}" "--with-pic"
+ "--enable-static")
+ ExternalProject_Add(
+ memkind_ep
+ PREFIX ${MEMKIND_PREFIX}
+ URL ${MEMKIND_SOURCE_URL}
+ URL_HASH "SHA256=${MEMKIND_BUILD_SHA256_CHECKSUM}"
+ SOURCE_DIR ${MEMKIND_SOURCE_DIR}
+ CONFIGURE_COMMAND
+ ${CMAKE_COMMAND} -E env LDFLAGS=-L${HWLOC_LIB_DIR} env
+ CFLAGS=-I${HWLOC_INCLUDE_DIR} env CXXFLAGS=-I${HWLOC_INCLUDE_DIR}
+ ./configure ${MEMKIND_CONFIGURE_ARGS}
+ BUILD_COMMAND ${MAKE}
+ BUILD_BYPRODUCTS ${MEMKIND_STATIC_LIB_TARGETS}
+ BUILD_IN_SOURCE 1)
- ExternalProject_Add_Step(memkind_ep pre-configure
- COMMAND ./autogen.sh
- DEPENDEES download
- DEPENDERS configure
- WORKING_DIRECTORY ${MEMKIND_SOURCE_DIR})
+ ExternalProject_Add_Step(
+ memkind_ep pre-configure
+ COMMAND ./autogen.sh
+ DEPENDEES download
+ DEPENDERS configure
+ WORKING_DIRECTORY ${MEMKIND_SOURCE_DIR})
add_dependencies(memkind_ep hwloc::hwloc)
@@ -112,12 +121,12 @@ macro(build_memkind)
file(MAKE_DIRECTORY "${MEMKIND_INCLUDE_DIR}")
add_library(memkind::memkind STATIC IMPORTED)
- set_target_properties(memkind::memkind
- PROPERTIES IMPORTED_LOCATION
- "${MEMKIND_LIB_DIR}/${MEMKIND_STATIC_LIB_NAME}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${MEMKIND_INCLUDE_DIR}")
- target_link_libraries(memkind::memkind INTERFACE hwloc::hwloc dl numa
pthread daxctl)
+ set_target_properties(
+ memkind::memkind
+ PROPERTIES IMPORTED_LOCATION
"${MEMKIND_LIB_DIR}/${MEMKIND_STATIC_LIB_NAME}"
+ INTERFACE_INCLUDE_DIRECTORIES "${MEMKIND_INCLUDE_DIR}")
+ target_link_libraries(memkind::memkind INTERFACE hwloc::hwloc dl numa pthread
+ daxctl)
add_dependencies(memkind::memkind memkind_ep)
endmacro()
diff --git a/cpp/CMake/BuildQATZstd.cmake b/cpp/CMake/BuildQATZstd.cmake
index f6c152db1..f79e9ea58 100644
--- a/cpp/CMake/BuildQATZstd.cmake
+++ b/cpp/CMake/BuildQATZstd.cmake
@@ -28,61 +28,72 @@ macro(build_qatzstd)
include(FindZstd)
message(STATUS "Building QAT-ZSTD from source")
- set(QATZSTD_SOURCE_URL
- "https://github.com/marin-ma/QAT-ZSTD-Plugin.git")
+ set(QATZSTD_SOURCE_URL "https://github.com/marin-ma/QAT-ZSTD-Plugin.git")
set(QATZSTD_SOURCE_BRANCH "fix-duplicate-symbol")
set(QATZSTD_LIB_NAME "qatseqprod")
- set(QATZSTD_PREFIX
- "${CMAKE_CURRENT_BINARY_DIR}/qatzstd_ep-install")
+ set(QATZSTD_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/qatzstd_ep-install")
set(QATZSTD_SOURCE_DIR "${QATZSTD_PREFIX}/src/qatzstd_ep")
set(QATZSTD_INCLUDE_DIR "${QATZSTD_SOURCE_DIR}/src")
- set(QATZSTD_STATIC_LIB_NAME
"${CMAKE_STATIC_LIBRARY_PREFIX}${QATZSTD_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
- set(QATZSTD_STATIC_LIB_TARGETS
"${QATZSTD_SOURCE_DIR}/src/${QATZSTD_STATIC_LIB_NAME}")
+ set(QATZSTD_STATIC_LIB_NAME
+
"${CMAKE_STATIC_LIBRARY_PREFIX}${QATZSTD_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
+ set(QATZSTD_STATIC_LIB_TARGETS
+ "${QATZSTD_SOURCE_DIR}/src/${QATZSTD_STATIC_LIB_NAME}")
set(QATZSTD_MAKE_ARGS "ENABLE_USDM_DRV=1" "ZSTDLIB=${ZSTD_INCLUDE_DIR}")
- ExternalProject_Add(qatzstd_ep
- PREFIX ${QATZSTD_PREFIX}
- GIT_REPOSITORY ${QATZSTD_SOURCE_URL}
- GIT_TAG ${QATZSTD_SOURCE_BRANCH}
- SOURCE_DIR ${QATZSTD_SOURCE_DIR}
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ${MAKE} ${QATZSTD_MAKE_ARGS}
- INSTALL_COMMAND ""
- BUILD_BYPRODUCTS ${QATZSTD_STATIC_LIB_TARGETS}
- BUILD_IN_SOURCE 1)
+ ExternalProject_Add(
+ qatzstd_ep
+ PREFIX ${QATZSTD_PREFIX}
+ GIT_REPOSITORY ${QATZSTD_SOURCE_URL}
+ GIT_TAG ${QATZSTD_SOURCE_BRANCH}
+ SOURCE_DIR ${QATZSTD_SOURCE_DIR}
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ${MAKE} ${QATZSTD_MAKE_ARGS}
+ INSTALL_COMMAND ""
+ BUILD_BYPRODUCTS ${QATZSTD_STATIC_LIB_TARGETS}
+ BUILD_IN_SOURCE 1)
add_library(qatzstd::qatzstd STATIC IMPORTED)
# The include directory must exist before it is referenced by a target.
file(MAKE_DIRECTORY "${QATZSTD_INCLUDE_DIR}")
- set(QATZSTD_INCLUDE_DIRS
- "${QATZSTD_INCLUDE_DIR}"
- "${ZSTD_INCLUDE_DIR}")
+ set(QATZSTD_INCLUDE_DIRS "${QATZSTD_INCLUDE_DIR}" "${ZSTD_INCLUDE_DIR}")
set(QATZSTD_LINK_LIBRARIES
- "${ZSTD_LIBRARY}"
- "${QAT_LIBRARY}"
- "${USDM_DRV_LIBRARY}"
- "${ADF_LIBRARY}"
+ "${ZSTD_LIBRARY}" "${QAT_LIBRARY}" "${USDM_DRV_LIBRARY}" "${ADF_LIBRARY}"
"${OSAL_LIBRARY}")
- set_target_properties(qatzstd::qatzstd
- PROPERTIES IMPORTED_LOCATION
- "${QATZSTD_STATIC_LIB_TARGETS}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${QATZSTD_INCLUDE_DIRS}"
- INTERFACE_LINK_LIBRARIES
- "${QATZSTD_LINK_LIBRARIES}")
+ set_target_properties(
+ qatzstd::qatzstd
+ PROPERTIES IMPORTED_LOCATION "${QATZSTD_STATIC_LIB_TARGETS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${QATZSTD_INCLUDE_DIRS}"
+ INTERFACE_LINK_LIBRARIES "${QATZSTD_LINK_LIBRARIES}")
add_dependencies(qatzstd::qatzstd qatzstd_ep)
endmacro()
-find_library(QAT_LIBRARY REQUIRED NAMES qat PATHS "$ENV{ICP_ROOT}/build"
NO_DEFAULT_PATH)
-find_library(USDM_DRV_LIBRARY REQUIRED NAMES usdm_drv PATHS
"$ENV{ICP_ROOT}/build" NO_DEFAULT_PATH)
-find_library(ADF_LIBRARY REQUIRED NAMES adf PATHS "$ENV{ICP_ROOT}/build"
NO_DEFAULT_PATH)
-find_library(OSAL_LIBRARY REQUIRED NAMES osal PATHS "$ENV{ICP_ROOT}/build"
NO_DEFAULT_PATH)
+find_library(
+ QAT_LIBRARY REQUIRED
+ NAMES qat
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
+find_library(
+ USDM_DRV_LIBRARY REQUIRED
+ NAMES usdm_drv
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
+find_library(
+ ADF_LIBRARY REQUIRED
+ NAMES adf
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
+find_library(
+ OSAL_LIBRARY REQUIRED
+ NAMES osal
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
message(STATUS "Found qat: ${QAT_LIBRARY}")
message(STATUS "Found usdm_drv: ${USDM_DRV_LIBRARY}")
@@ -90,4 +101,3 @@ message(STATUS "Found adf: ${ADF_LIBRARY}")
message(STATUS "Found osal: ${OSAL_LIBRARY}")
build_qatzstd()
-
diff --git a/cpp/CMake/BuildQATzip.cmake b/cpp/CMake/BuildQATzip.cmake
index 376f16455..c68ef25ad 100644
--- a/cpp/CMake/BuildQATzip.cmake
+++ b/cpp/CMake/BuildQATzip.cmake
@@ -26,38 +26,42 @@ endif()
macro(build_qatzip)
message(STATUS "Building QATzip from source")
set(QATZIP_BUILD_VERSION "v1.1.1")
- set(QATZIP_BUILD_SHA256_CHECKSUM
"679f5522deb35e7ffa36f227ae49d07ef2d69a83e56bfda849303829b274e79b")
+ set(QATZIP_BUILD_SHA256_CHECKSUM
+ "679f5522deb35e7ffa36f227ae49d07ef2d69a83e56bfda849303829b274e79b")
set(QATZIP_SOURCE_URL
-
"https://github.com/intel/QATzip/archive/refs/tags/${QATZIP_BUILD_VERSION}.tar.gz")
+
"https://github.com/intel/QATzip/archive/refs/tags/${QATZIP_BUILD_VERSION}.tar.gz"
+ )
set(QATZIP_LIB_NAME "qatzip")
- set(QATZIP_PREFIX
- "${CMAKE_CURRENT_BINARY_DIR}/qatzip_ep-install")
+ set(QATZIP_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/qatzip_ep-install")
set(QATZIP_SOURCE_DIR "${QATZIP_PREFIX}/src/qatzip_ep")
set(QATZIP_INCLUDE_DIR "${QATZIP_SOURCE_DIR}/include")
- set(QATZIP_STATIC_LIB_NAME
"${CMAKE_STATIC_LIBRARY_PREFIX}${QATZIP_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(QATZIP_STATIC_LIB_NAME
+
"${CMAKE_STATIC_LIBRARY_PREFIX}${QATZIP_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
set(QATZIP_STATIC_LIB_TARGETS
"${QATZIP_SOURCE_DIR}/src/.libs/${QATZIP_STATIC_LIB_NAME}")
- set(QATZIP_CONFIGURE_ARGS
- "--prefix=${QATZIP_PREFIX}"
- "--with-pic"
- "--with-ICP_ROOT=$ENV{ICP_ROOT}")
+ set(QATZIP_CONFIGURE_ARGS "--prefix=${QATZIP_PREFIX}" "--with-pic"
+ "--with-ICP_ROOT=$ENV{ICP_ROOT}")
- ExternalProject_Add(qatzip_ep
- PREFIX ${QATZIP_PREFIX}
- URL ${QATZIP_SOURCE_URL}
- URL_HASH "SHA256=${QATZIP_BUILD_SHA256_CHECKSUM}"
- SOURCE_DIR ${QATZIP_SOURCE_DIR}
- CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env QZ_ROOT=${QATZIP_SOURCE_DIR}
./configure ${QATZIP_CONFIGURE_ARGS}
- BUILD_COMMAND ${MAKE} all
- BUILD_BYPRODUCTS ${QATZIP_STATIC_LIB_TARGETS}
- BUILD_IN_SOURCE 1)
+ ExternalProject_Add(
+ qatzip_ep
+ PREFIX ${QATZIP_PREFIX}
+ URL ${QATZIP_SOURCE_URL}
+ URL_HASH "SHA256=${QATZIP_BUILD_SHA256_CHECKSUM}"
+ SOURCE_DIR ${QATZIP_SOURCE_DIR}
+ CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env QZ_ROOT=${QATZIP_SOURCE_DIR}
+ ./configure ${QATZIP_CONFIGURE_ARGS}
+ BUILD_COMMAND ${MAKE} all
+ BUILD_BYPRODUCTS ${QATZIP_STATIC_LIB_TARGETS}
+ BUILD_IN_SOURCE 1)
- ExternalProject_Add_Step(qatzip_ep pre-configure
- COMMAND ./autogen.sh
- DEPENDEES download
- DEPENDERS configure
- WORKING_DIRECTORY ${QATZIP_SOURCE_DIR})
+ ExternalProject_Add_Step(
+ qatzip_ep pre-configure
+ COMMAND ./autogen.sh
+ DEPENDEES download
+ DEPENDERS configure
+ WORKING_DIRECTORY ${QATZIP_SOURCE_DIR})
# The include directory must exist before it is referenced by a target.
file(MAKE_DIRECTORY "${QATZIP_INCLUDE_DIR}")
@@ -73,13 +77,11 @@ macro(build_qatzip)
Threads::Threads)
add_library(qatzip::qatzip STATIC IMPORTED)
- set_target_properties(qatzip::qatzip
- PROPERTIES IMPORTED_LOCATION
- "${QATZIP_STATIC_LIB_TARGETS}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${QATZIP_INCLUDE_DIR}"
- INTERFACE_LINK_LIBRARIES
- "${QATZIP_LINK_LIBRARIES}")
+ set_target_properties(
+ qatzip::qatzip
+ PROPERTIES IMPORTED_LOCATION "${QATZIP_STATIC_LIB_TARGETS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${QATZIP_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES "${QATZIP_LINK_LIBRARIES}")
add_dependencies(qatzip::qatzip qatzip_ep)
endmacro()
@@ -90,10 +92,26 @@ find_package(Threads REQUIRED)
find_library(ZLIB_LIBRARY REQUIRED NAMES z)
find_library(LZ4_LIBRARY REQUIRED NAMES lz4)
find_library(UDEV_LIBRARY REQUIRED NAMES udev)
-find_library(USDM_DRV_LIBRARY REQUIRED NAMES usdm_drv PATHS
"$ENV{ICP_ROOT}/build" NO_DEFAULT_PATH)
-find_library(QAT_LIBRARY REQUIRED NAMES qat PATHS "$ENV{ICP_ROOT}/build"
NO_DEFAULT_PATH)
-find_library(OSAL_LIBRARY REQUIRED NAMES osal PATHS "$ENV{ICP_ROOT}/build"
NO_DEFAULT_PATH)
-find_library(ADF_LIBRARY REQUIRED NAMES adf PATHS "$ENV{ICP_ROOT}/build"
NO_DEFAULT_PATH)
+find_library(
+ USDM_DRV_LIBRARY REQUIRED
+ NAMES usdm_drv
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
+find_library(
+ QAT_LIBRARY REQUIRED
+ NAMES qat
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
+find_library(
+ OSAL_LIBRARY REQUIRED
+ NAMES osal
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
+find_library(
+ ADF_LIBRARY REQUIRED
+ NAMES adf
+ PATHS "$ENV{ICP_ROOT}/build"
+ NO_DEFAULT_PATH)
message(STATUS "Found zlib: ${ZLIB_LIBRARY}")
message(STATUS "Found lz4: ${LZ4_LIBRARY}")
@@ -102,4 +120,3 @@ message(STATUS "Found usdm_drv: ${USDM_DRV_LIBRARY}")
message(STATUS "Found qat: ${QAT_LIBRARY}")
build_qatzip()
-
diff --git a/cpp/CMake/BuildQpl.cmake b/cpp/CMake/BuildQpl.cmake
index dbfd16645..7715bb8e7 100644
--- a/cpp/CMake/BuildQpl.cmake
+++ b/cpp/CMake/BuildQpl.cmake
@@ -18,46 +18,43 @@
include(ExternalProject)
macro(build_qpl)
- message(STATUS "Building QPL from source")
- set(QPL_BUILD_VERSION "v1.1.0")
- set(QPL_BUILD_SHA256_CHECKSUM
"00306000035621dfbc21007481395c46ba9723fc8add8ca5142847b94dc564c5")
- set(QPL_SOURCE_URL
- "https://github.com/intel/qpl/archive/refs/tags/v1.1.0.tar.gz")
- set(QPL_LIB_NAME "qpl")
-
- set(QPL_PREFIX
- "${CMAKE_CURRENT_BINARY_DIR}/qpl_ep-install")
- set(QPL_SOURCE_DIR "${QPL_PREFIX}/src/qpl_ep")
- set(QPL_INCLUDE_DIR "${QPL_PREFIX}/include")
- set(QPL_LIB_DIR "${QPL_PREFIX}/lib")
- set(QPL_STATIC_LIB_NAME
"${CMAKE_STATIC_LIBRARY_PREFIX}${QPL_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}${QPL_STATIC_LIB_MAJOR_VERSION}")
- set(QPL_STATIC_LIB_TARGETS
- "${QPL_LIB_DIR}/${QPL_STATIC_LIB_NAME}"
- )
- ExternalProject_Add(qpl_ep
- PREFIX ${QPL_PREFIX}
- URL ${QPL_SOURCE_URL}
- URL_HASH "SHA256=${QPL_BUILD_SHA256_CHECKSUM}"
- SOURCE_DIR ${QPL_SOURCE_DIR}
- CMAKE_ARGS
- -DCMAKE_INSTALL_PREFIX=${QPL_PREFIX}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DQPL_BUILD_TESTS=OFF
- -DLOG_HW_INIT=ON
- BUILD_BYPRODUCTS ${QPL_STATIC_LIB_TARGETS})
-
- # The include directory must exist before it is referenced by a target.
- file(MAKE_DIRECTORY "${QPL_INCLUDE_DIR}")
-
- add_library(qpl::qpl STATIC IMPORTED)
- set_target_properties(qpl::qpl
- PROPERTIES IMPORTED_LOCATION
- "${QPL_LIB_DIR}/${QPL_STATIC_LIB_NAME}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${QPL_INCLUDE_DIR}")
-
- add_dependencies(qpl::qpl qpl_ep)
+ message(STATUS "Building QPL from source")
+ set(QPL_BUILD_VERSION "v1.1.0")
+ set(QPL_BUILD_SHA256_CHECKSUM
+ "00306000035621dfbc21007481395c46ba9723fc8add8ca5142847b94dc564c5")
+ set(QPL_SOURCE_URL
+ "https://github.com/intel/qpl/archive/refs/tags/v1.1.0.tar.gz")
+ set(QPL_LIB_NAME "qpl")
+
+ set(QPL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/qpl_ep-install")
+ set(QPL_SOURCE_DIR "${QPL_PREFIX}/src/qpl_ep")
+ set(QPL_INCLUDE_DIR "${QPL_PREFIX}/include")
+ set(QPL_LIB_DIR "${QPL_PREFIX}/lib")
+ set(QPL_STATIC_LIB_NAME
+
"${CMAKE_STATIC_LIBRARY_PREFIX}${QPL_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}${QPL_STATIC_LIB_MAJOR_VERSION}"
+ )
+ set(QPL_STATIC_LIB_TARGETS "${QPL_LIB_DIR}/${QPL_STATIC_LIB_NAME}")
+ ExternalProject_Add(
+ qpl_ep
+ PREFIX ${QPL_PREFIX}
+ URL ${QPL_SOURCE_URL}
+ URL_HASH "SHA256=${QPL_BUILD_SHA256_CHECKSUM}"
+ SOURCE_DIR ${QPL_SOURCE_DIR}
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${QPL_PREFIX}
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DQPL_BUILD_TESTS=OFF
+ -DLOG_HW_INIT=ON
+ BUILD_BYPRODUCTS ${QPL_STATIC_LIB_TARGETS})
+
+ # The include directory must exist before it is referenced by a target.
+ file(MAKE_DIRECTORY "${QPL_INCLUDE_DIR}")
+
+ add_library(qpl::qpl STATIC IMPORTED)
+ set_target_properties(
+ qpl::qpl
+ PROPERTIES IMPORTED_LOCATION "${QPL_LIB_DIR}/${QPL_STATIC_LIB_NAME}"
+ INTERFACE_INCLUDE_DIRECTORIES "${QPL_INCLUDE_DIR}")
+
+ add_dependencies(qpl::qpl qpl_ep)
endmacro()
build_qpl()
-
diff --git a/cpp/CMake/ConfigArrow.cmake b/cpp/CMake/ConfigArrow.cmake
index 1ae4ece1b..8f036be53 100644
--- a/cpp/CMake/ConfigArrow.cmake
+++ b/cpp/CMake/ConfigArrow.cmake
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
+if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(ARROW_SHARED_LIBRARY_SUFFIX ".1500.dylib")
set(ARROW_SHARED_LIBRARY_PARENT_SUFFIX ".1500.1.0.dylib")
else()
@@ -30,22 +30,28 @@ set(ARROW_SUBSTRAIT_LIB_NAME "arrow_substrait")
function(FIND_ARROW_LIB LIB_NAME)
if(NOT TARGET Arrow::${LIB_NAME})
- set(ARROW_LIB_FULL_NAME
${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${ARROW_SHARED_LIBRARY_SUFFIX})
+ set(ARROW_LIB_FULL_NAME
+
${CMAKE_SHARED_LIBRARY_PREFIX}${LIB_NAME}${ARROW_SHARED_LIBRARY_SUFFIX})
add_library(Arrow::${LIB_NAME} SHARED IMPORTED)
- find_library(ARROW_LIB_${LIB_NAME}
- NAMES ${ARROW_LIB_FULL_NAME}
- PATHS ${ARROW_LIB_DIR} ${ARROW_LIB64_DIR}
- NO_DEFAULT_PATH)
+ find_library(
+ ARROW_LIB_${LIB_NAME}
+ NAMES ${ARROW_LIB_FULL_NAME}
+ PATHS ${ARROW_LIB_DIR} ${ARROW_LIB64_DIR}
+ NO_DEFAULT_PATH)
if(NOT ARROW_LIB_${LIB_NAME})
message(FATAL_ERROR "Arrow library Not Found: ${ARROW_LIB_FULL_NAME}")
else()
message(STATUS "Found Arrow library: ${ARROW_LIB_${LIB_NAME}}")
- set_target_properties(Arrow::${LIB_NAME}
+ set_target_properties(
+ Arrow::${LIB_NAME}
PROPERTIES IMPORTED_LOCATION "${ARROW_LIB_${LIB_NAME}}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${ARROW_HOME}/install/include")
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${ARROW_HOME}/install/include")
endif()
- file(COPY ${ARROW_LIB_${LIB_NAME}} DESTINATION ${root_directory}/releases/
FOLLOW_SYMLINK_CHAIN)
+ file(
+ COPY ${ARROW_LIB_${LIB_NAME}}
+ DESTINATION ${root_directory}/releases/
+ FOLLOW_SYMLINK_CHAIN)
endif()
endfunction()
diff --git a/cpp/CMake/FindThrift.cmake b/cpp/CMake/FindThrift.cmake
index 07028971d..273500a6a 100644
--- a/cpp/CMake/FindThrift.cmake
+++ b/cpp/CMake/FindThrift.cmake
@@ -12,27 +12,26 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# - Find Thrift (a cross platform RPC lib/tool)
+# * Find Thrift (a cross platform RPC lib/tool)
#
# Variables used by this module, they can change the default behaviour and need
# to be set before calling find_package:
#
-# Thrift_ROOT - When set, this path is inspected instead of standard library
-# locations as the root of the Thrift installation.
-# The environment variable THRIFT_HOME overrides this variable.
+# Thrift_ROOT - When set, this path is inspected instead of standard library
+# locations as the root of the Thrift installation. The environment variable
+# THRIFT_HOME overrides this variable.
#
-# This module defines
-# Thrift_FOUND, whether Thrift is found or not
-# Thrift_COMPILER_FOUND, whether Thrift compiler is found or not
+# This module defines Thrift_FOUND, whether Thrift is found or not
+# Thrift_COMPILER_FOUND, whether Thrift compiler is found or not
#
-# thrift::thrift, a library target to use Thrift
-# thrift::compiler, a executable target to use Thrift compiler
+# thrift::thrift, a library target to use Thrift thrift::compiler, a executable
+# target to use Thrift compiler
function(EXTRACT_THRIFT_VERSION)
if(THRIFT_INCLUDE_DIR)
file(READ "${THRIFT_INCLUDE_DIR}/thrift/config.h" THRIFT_CONFIG_H_CONTENT)
- string(REGEX MATCH "#define PACKAGE_VERSION \"[0-9.]+\""
THRIFT_VERSION_DEFINITION
- "${THRIFT_CONFIG_H_CONTENT}")
+ string(REGEX MATCH "#define PACKAGE_VERSION \"[0-9.]+\""
+ THRIFT_VERSION_DEFINITION "${THRIFT_CONFIG_H_CONTENT}")
string(REGEX MATCH "[0-9.]+" Thrift_VERSION "${THRIFT_VERSION_DEFINITION}")
set(Thrift_VERSION
"${Thrift_VERSION}"
@@ -66,14 +65,16 @@ set(THRIFT_LIB_NAME_BASE "thrift${THRIFT_MSVC_LIB_SUFFIX}")
if(ARROW_THRIFT_USE_SHARED)
set(THRIFT_LIB_NAMES thrift)
if(CMAKE_IMPORT_LIBRARY_SUFFIX)
- list(APPEND
- THRIFT_LIB_NAMES
-
"${CMAKE_IMPORT_LIBRARY_PREFIX}${THRIFT_LIB_NAME_BASE}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
+ list(
+ APPEND
+ THRIFT_LIB_NAMES
+
"${CMAKE_IMPORT_LIBRARY_PREFIX}${THRIFT_LIB_NAME_BASE}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
)
endif()
- list(APPEND
- THRIFT_LIB_NAMES
-
"${CMAKE_SHARED_LIBRARY_PREFIX}${THRIFT_LIB_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ list(
+ APPEND
+ THRIFT_LIB_NAMES
+
"${CMAKE_SHARED_LIBRARY_PREFIX}${THRIFT_LIB_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX}"
)
else()
set(THRIFT_LIB_NAMES
@@ -82,20 +83,24 @@ else()
endif()
if(Thrift_ROOT)
- find_library(THRIFT_LIB
- NAMES ${THRIFT_LIB_NAMES}
- PATHS ${Thrift_ROOT}
- PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib")
- find_path(THRIFT_INCLUDE_DIR thrift/Thrift.h
- PATHS ${Thrift_ROOT}
- PATH_SUFFIXES "include")
- find_program(THRIFT_COMPILER thrift
- PATHS ${Thrift_ROOT}
- PATH_SUFFIXES "bin")
+ find_library(
+ THRIFT_LIB
+ NAMES ${THRIFT_LIB_NAMES}
+ PATHS ${Thrift_ROOT}
+ PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib")
+ find_path(
+ THRIFT_INCLUDE_DIR thrift/Thrift.h
+ PATHS ${Thrift_ROOT}
+ PATH_SUFFIXES "include")
+ find_program(
+ THRIFT_COMPILER thrift
+ PATHS ${Thrift_ROOT}
+ PATH_SUFFIXES "bin")
extract_thrift_version()
else()
- # THRIFT-4760: The pkgconfig files are currently only installed when using
autotools.
- # Starting with 0.13, they are also installed for the CMake-based
installations of Thrift.
+ # THRIFT-4760: The pkgconfig files are currently only installed when using
+ # autotools. Starting with 0.13, they are also installed for the CMake-based
+ # installations of Thrift.
find_package(PkgConfig QUIET)
pkg_check_modules(THRIFT_PC thrift)
if(THRIFT_PC_FOUND)
@@ -103,19 +108,22 @@ else()
list(APPEND THRIFT_PC_LIBRARY_DIRS "${THRIFT_PC_LIBDIR}")
- find_library(THRIFT_LIB
- NAMES ${THRIFT_LIB_NAMES}
- PATHS ${THRIFT_PC_LIBRARY_DIRS}
- NO_DEFAULT_PATH)
- find_program(THRIFT_COMPILER thrift
- HINTS ${THRIFT_PC_PREFIX}
- NO_DEFAULT_PATH
- PATH_SUFFIXES "bin")
+ find_library(
+ THRIFT_LIB
+ NAMES ${THRIFT_LIB_NAMES}
+ PATHS ${THRIFT_PC_LIBRARY_DIRS}
+ NO_DEFAULT_PATH)
+ find_program(
+ THRIFT_COMPILER thrift
+ HINTS ${THRIFT_PC_PREFIX}
+ NO_DEFAULT_PATH
+ PATH_SUFFIXES "bin")
set(Thrift_VERSION ${THRIFT_PC_VERSION})
else()
- find_library(THRIFT_LIB
- NAMES ${THRIFT_LIB_NAMES}
- PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib")
+ find_library(
+ THRIFT_LIB
+ NAMES ${THRIFT_LIB_NAMES}
+ PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib")
find_path(THRIFT_INCLUDE_DIR thrift/Thrift.h PATH_SUFFIXES "include")
find_program(THRIFT_COMPILER thrift PATH_SUFFIXES "bin")
extract_thrift_version()
@@ -140,14 +148,15 @@ if(Thrift_FOUND)
else()
add_library(thrift::thrift STATIC IMPORTED)
endif()
- set_target_properties(thrift::thrift
- PROPERTIES IMPORTED_LOCATION "${THRIFT_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES
"${THRIFT_INCLUDE_DIR}")
+ set_target_properties(
+ thrift::thrift
+ PROPERTIES IMPORTED_LOCATION "${THRIFT_LIB}" INTERFACE_INCLUDE_DIRECTORIES
+ "${THRIFT_INCLUDE_DIR}")
if(WIN32 AND NOT MSVC_TOOLCHAIN)
- # We don't need this for Visual C++ because Thrift uses
- # "#pragma comment(lib, "Ws2_32.lib")" in
- # thrift/windows/config.h for Visual C++.
- set_target_properties(thrift::thrift PROPERTIES INTERFACE_LINK_LIBRARIES
"ws2_32")
+ # We don't need this for Visual C++ because Thrift uses "#pragma
+ # comment(lib, "Ws2_32.lib")" in thrift/windows/config.h for Visual C++.
+ set_target_properties(thrift::thrift PROPERTIES INTERFACE_LINK_LIBRARIES
+ "ws2_32")
endif()
if(Thrift_COMPILER_FOUND)
diff --git a/cpp/CMake/FindZstd.cmake b/cpp/CMake/FindZstd.cmake
index a7efd5adf..62e8b874d 100644
--- a/cpp/CMake/FindZstd.cmake
+++ b/cpp/CMake/FindZstd.cmake
@@ -15,43 +15,44 @@
# specific language governing permissions and limitations
# under the License.
-# ZSTD_HOME environmental variable is used to check for Zstd headers and
static library
+# ZSTD_HOME environmental variable is used to check for Zstd headers and static
+# library
-# ZSTD_INCLUDE_DIR: directory containing headers
-# ZSTD_LIBRARY: path to libzstd.so
-# ZSTD_FOUND: whether zstd has been found
+# ZSTD_INCLUDE_DIR: directory containing headers ZSTD_LIBRARY: path to
+# libzstd.so ZSTD_FOUND: whether zstd has been found
-if (NOT "$ENV{ZSTD_HOME}" STREQUAL "")
+if(NOT "$ENV{ZSTD_HOME}" STREQUAL "")
file(TO_CMAKE_PATH "$ENV{ZSTD_HOME}" _zstd_path)
message(STATUS "ZSTD_HOME: ${_zstd_path}")
else()
set(_zstd_path "/usr/local")
endif()
-find_path(ZSTD_INCLUDE_DIR zstd.h HINTS
- ${_zstd_path}
- PATH_SUFFIXES "include")
+find_path(
+ ZSTD_INCLUDE_DIR zstd.h
+ HINTS ${_zstd_path}
+ PATH_SUFFIXES "include")
-find_library (ZSTD_LIBRARY NAMES zstd HINTS
- ${_zstd_path}
- PATH_SUFFIXES "lib")
+find_library(
+ ZSTD_LIBRARY
+ NAMES zstd
+ HINTS ${_zstd_path}
+ PATH_SUFFIXES "lib")
-if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY)
+if(ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY)
set(ZSTD_FOUND TRUE)
set(ZSTD_HEADER_NAME zstd.h)
set(ZSTD_HEADER ${ZSTD_INCLUDE_DIR}/${ZSTD_HEADER_NAME})
-else ()
+else()
set(ZSTD_FOUND FALSE)
-endif ()
+endif()
-if (ZSTD_FOUND)
+if(ZSTD_FOUND)
message(STATUS "Found the zstd header: ${ZSTD_HEADER}")
message(STATUS "Found the zstd static library: ${ZSTD_LIBRARY}")
-else ()
- message(FATAL_ERROR ZSTD_ERR_MSG "Could not find zstd. Looked in
${_zstd_path}.")
-endif ()
-
-mark_as_advanced(
- ZSTD_INCLUDE_DIR
- ZSTD_LIBRARY)
+else()
+ message(FATAL_ERROR ZSTD_ERR_MSG
+ "Could not find zstd. Looked in ${_zstd_path}.")
+endif()
+mark_as_advanced(ZSTD_INCLUDE_DIR ZSTD_LIBRARY)
diff --git a/cpp/CMake/Findglog.cmake b/cpp/CMake/Findglog.cmake
index b165fd80f..6d9dbdacf 100644
--- a/cpp/CMake/Findglog.cmake
+++ b/cpp/CMake/Findglog.cmake
@@ -22,23 +22,17 @@ if(NOT BUILD_GLOG)
include(FindPackageHandleStandardArgs)
include(SelectLibraryConfigurations)
- find_library(GLOG_LIBRARY_RELEASE glog
- PATHS ${GLOG_LIBRARYDIR})
- find_library(GLOG_LIBRARY_DEBUG glogd
- PATHS ${GLOG_LIBRARYDIR})
+ find_library(GLOG_LIBRARY_RELEASE glog PATHS ${GLOG_LIBRARYDIR})
+ find_library(GLOG_LIBRARY_DEBUG glogd PATHS ${GLOG_LIBRARYDIR})
- find_path(GLOG_INCLUDE_DIR glog/logging.h
- PATHS ${GLOG_INCLUDEDIR})
+ find_path(GLOG_INCLUDE_DIR glog/logging.h PATHS ${GLOG_INCLUDEDIR})
select_library_configurations(GLOG)
- find_package_handle_standard_args(glog DEFAULT_MSG
- GLOG_LIBRARY
- GLOG_INCLUDE_DIR)
+ find_package_handle_standard_args(glog DEFAULT_MSG GLOG_LIBRARY
+ GLOG_INCLUDE_DIR)
- mark_as_advanced(
- GLOG_LIBRARY
- GLOG_INCLUDE_DIR)
+ mark_as_advanced(GLOG_LIBRARY GLOG_INCLUDE_DIR)
endif()
if(NOT glog_FOUND)
@@ -56,26 +50,40 @@ endif()
# glog::glog may already exist. Use google::glog to avoid conflicts.
add_library(google::glog ${libglog_type} IMPORTED)
-set_target_properties(google::glog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${GLOG_INCLUDE_DIR}")
-set_target_properties(google::glog PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION "${GLOG_LIBRARY}")
+set_target_properties(google::glog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${GLOG_INCLUDE_DIR}")
+set_target_properties(
+ google::glog PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${GLOG_LIBRARY}")
set(GLUTEN_GFLAGS_VERSION 2.2.2)
-find_package(gflags ${GLUTEN_GFLAGS_VERSION} CONFIG COMPONENTS
${libgflags_component})
+find_package(gflags ${GLUTEN_GFLAGS_VERSION} CONFIG
+ COMPONENTS ${libgflags_component})
if(NOT gflags_FOUND AND glog_FOUND)
- message(FATAL_ERROR "Glog found but Gflags not found. Set BUILD_GLOG=ON and
reload cmake.")
+ message(
+ FATAL_ERROR
+ "Glog found but Gflags not found. Set BUILD_GLOG=ON and reload cmake.")
endif()
if(gflags_FOUND)
- if(NOT TARGET gflags::gflags_${libgflags_component} AND NOT TARGET
gflags_${libgflags_component})
- message(FATAL_ERROR "Found Gflags but missing component
gflags_${libgflags_component}")
+ if(NOT TARGET gflags::gflags_${libgflags_component}
+ AND NOT TARGET gflags_${libgflags_component})
+ message(
+ FATAL_ERROR
+ "Found Gflags but missing component gflags_${libgflags_component}")
endif()
if(TARGET gflags::gflags_${libgflags_component})
- set_target_properties(google::glog PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES gflags::gflags_${libgflags_component})
+ set_target_properties(
+ google::glog PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES
+ gflags::gflags_${libgflags_component})
else()
- set_target_properties(google::glog PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES gflags_${libgflags_component})
+ set_target_properties(
+ google::glog PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES
+ gflags_${libgflags_component})
endif()
else()
include(BuildGflags)
- set_target_properties(google::glog PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES gflags_static)
+ set_target_properties(
+ google::glog PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES gflags_static)
endif()
diff --git a/cpp/CMake/Findjemalloc_pic.cmake b/cpp/CMake/Findjemalloc_pic.cmake
index 9511dcd33..fae9f0d7a 100644
--- a/cpp/CMake/Findjemalloc_pic.cmake
+++ b/cpp/CMake/Findjemalloc_pic.cmake
@@ -20,7 +20,7 @@ macro(find_jemalloc)
# Find the existing Protobuf
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
find_package(jemalloc_pic)
- if ("${Jemalloc_LIBRARY}" STREQUAL "Jemalloc_LIBRARY-NOTFOUND")
+ if("${Jemalloc_LIBRARY}" STREQUAL "Jemalloc_LIBRARY-NOTFOUND")
message(FATAL_ERROR "Jemalloc Library Not Found")
endif()
set(PROTOC_BIN ${Jemalloc_PROTOC_EXECUTABLE})
@@ -35,22 +35,18 @@ macro(build_jemalloc)
else()
set(JEMALLOC_BUILD_VERSION "5.2.1")
set(JEMALLOC_SOURCE_URL
-
"https://github.com/jemalloc/jemalloc/releases/download/${JEMALLOC_BUILD_VERSION}/jemalloc-${JEMALLOC_BUILD_VERSION}.tar.bz2"
-
"https://github.com/ursa-labs/thirdparty/releases/download/latest/jemalloc-${JEMALLOC_BUILD_VERSION}.tar.bz2"
- )
+
"https://github.com/jemalloc/jemalloc/releases/download/${JEMALLOC_BUILD_VERSION}/jemalloc-${JEMALLOC_BUILD_VERSION}.tar.bz2"
+
"https://github.com/ursa-labs/thirdparty/releases/download/latest/jemalloc-${JEMALLOC_BUILD_VERSION}.tar.bz2"
+ )
endif()
set(JEMALLOC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/jemalloc_ep-install")
set(JEMALLOC_LIB_DIR "${JEMALLOC_PREFIX}/lib")
set(JEMALLOC_INCLUDE_DIR "${JEMALLOC_PREFIX}/include")
- set(
- JEMALLOC_STATIC_LIB
-
"${JEMALLOC_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}jemalloc_pic${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- set(
- JEMALLOC_INCLUDE
- "${JEMALLOC_PREFIX}/include"
- )
+ set(JEMALLOC_STATIC_LIB
+
"${JEMALLOC_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}jemalloc_pic${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
+ set(JEMALLOC_INCLUDE "${JEMALLOC_PREFIX}/include")
set(JEMALLOC_CONFIGURE_ARGS
"AR=${CMAKE_AR}"
"CC=${CMAKE_C_COMPILER}"
@@ -66,14 +62,15 @@ macro(build_jemalloc)
"CFLAGS=-fPIC"
"CXXFLAGS=-fPIC")
set(JEMALLOC_BUILD_COMMAND ${MAKE} ${MAKE_BUILD_ARGS})
- ExternalProject_Add(jemalloc_ep
- URL ${JEMALLOC_SOURCE_URL}
- PATCH_COMMAND touch doc/jemalloc.3 doc/jemalloc.html
- CONFIGURE_COMMAND "./configure"
${JEMALLOC_CONFIGURE_ARGS}
- BUILD_COMMAND ${JEMALLOC_BUILD_COMMAND}
- BUILD_IN_SOURCE 1
- BUILD_BYPRODUCTS "${JEMALLOC_STATIC_LIB}"
- INSTALL_COMMAND make install)
+ ExternalProject_Add(
+ jemalloc_ep
+ URL ${JEMALLOC_SOURCE_URL}
+ PATCH_COMMAND touch doc/jemalloc.3 doc/jemalloc.html
+ CONFIGURE_COMMAND "./configure" ${JEMALLOC_CONFIGURE_ARGS}
+ BUILD_COMMAND ${JEMALLOC_BUILD_COMMAND}
+ BUILD_IN_SOURCE 1
+ BUILD_BYPRODUCTS "${JEMALLOC_STATIC_LIB}"
+ INSTALL_COMMAND make install)
file(MAKE_DIRECTORY "${JEMALLOC_INCLUDE_DIR}")
add_library(jemalloc::libjemalloc STATIC IMPORTED)
@@ -81,7 +78,6 @@ macro(build_jemalloc)
jemalloc::libjemalloc
PROPERTIES INTERFACE_LINK_LIBRARIES Threads::Threads
IMPORTED_LOCATION "${JEMALLOC_STATIC_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES
- "${JEMALLOC_INCLUDE_DIR}")
+ INTERFACE_INCLUDE_DIRECTORIES "${JEMALLOC_INCLUDE_DIR}")
add_dependencies(jemalloc::libjemalloc protobuf_ep)
endmacro()
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index d6e3eeb13..3ee336dd6 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -19,13 +19,13 @@ message(STATUS "Building using CMake version:
${CMAKE_VERSION}")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
-# The set(CACHE) command does not remove any normal variable of the same name
from the current scope
-# https://cmake.org/cmake/help/latest/policy/CMP0126.html
+# The set(CACHE) command does not remove any normal variable of the same name
+# from the current scope
https://cmake.org/cmake/help/latest/policy/CMP0126.html
if(POLICY CMP0126)
cmake_policy(SET CMP0126 NEW)
endif()
-if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
+if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
cmake_policy(SET CMP0135 NEW)
endif()
@@ -36,7 +36,9 @@ if(NOT DEFINED CMAKE_BUILD_TYPE)
endif()
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
+set(CMAKE_EXPORT_COMPILE_COMMANDS
+ ON
+ CACHE INTERNAL "")
project(gluten)
@@ -60,12 +62,12 @@ option(ENABLE_ABFS "Enable ABFS" OFF)
set(root_directory ${PROJECT_BINARY_DIR})
get_filename_component(GLUTEN_HOME ${CMAKE_SOURCE_DIR} DIRECTORY)
-if (NOT DEFINED VELOX_HOME)
+if(NOT DEFINED VELOX_HOME)
set(VELOX_HOME ${GLUTEN_HOME}/ep/build-velox/build/velox_ep)
message(STATUS "Set VELOX_HOME to ${VELOX_HOME}")
endif()
-if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
+if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
set(ARROW_HOME ${VELOX_HOME}/_build/debug/third_party/arrow_ep)
else()
set(ARROW_HOME ${VELOX_HOME}/_build/release/third_party/arrow_ep)
@@ -77,10 +79,10 @@ include(ResolveDependency)
# Compiler flags
#
-if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
+if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb -O0")
message(STATUS "CMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}")
-else ()
+else()
add_definitions(-DNDEBUG)
message(STATUS "Add definition NDEBUG")
endif()
@@ -97,22 +99,20 @@ set(KNOWN_WARNINGS
-Wno-ignored-qualifiers")
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
- set(KNOWN_WARNINGS
- "-Wno-error=unused-but-set-variable \
+ set(KNOWN_WARNINGS "-Wno-error=unused-but-set-variable \
${KNOWN_WARNINGS}")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11)
- set(KNOWN_WARNINGS
- "-Wno-error=maybe-uninitialized \
+ set(KNOWN_WARNINGS "-Wno-error=maybe-uninitialized \
${KNOWN_WARNINGS}")
endif()
-elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
# Experimental
set(KNOWN_WARNINGS
"-Wno-implicit-int-float-conversion \
-Wno-nullability-completeness \
-Wno-mismatched-tags \
${KNOWN_WARNINGS}")
-elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
# Experimental
set(KNOWN_WARNINGS
"-Wno-implicit-int-float-conversion \
@@ -126,15 +126,16 @@ else()
endif()
# see https://issues.apache.org/jira/browse/ARROW-4665
-if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(KNOWN_WARNINGS
"-Wno-macro-redefined \
-Wno-nullability-completeness \
-Wno-pessimizing-move \
-Wno-mismatched-tags \
${KNOWN_WARNINGS}")
- # Specific definition for an issue with boost/stacktrace when building on
macOS.
- # See https://github.com/boostorg/stacktrace/issues/88 and comments therein.
+ # Specific definition for an issue with boost/stacktrace when building on
+ # macOS. See https://github.com/boostorg/stacktrace/issues/88 and comments
+ # therein.
add_compile_definitions(_GNU_SOURCE)
endif()
@@ -166,17 +167,11 @@ endif()
function(ADD_TEST_CASE TEST_NAME)
set(options)
set(one_value_args)
- set(multi_value_args
- SOURCES
- EXTRA_LINK_LIBS
- EXTRA_INCLUDES
- EXTRA_DEPENDENCIES)
-
- cmake_parse_arguments(ARG
- "${options}"
- "${one_value_args}"
- "${multi_value_args}"
- ${ARGN})
+ set(multi_value_args SOURCES EXTRA_LINK_LIBS EXTRA_INCLUDES
+ EXTRA_DEPENDENCIES)
+
+ cmake_parse_arguments(ARG "${options}" "${one_value_args}"
+ "${multi_value_args}" ${ARGN})
if(ARG_SOURCES)
set(SOURCES ${ARG_SOURCES})
@@ -185,7 +180,8 @@ function(ADD_TEST_CASE TEST_NAME)
endif()
add_executable(${TEST_NAME} ${SOURCES})
- target_link_libraries(${TEST_NAME} gluten google::glog GTest::gtest
GTest::gtest_main Threads::Threads)
+ target_link_libraries(${TEST_NAME} gluten google::glog GTest::gtest
+ GTest::gtest_main Threads::Threads)
target_include_directories(${TEST_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/core)
if(ARG_EXTRA_LINK_LIBS)
diff --git a/cpp/core/CMakeLists.txt b/cpp/core/CMakeLists.txt
index dc9ce3435..3a4d6e9e8 100644
--- a/cpp/core/CMakeLists.txt
+++ b/cpp/core/CMakeLists.txt
@@ -23,25 +23,27 @@ include(GNUInstallDirs)
include(CheckCXXCompilerFlag)
# Only set arch=native for non-AppleClang compilers.
-if (NOT CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
+if(NOT CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
set(BOOST_MIN_VERSION "1.42.0")
find_package(Boost REQUIRED)
-INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+include_directories(${Boost_INCLUDE_DIRS})
set(source_root_directory ${CMAKE_CURRENT_SOURCE_DIR})
-if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
+if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
cmake_policy(SET CMP0135 NEW)
endif()
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
-set(SUBSTRAIT_PROTO_SRC_DIR
${GLUTEN_HOME}/gluten-core/src/main/resources/substrait/proto)
+set(SUBSTRAIT_PROTO_SRC_DIR
+ ${GLUTEN_HOME}/gluten-core/src/main/resources/substrait/proto)
message(STATUS "Set Substrait Proto Directory in ${SUBSTRAIT_PROTO_SRC_DIR}")
-set(GLUTEN_PROTO_SRC_DIR
${GLUTEN_HOME}/gluten-core/src/main/resources/org/apache/gluten/proto)
+set(GLUTEN_PROTO_SRC_DIR
+ ${GLUTEN_HOME}/gluten-core/src/main/resources/org/apache/gluten/proto)
message(STATUS "Set Gluten Proto Directory in ${GLUTEN_PROTO_SRC_DIR}")
find_program(CCACHE_FOUND ccache)
@@ -58,31 +60,25 @@ macro(build_protobuf)
set(PROTOBUF_SOURCE_URL "$ENV{GLUTEN_PROTOBUF_URL}")
else()
set(PROTOBUF_BUILD_VERSION "21.4")
- set (PROTOBUF_SOURCE_URL
-
"https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOBUF_BUILD_VERSION}/protobuf-all-${PROTOBUF_BUILD_VERSION}.tar.gz")
+ set(PROTOBUF_SOURCE_URL
+
"https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOBUF_BUILD_VERSION}/protobuf-all-${PROTOBUF_BUILD_VERSION}.tar.gz"
+ )
endif()
- set(PROTOBUF_BUILD_SHA256_CHECKSUM
"6c5e1b0788afba4569aeebb2cfe205cb154aa01deacaba0cd26442f3b761a836")
+ set(PROTOBUF_BUILD_SHA256_CHECKSUM
+ "6c5e1b0788afba4569aeebb2cfe205cb154aa01deacaba0cd26442f3b761a836")
set(PROTOBUF_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/protobuf_ep-install")
set(PROTOBUF_INCLUDE_DIR "${PROTOBUF_PREFIX}/include")
- set(
- PROTOBUF_STATIC_LIB
-
"${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- set(
- PROTOC_STATIC_LIB
-
"${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protoc${CMAKE_STATIC_LIBRARY_SUFFIX}"
- )
- set(
- PROTOC_BIN
- "${PROTOBUF_PREFIX}/bin/protoc"
- )
- set(
- PROTOBUF_INCLUDE
- "${PROTOBUF_PREFIX}/include"
- CACHE PATH
- "Protobuf include path"
- )
+ set(PROTOBUF_STATIC_LIB
+
"${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
+ set(PROTOC_STATIC_LIB
+
"${PROTOBUF_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}protoc${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
+ set(PROTOC_BIN "${PROTOBUF_PREFIX}/bin/protoc")
+ set(PROTOBUF_INCLUDE
+ "${PROTOBUF_PREFIX}/include"
+ CACHE PATH "Protobuf include path")
set(PROTOBUF_COMPILER "${PROTOBUF_PREFIX}/bin/protoc")
set(PROTOBUF_CONFIGURE_ARGS
"AR=${CMAKE_AR}"
@@ -94,22 +90,23 @@ macro(build_protobuf)
"CFLAGS=-fPIC"
"CXXFLAGS=-fPIC")
set(PROTOBUF_BUILD_COMMAND ${MAKE} ${MAKE_BUILD_ARGS})
- ExternalProject_Add(protobuf_ep
- PREFIX protobuf_ep
- CONFIGURE_COMMAND ./autogen.sh COMMAND "./configure"
${PROTOBUF_CONFIGURE_ARGS}
- BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}"
"${PROTOBUF_COMPILER}"
- BUILD_COMMAND ${PROTOBUF_BUILD_COMMAND}
- BUILD_IN_SOURCE 1
- URL ${PROTOBUF_SOURCE_URL}
- URL_HASH "SHA256=${PROTOBUF_BUILD_SHA256_CHECKSUM}"
- )
+ ExternalProject_Add(
+ protobuf_ep
+ PREFIX protobuf_ep
+ CONFIGURE_COMMAND ./autogen.sh
+ COMMAND "./configure" ${PROTOBUF_CONFIGURE_ARGS}
+ BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}" "${PROTOBUF_COMPILER}"
+ BUILD_COMMAND ${PROTOBUF_BUILD_COMMAND}
+ BUILD_IN_SOURCE 1
+ URL ${PROTOBUF_SOURCE_URL}
+ URL_HASH "SHA256=${PROTOBUF_BUILD_SHA256_CHECKSUM}")
file(MAKE_DIRECTORY "${PROTOBUF_INCLUDE_DIR}")
add_library(protobuf::libprotobuf STATIC IMPORTED)
set_target_properties(
protobuf::libprotobuf
- PROPERTIES IMPORTED_LOCATION "${PROTOBUF_STATIC_LIB}"
INTERFACE_INCLUDE_DIRECTORIES
- "${PROTOBUF_INCLUDE_DIR}")
+ PROPERTIES IMPORTED_LOCATION "${PROTOBUF_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${PROTOBUF_INCLUDE_DIR}")
add_dependencies(protobuf::libprotobuf protobuf_ep)
endmacro()
@@ -117,17 +114,19 @@ macro(find_protobuf)
# Find the existing Protobuf
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
find_package(Protobuf)
- if ("${Protobuf_LIBRARY}" STREQUAL "Protobuf_LIBRARY-NOTFOUND")
+ if("${Protobuf_LIBRARY}" STREQUAL "Protobuf_LIBRARY-NOTFOUND")
message(FATAL_ERROR "Protobuf Library Not Found")
endif()
set(PROTOC_BIN ${Protobuf_PROTOC_EXECUTABLE})
- set(PROTOBUF_INCLUDE "${Protobuf_INCLUDE_DIRS}" CACHE PATH "Protobuf include
path")
+ set(PROTOBUF_INCLUDE
+ "${Protobuf_INCLUDE_DIRS}"
+ CACHE PATH "Protobuf include path")
endmacro()
if(USE_AVX512)
# Only enable additional instruction sets if they are supported
message(STATUS "System processor: ${CMAKE_SYSTEM_PROCESSOR}")
- if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
set(AVX512_FLAG "-march=skylake-avx512")
check_cxx_compiler_flag(${AVX512_FLAG} CXX_SUPPORTS_AVX512)
if(NOT CXX_SUPPORTS_AVX512)
@@ -135,7 +134,7 @@ if(USE_AVX512)
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${AVX512_FLAG}")
add_definitions(-DCOLUMNAR_PLUGIN_USE_AVX512)
- endif ()
+ endif()
endif()
# Set up Proto
@@ -144,83 +143,90 @@ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/proto)
# List Substrait Proto compiled files
file(GLOB SUBSTRAIT_PROTO_FILES ${SUBSTRAIT_PROTO_SRC_DIR}/substrait/*.proto
- ${SUBSTRAIT_PROTO_SRC_DIR}/substrait/extensions/*.proto)
-FOREACH(PROTO ${SUBSTRAIT_PROTO_FILES})
+ ${SUBSTRAIT_PROTO_SRC_DIR}/substrait/extensions/*.proto)
+foreach(PROTO ${SUBSTRAIT_PROTO_FILES})
file(RELATIVE_PATH REL_PROTO ${SUBSTRAIT_PROTO_SRC_DIR} ${PROTO})
string(REGEX REPLACE "\\.proto" "" PROTO_NAME ${REL_PROTO})
- LIST(APPEND SUBSTRAIT_PROTO_SRCS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.cc")
- LIST(APPEND SUBSTRAIT_PROTO_HDRS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.h")
-ENDFOREACH()
-set(SUBSTRAIT_PROTO_OUTPUT_FILES ${SUBSTRAIT_PROTO_HDRS}
${SUBSTRAIT_PROTO_SRCS})
-set_source_files_properties(${SUBSTRAIT_PROTO_OUTPUT_FILES} PROPERTIES
GENERATED TRUE)
-get_filename_component(SUBSTRAIT_PROTO_DIR ${SUBSTRAIT_PROTO_SRC_DIR}/
DIRECTORY)
+ list(APPEND SUBSTRAIT_PROTO_SRCS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.cc")
+ list(APPEND SUBSTRAIT_PROTO_HDRS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.h")
+endforeach()
+set(SUBSTRAIT_PROTO_OUTPUT_FILES ${SUBSTRAIT_PROTO_HDRS}
+ ${SUBSTRAIT_PROTO_SRCS})
+set_source_files_properties(${SUBSTRAIT_PROTO_OUTPUT_FILES} PROPERTIES
GENERATED
+ TRUE)
+get_filename_component(SUBSTRAIT_PROTO_DIR ${SUBSTRAIT_PROTO_SRC_DIR}/
+ DIRECTORY)
# List Gluten Proto compiled files
file(GLOB GLUTEN_PROTO_FILES ${GLUTEN_PROTO_SRC_DIR}/*.proto)
-FOREACH(PROTO ${GLUTEN_PROTO_FILES})
+foreach(PROTO ${GLUTEN_PROTO_FILES})
file(RELATIVE_PATH REL_PROTO ${GLUTEN_PROTO_SRC_DIR} ${PROTO})
string(REGEX REPLACE "\\.proto" "" PROTO_NAME ${REL_PROTO})
- LIST(APPEND GLUTEN_PROTO_SRCS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.cc")
- LIST(APPEND GLUTEN_PROTO_HDRS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.h")
-ENDFOREACH()
+ list(APPEND GLUTEN_PROTO_SRCS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.cc")
+ list(APPEND GLUTEN_PROTO_HDRS "${PROTO_OUTPUT_DIR}/${PROTO_NAME}.pb.h")
+endforeach()
set(GLUTEN_PROTO_OUTPUT_FILES ${GLUTEN_PROTO_HDRS} ${GLUTEN_PROTO_SRCS})
-set_source_files_properties(${GLUTEN_PROTO_OUTPUT_FILES} PROPERTIES GENERATED
TRUE)
+set_source_files_properties(${GLUTEN_PROTO_OUTPUT_FILES} PROPERTIES GENERATED
+ TRUE)
get_filename_component(GLUTEN_PROTO_DIR ${GLUTEN_PROTO_SRC_DIR}/ DIRECTORY)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations
-Wno-attributes")
+set(CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations -Wno-attributes")
message("Core module final CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}")
set(SPARK_COLUMNAR_PLUGIN_SRCS
- ${SUBSTRAIT_PROTO_SRCS}
- ${GLUTEN_PROTO_SRCS}
- compute/Runtime.cc
- compute/ProtobufUtils.cc
- compute/ResultIterator.cc
- config/GlutenConfig.cc
- jni/JniWrapper.cc
- memory/AllocationListener.cc
- memory/MemoryAllocator.cc
- memory/ArrowMemoryPool.cc
- memory/ColumnarBatch.cc
- operators/writer/ArrowWriter.cc
- shuffle/FallbackRangePartitioner.cc
- shuffle/HashPartitioner.cc
- shuffle/LocalPartitionWriter.cc
- shuffle/Options.cc
- shuffle/Partitioner.cc
- shuffle/Partitioning.cc
- shuffle/Payload.cc
- shuffle/rss/RssPartitionWriter.cc
- shuffle/RoundRobinPartitioner.cc
- shuffle/ShuffleMemoryPool.cc
- shuffle/ShuffleReader.cc
- shuffle/SinglePartitioner.cc
- shuffle/Spill.cc
- shuffle/Utils.cc
- utils/Compression.cc
- utils/StringUtil.cc
- utils/ObjectStore.cc
- jni/JniError.cc
- jni/JniCommon.cc)
+ ${SUBSTRAIT_PROTO_SRCS}
+ ${GLUTEN_PROTO_SRCS}
+ compute/Runtime.cc
+ compute/ProtobufUtils.cc
+ compute/ResultIterator.cc
+ config/GlutenConfig.cc
+ jni/JniWrapper.cc
+ memory/AllocationListener.cc
+ memory/MemoryAllocator.cc
+ memory/ArrowMemoryPool.cc
+ memory/ColumnarBatch.cc
+ operators/writer/ArrowWriter.cc
+ shuffle/FallbackRangePartitioner.cc
+ shuffle/HashPartitioner.cc
+ shuffle/LocalPartitionWriter.cc
+ shuffle/Options.cc
+ shuffle/Partitioner.cc
+ shuffle/Partitioning.cc
+ shuffle/Payload.cc
+ shuffle/rss/RssPartitionWriter.cc
+ shuffle/RoundRobinPartitioner.cc
+ shuffle/ShuffleMemoryPool.cc
+ shuffle/ShuffleReader.cc
+ shuffle/SinglePartitioner.cc
+ shuffle/Spill.cc
+ shuffle/Utils.cc
+ utils/Compression.cc
+ utils/StringUtil.cc
+ utils/ObjectStore.cc
+ jni/JniError.cc
+ jni/JniCommon.cc)
file(MAKE_DIRECTORY ${root_directory}/releases)
add_library(gluten SHARED ${SPARK_COLUMNAR_PLUGIN_SRCS})
add_dependencies(gluten jni_proto)
if(ENABLE_GLUTEN_VCPKG)
- # Hide symbols of some static dependencies. Otherwise, if such dependencies
are already
- # statically linked to libvelox.so, a runtime error will be reported: xxx is
being linked
- # both statically and dynamically.
- target_link_options(gluten PRIVATE
-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/symbols.map)
+ # Hide symbols of some static dependencies. Otherwise, if such dependencies
+ # are already statically linked to libvelox.so, a runtime error will be
+ # reported: xxx is being linked both statically and dynamically.
+ target_link_options(
+ gluten PRIVATE
-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/symbols.map)
endif()
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
- execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=libstdc++fs.a
+ execute_process(
+ COMMAND ${CMAKE_C_COMPILER} -print-file-name=libstdc++fs.a
RESULT_VARIABLE LIBSTDCXXFS_STATIC_RESULT
OUTPUT_VARIABLE LIBSTDCXXFS_STATIC_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (LIBSTDCXXFS_STATIC_RESULT EQUAL 0 AND EXISTS
"${LIBSTDCXXFS_STATIC_PATH}")
+ if(LIBSTDCXXFS_STATIC_RESULT EQUAL 0 AND EXISTS "${LIBSTDCXXFS_STATIC_PATH}")
message(STATUS "libstdc++fs.a found at: ${LIBSTDCXXFS_STATIC_PATH}")
target_link_libraries(gluten PRIVATE ${LIBSTDCXXFS_STATIC_PATH})
else()
@@ -243,57 +249,55 @@ if(ENABLE_QAT)
include(BuildQATzip)
include(BuildQATZstd)
target_sources(gluten PRIVATE utils/qat/QatCodec.cc)
- target_include_directories(gluten PUBLIC ${QATZIP_INCLUDE_DIR}
${QATZSTD_INCLUDE_DIR})
+ target_include_directories(gluten PUBLIC ${QATZIP_INCLUDE_DIR}
+ ${QATZSTD_INCLUDE_DIR})
target_link_libraries(gluten PUBLIC qatzip::qatzip qatzstd::qatzstd)
endif()
if(ENABLE_IAA)
include(BuildQpl)
target_include_directories(gluten PUBLIC ${QPL_INCLUDE_DIR})
- target_sources(gluten PRIVATE utils/qpl/qpl_job_pool.cc
utils/qpl/qpl_codec.cc)
+ target_sources(gluten PRIVATE utils/qpl/qpl_job_pool.cc
+ utils/qpl/qpl_codec.cc)
target_link_libraries(gluten PUBLIC qpl::qpl)
endif()
if(BUILD_PROTOBUF)
build_protobuf()
message(STATUS "Building ProtoBuf from Source: ${BUILD_PROTOBUF}")
- target_link_libraries(gluten
- LINK_PRIVATE protobuf::libprotobuf)
+ target_link_libraries(gluten LINK_PRIVATE protobuf::libprotobuf)
else()
find_protobuf()
message(STATUS "Use existing ProtoBuf libraries: ${PROTOBUF_LIBRARY}")
- target_link_libraries(gluten
- LINK_PUBLIC ${PROTOBUF_LIBRARY})
+ target_link_libraries(gluten LINK_PUBLIC ${PROTOBUF_LIBRARY})
endif()
-add_custom_command(OUTPUT ${SUBSTRAIT_PROTO_OUTPUT_FILES}
- COMMAND ${PROTOC_BIN}
- --proto_path
- ${SUBSTRAIT_PROTO_SRC_DIR}/
- --cpp_out
- ${PROTO_OUTPUT_DIR}
- ${SUBSTRAIT_PROTO_FILES}
- DEPENDS ${SUBSTRAIT_PROTO_DIR}
- COMMENT "Running Substrait PROTO compiler"
- VERBATIM)
-
-add_custom_command(OUTPUT ${GLUTEN_PROTO_OUTPUT_FILES}
- COMMAND ${PROTOC_BIN}
- --proto_path
- ${GLUTEN_PROTO_SRC_DIR}/
- --cpp_out
- ${PROTO_OUTPUT_DIR}
- ${GLUTEN_PROTO_FILES}
- DEPENDS ${GLUTEN_PROTO_DIR}
- COMMENT "Running Gluten PROTO compiler"
- VERBATIM)
-
-add_custom_target(jni_proto ALL DEPENDS ${SUBSTRAIT_PROTO_OUTPUT_FILES}
${GLUTEN_PROTO_OUTPUT_FILES})
+add_custom_command(
+ OUTPUT ${SUBSTRAIT_PROTO_OUTPUT_FILES}
+ COMMAND ${PROTOC_BIN} --proto_path ${SUBSTRAIT_PROTO_SRC_DIR}/ --cpp_out
+ ${PROTO_OUTPUT_DIR} ${SUBSTRAIT_PROTO_FILES}
+ DEPENDS ${SUBSTRAIT_PROTO_DIR}
+ COMMENT "Running Substrait PROTO compiler"
+ VERBATIM)
+
+add_custom_command(
+ OUTPUT ${GLUTEN_PROTO_OUTPUT_FILES}
+ COMMAND ${PROTOC_BIN} --proto_path ${GLUTEN_PROTO_SRC_DIR}/ --cpp_out
+ ${PROTO_OUTPUT_DIR} ${GLUTEN_PROTO_FILES}
+ DEPENDS ${GLUTEN_PROTO_DIR}
+ COMMENT "Running Gluten PROTO compiler"
+ VERBATIM)
+
+add_custom_target(jni_proto ALL DEPENDS ${SUBSTRAIT_PROTO_OUTPUT_FILES}
+ ${GLUTEN_PROTO_OUTPUT_FILES})
add_dependencies(jni_proto protobuf::libprotobuf)
-target_include_directories(gluten PUBLIC ${CMAKE_SYSTEM_INCLUDE_PATH}
${JNI_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR} ${PROTO_OUTPUT_DIR}
${PROTOBUF_INCLUDE})
-set_target_properties(gluten PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY ${root_directory}/releases)
+target_include_directories(
+ gluten
+ PUBLIC ${CMAKE_SYSTEM_INCLUDE_PATH} ${JNI_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_SOURCE_DIR} ${PROTO_OUTPUT_DIR} ${PROTOBUF_INCLUDE})
+set_target_properties(gluten PROPERTIES LIBRARY_OUTPUT_DIRECTORY
+ ${root_directory}/releases)
include(Findjemalloc_pic)
# Build Jemalloc
@@ -313,23 +317,26 @@ if(BUILD_BENCHMARKS)
add_subdirectory(benchmarks)
endif()
-
if(DEFINED ENV{HADOOP_HOME})
set(LIBHDFS3_DESTINATION $ENV{HADOOP_HOME}/lib/native)
else()
set(LIBHDFS3_DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
-target_link_libraries(gluten
- PUBLIC Arrow::arrow Arrow::parquet)
+target_link_libraries(gluten PUBLIC Arrow::arrow Arrow::parquet)
target_link_libraries(gluten PRIVATE google::glog)
-install(TARGETS gluten
- DESTINATION ${CMAKE_INSTALL_LIBDIR})
+install(TARGETS gluten DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/libhdfs.so
DESTINATION ${LIBHDFS3_DESTINATION})
-add_custom_command(TARGET gluten POST_BUILD COMMAND ld $<TARGET_FILE:gluten>
|| true
- COMMENT "Checking ld result of libgluten.so")
-add_custom_command(TARGET gluten POST_BUILD COMMAND ldd $<TARGET_FILE:gluten>
|| true
- COMMENT "Checking ldd result of libgluten.so")
+add_custom_command(
+ TARGET gluten
+ POST_BUILD
+ COMMAND ld $<TARGET_FILE:gluten> || true
+ COMMENT "Checking ld result of libgluten.so")
+add_custom_command(
+ TARGET gluten
+ POST_BUILD
+ COMMAND ldd $<TARGET_FILE:gluten> || true
+ COMMENT "Checking ldd result of libgluten.so")
diff --git a/cpp/core/benchmarks/CMakeLists.txt
b/cpp/core/benchmarks/CMakeLists.txt
index 6d3950147..4b4c76566 100644
--- a/cpp/core/benchmarks/CMakeLists.txt
+++ b/cpp/core/benchmarks/CMakeLists.txt
@@ -31,7 +31,8 @@
macro(package_add_gbenchmark TESTNAME)
add_executable(${TESTNAME} ${ARGN})
- target_link_libraries(${TESTNAME} benchmark::benchmark gluten google::glog
${CMAKE_THREAD_LIBS_INIT})
+ target_link_libraries(${TESTNAME} benchmark::benchmark gluten google::glog
+ ${CMAKE_THREAD_LIBS_INIT})
target_include_directories(${TESTNAME} PUBLIC ${source_root_directory})
set_target_properties(${TESTNAME} PROPERTIES FOLDER tests)
endmacro()
diff --git a/cpp/velox/CMakeLists.txt b/cpp/velox/CMakeLists.txt
index 34cc9001c..6d66ea506 100644
--- a/cpp/velox/CMakeLists.txt
+++ b/cpp/velox/CMakeLists.txt
@@ -23,39 +23,54 @@ include(GNUInstallDirs)
include(CheckCXXCompilerFlag)
include(FindPackageHandleStandardArgs)
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations
-Wno-attributes")
-if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
+set(CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations -Wno-attributes")
+if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-class-memaccess")
endif()
-set(SYSTEM_LIB_PATH "/usr/lib" CACHE PATH "System Lib dir")
-set(SYSTEM_LIB64_PATH "/usr/lib64" CACHE PATH "System Lib64 dir")
-set(SYSTEM_LOCAL_LIB_PATH "/usr/local/lib" CACHE PATH "System Local Lib dir")
-set(SYSTEM_LOCAL_LIB64_PATH "/usr/local/lib64" CACHE PATH "System Local Lib64
dir")
-if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
- set(SYSTEM_LIB_MULTIARCH_PATH "/usr/lib/x86_64-linux-gnu" CACHE PATH "System
Lib MultiArch dir")
+set(SYSTEM_LIB_PATH
+ "/usr/lib"
+ CACHE PATH "System Lib dir")
+set(SYSTEM_LIB64_PATH
+ "/usr/lib64"
+ CACHE PATH "System Lib64 dir")
+set(SYSTEM_LOCAL_LIB_PATH
+ "/usr/local/lib"
+ CACHE PATH "System Local Lib dir")
+set(SYSTEM_LOCAL_LIB64_PATH
+ "/usr/local/lib64"
+ CACHE PATH "System Local Lib64 dir")
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
+ set(SYSTEM_LIB_MULTIARCH_PATH
+ "/usr/lib/x86_64-linux-gnu"
+ CACHE PATH "System Lib MultiArch dir")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64)
- set(SYSTEM_LIB_MULTIARCH_PATH "/usr/lib/aarch64-linux-gnu" CACHE PATH
"System Lib MultiArch dir")
+ set(SYSTEM_LIB_MULTIARCH_PATH
+ "/usr/lib/aarch64-linux-gnu"
+ CACHE PATH "System Lib MultiArch dir")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)
- set(SYSTEM_LIB_MULTIARCH_PATH "/usr/lib" CACHE PATH "System Lib MultiArch
dir")
+ set(SYSTEM_LIB_MULTIARCH_PATH
+ "/usr/lib"
+ CACHE PATH "System Lib MultiArch dir")
else()
message(FATAL_ERROR "Unsupported processor type: ${CMAKE_SYSTEM_PROCESSOR}")
endif()
-if (NOT DEFINED VELOX_HOME)
+if(NOT DEFINED VELOX_HOME)
set(VELOX_HOME ${GLUTEN_HOME}/ep/build-velox/build/velox_ep)
message(STATUS "Set VELOX_HOME to ${VELOX_HOME}")
endif()
# Keep same compile option with Velox.
execute_process(
- COMMAND
+ COMMAND
bash -c
"( source ${VELOX_HOME}/scripts/setup-helper-functions.sh && echo -n
$(get_cxx_flags $ENV{CPU_TARGET}))"
- OUTPUT_VARIABLE SCRIPT_CXX_FLAGS
- RESULT_VARIABLE COMMAND_STATUS)
+ OUTPUT_VARIABLE SCRIPT_CXX_FLAGS
+ RESULT_VARIABLE COMMAND_STATUS)
if(COMMAND_STATUS EQUAL "1")
- message(FATAL_ERROR "Unable to determine compiler flags!")
+ message(FATAL_ERROR "Unable to determine compiler flags!")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SCRIPT_CXX_FLAGS}")
@@ -63,10 +78,14 @@ message("Velox module final
CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}")
# User can specify VELOX_BUILD_PATH, if Velox are built elsewhere.
if(NOT DEFINED VELOX_BUILD_PATH)
- if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
- set(VELOX_BUILD_PATH "${VELOX_HOME}/_build/debug" CACHE PATH "Velox build
directory.")
+ if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
+ set(VELOX_BUILD_PATH
+ "${VELOX_HOME}/_build/debug"
+ CACHE PATH "Velox build directory.")
else()
- set(VELOX_BUILD_PATH "${VELOX_HOME}/_build/release" CACHE PATH "Velox
build directory.")
+ set(VELOX_BUILD_PATH
+ "${VELOX_HOME}/_build/release"
+ CACHE PATH "Velox build directory.")
endif()
endif()
@@ -78,25 +97,28 @@ function(ADD_VELOX_DEPENDENCY VELOX_DEP_LIB_NAME
VELOX_DEP_LIB_PATH)
endif()
set(VELOX_DEP_LIB facebook::velox::${VELOX_DEP_LIB_NAME})
add_library(${VELOX_DEP_LIB} STATIC IMPORTED)
- set_target_properties(${VELOX_DEP_LIB} PROPERTIES
- IMPORTED_LOCATION ${VELOX_DEP_LIB_PATH})
+ set_target_properties(${VELOX_DEP_LIB} PROPERTIES IMPORTED_LOCATION
+ ${VELOX_DEP_LIB_PATH})
target_link_libraries(velox PUBLIC ${VELOX_DEP_LIB})
endfunction()
macro(ADD_VELOX_OBJECTS)
add_library(velox_objects OBJECT IMPORTED GLOBAL)
- set_property(TARGET velox_objects PROPERTY IMPORTED_OBJECTS
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/FileHandle.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveConfig.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveConnector.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveDataSink.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveDataSource.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HivePartitionUtil.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/PartitionIdGenerator.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/SplitReader.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/TableHandle.cpp.o"
-
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveConnectorUtil.cpp.o"
- )
+ set_property(
+ TARGET velox_objects
+ PROPERTY
+ IMPORTED_OBJECTS
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/FileHandle.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveConfig.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveConnector.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveDataSink.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveDataSource.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HivePartitionUtil.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/PartitionIdGenerator.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/SplitReader.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/TableHandle.cpp.o"
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/CMakeFiles/velox_hive_connector.dir/HiveConnectorUtil.cpp.o"
+ )
target_link_libraries(velox PUBLIC velox_objects)
endmacro()
@@ -112,125 +134,302 @@ endmacro()
macro(ADD_VELOX_DEPENDENCIES)
add_velox_objects()
- add_velox_dependency(expression::sigparser
"${VELOX_COMPONENTS_PATH}/expression/signature_parser/libvelox_signature_parser.a")
- add_velox_dependency(functions::sparksql::lib
"${VELOX_COMPONENTS_PATH}/functions/sparksql/libvelox_functions_spark.a")
- add_velox_dependency(functions::sparksql::agg
"${VELOX_COMPONENTS_PATH}/functions/sparksql/aggregates/libvelox_functions_spark_aggregates.a")
- add_velox_dependency(functions::window::sparksql
"${VELOX_COMPONENTS_PATH}/functions/sparksql/window/libvelox_functions_spark_window.a")
- add_velox_dependency(functions::prestosql::agg
"${VELOX_COMPONENTS_PATH}/functions/prestosql/aggregates/libvelox_aggregates.a")
- add_velox_dependency(functions::lib::agg
"${VELOX_COMPONENTS_PATH}/functions/lib/aggregates/libvelox_functions_aggregates.a")
- add_velox_dependency(functions::prestosql::window
"${VELOX_COMPONENTS_PATH}/functions/prestosql/window/libvelox_window.a")
- add_velox_dependency(functions::lib::window
"${VELOX_COMPONENTS_PATH}/functions/lib/window/libvelox_functions_window.a")
- add_velox_dependency(velox::buffer
"${VELOX_COMPONENTS_PATH}/buffer/libvelox_buffer.a")
-
- add_velox_dependency(functions::isnull
"${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_is_null_functions.a")
- add_velox_dependency(functions::prestosql
"${VELOX_COMPONENTS_PATH}/functions/prestosql/registration/libvelox_functions_prestosql.a")
- add_velox_dependency(functions::prestosql::impl
"${VELOX_COMPONENTS_PATH}/functions/prestosql/libvelox_functions_prestosql_impl.a")
- add_velox_dependency(functions::json
"${VELOX_COMPONENTS_PATH}/functions/prestosql/json/libvelox_functions_json.a")
- add_velox_dependency(functions::hyperloglog
"${VELOX_COMPONENTS_PATH}/common/hyperloglog/libvelox_common_hyperloglog.a")
- add_velox_dependency(functions::lib
"${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_functions_lib.a")
- add_velox_dependency(functions::lib::date_time_formatter
"${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_functions_lib_date_time_formatter.a")
+ add_velox_dependency(
+ expression::sigparser
+
"${VELOX_COMPONENTS_PATH}/expression/signature_parser/libvelox_signature_parser.a"
+ )
+ add_velox_dependency(
+ functions::sparksql::lib
+ "${VELOX_COMPONENTS_PATH}/functions/sparksql/libvelox_functions_spark.a")
+ add_velox_dependency(
+ functions::sparksql::agg
+
"${VELOX_COMPONENTS_PATH}/functions/sparksql/aggregates/libvelox_functions_spark_aggregates.a"
+ )
+ add_velox_dependency(
+ functions::window::sparksql
+
"${VELOX_COMPONENTS_PATH}/functions/sparksql/window/libvelox_functions_spark_window.a"
+ )
+ add_velox_dependency(
+ functions::prestosql::agg
+
"${VELOX_COMPONENTS_PATH}/functions/prestosql/aggregates/libvelox_aggregates.a"
+ )
+ add_velox_dependency(
+ functions::lib::agg
+
"${VELOX_COMPONENTS_PATH}/functions/lib/aggregates/libvelox_functions_aggregates.a"
+ )
+ add_velox_dependency(
+ functions::prestosql::window
+ "${VELOX_COMPONENTS_PATH}/functions/prestosql/window/libvelox_window.a")
+ add_velox_dependency(
+ functions::lib::window
+
"${VELOX_COMPONENTS_PATH}/functions/lib/window/libvelox_functions_window.a")
+ add_velox_dependency(velox::buffer
+ "${VELOX_COMPONENTS_PATH}/buffer/libvelox_buffer.a")
+
+ add_velox_dependency(
+ functions::isnull
+ "${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_is_null_functions.a")
+ add_velox_dependency(
+ functions::prestosql
+
"${VELOX_COMPONENTS_PATH}/functions/prestosql/registration/libvelox_functions_prestosql.a"
+ )
+ add_velox_dependency(
+ functions::prestosql::impl
+
"${VELOX_COMPONENTS_PATH}/functions/prestosql/libvelox_functions_prestosql_impl.a"
+ )
+ add_velox_dependency(
+ functions::json
+
"${VELOX_COMPONENTS_PATH}/functions/prestosql/json/libvelox_functions_json.a"
+ )
+ add_velox_dependency(
+ functions::hyperloglog
+
"${VELOX_COMPONENTS_PATH}/common/hyperloglog/libvelox_common_hyperloglog.a")
+ add_velox_dependency(
+ functions::lib
+ "${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_functions_lib.a")
+ add_velox_dependency(
+ functions::lib::date_time_formatter
+
"${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_functions_lib_date_time_formatter.a"
+ )
if(BUILD_TESTS)
- add_velox_dependency(exec::test
"${VELOX_COMPONENTS_PATH}/exec/tests/utils/libvelox_exec_test_lib.a")
- add_velox_dependency(temp::path
"${VELOX_COMPONENTS_PATH}/exec/tests/utils/libvelox_temp_path.a")
- add_velox_dependency(dwio::common::test::utils
"${VELOX_COMPONENTS_PATH}/dwio/common/tests/utils/libvelox_dwio_common_test_utils.a")
+ add_velox_dependency(
+ exec::test
+ "${VELOX_COMPONENTS_PATH}/exec/tests/utils/libvelox_exec_test_lib.a")
+ add_velox_dependency(
+ temp::path
+ "${VELOX_COMPONENTS_PATH}/exec/tests/utils/libvelox_temp_path.a")
+ add_velox_dependency(
+ dwio::common::test::utils
+
"${VELOX_COMPONENTS_PATH}/dwio/common/tests/utils/libvelox_dwio_common_test_utils.a"
+ )
endif()
add_velox_dependency(exec "${VELOX_COMPONENTS_PATH}/exec/libvelox_exec.a")
if(BUILD_TESTS)
- add_velox_dependency(parse::parser
"${VELOX_COMPONENTS_PATH}/parse/libvelox_parse_parser.a")
- add_velox_dependency(duckdb::parser
"${VELOX_COMPONENTS_PATH}/duckdb/conversion/libvelox_duckdb_parser.a")
- add_velox_dependency(parse::expression
"${VELOX_COMPONENTS_PATH}/parse/libvelox_parse_expression.a")
- add_velox_dependency(parse::utils
"${VELOX_COMPONENTS_PATH}/parse/libvelox_parse_utils.a")
- add_velox_dependency(function::registry
"${VELOX_COMPONENTS_PATH}/functions/libvelox_function_registry.a")
+ add_velox_dependency(
+ parse::parser "${VELOX_COMPONENTS_PATH}/parse/libvelox_parse_parser.a")
+ add_velox_dependency(
+ duckdb::parser
+ "${VELOX_COMPONENTS_PATH}/duckdb/conversion/libvelox_duckdb_parser.a")
+ add_velox_dependency(
+ parse::expression
+ "${VELOX_COMPONENTS_PATH}/parse/libvelox_parse_expression.a")
+ add_velox_dependency(
+ parse::utils "${VELOX_COMPONENTS_PATH}/parse/libvelox_parse_utils.a")
+ add_velox_dependency(
+ function::registry
+ "${VELOX_COMPONENTS_PATH}/functions/libvelox_function_registry.a")
endif()
- add_velox_dependency(vector::arrow::bridge
"${VELOX_COMPONENTS_PATH}/vector/arrow/libvelox_arrow_bridge.a")
+ add_velox_dependency(
+ vector::arrow::bridge
+ "${VELOX_COMPONENTS_PATH}/vector/arrow/libvelox_arrow_bridge.a")
add_velox_dependency(row "${VELOX_COMPONENTS_PATH}/row/libvelox_row_fast.a")
- add_velox_dependency(connector
"${VELOX_COMPONENTS_PATH}/connectors/libvelox_connector.a")
- add_velox_dependency(connector::hive_parition
"${VELOX_COMPONENTS_PATH}/connectors/hive/libvelox_hive_partition_function.a")
- add_velox_dependency(connector::hive::iceberg::IcebergSplitReader
"${VELOX_COMPONENTS_PATH}/connectors/hive/iceberg/libvelox_hive_iceberg_splitreader.a")
+ add_velox_dependency(
+ connector "${VELOX_COMPONENTS_PATH}/connectors/libvelox_connector.a")
+ add_velox_dependency(
+ connector::hive_parition
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/libvelox_hive_partition_function.a"
+ )
+ add_velox_dependency(
+ connector::hive::iceberg::IcebergSplitReader
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/iceberg/libvelox_hive_iceberg_splitreader.a"
+ )
if(ENABLE_HDFS)
- add_velox_dependency(connector::hive::hdfs
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/hdfs/libvelox_hdfs.a")
+ add_velox_dependency(
+ connector::hive::hdfs
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/hdfs/libvelox_hdfs.a"
+ )
endif()
if(ENABLE_GCS)
- add_velox_dependency(connector::hive::gcs
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/gcs/libvelox_gcs.a")
+ add_velox_dependency(
+ connector::hive::gcs
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/gcs/libvelox_gcs.a"
+ )
endif()
if(ENABLE_S3)
- add_velox_dependency(connector::hive::s3fs
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/s3fs/libvelox_s3fs.a")
+ add_velox_dependency(
+ connector::hive::s3fs
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/s3fs/libvelox_s3fs.a"
+ )
endif()
if(ENABLE_ABFS)
- add_velox_dependency(connector::hive::abfs
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/abfs/libvelox_abfs.a")
+ add_velox_dependency(
+ connector::hive::abfs
+
"${VELOX_COMPONENTS_PATH}/connectors/hive/storage_adapters/abfs/libvelox_abfs.a"
+ )
endif()
- add_velox_dependency(dwio::dwrf::writer
"${VELOX_COMPONENTS_PATH}/dwio/dwrf/writer/libvelox_dwio_dwrf_writer.a")
- add_velox_dependency(dwio::dwrf::reader
"${VELOX_COMPONENTS_PATH}/dwio/dwrf/reader/libvelox_dwio_dwrf_reader.a")
- add_velox_dependency(dwio::dwrf::utils
"${VELOX_COMPONENTS_PATH}/dwio/dwrf/utils/libvelox_dwio_dwrf_utils.a")
- add_velox_dependency(dwio::dwrf::common
"${VELOX_COMPONENTS_PATH}/dwio/dwrf/common/libvelox_dwio_dwrf_common.a")
- add_velox_dependency(parquet
"${VELOX_COMPONENTS_PATH}/dwio/parquet/libvelox_dwio_parquet_reader.a")
- add_velox_dependency(parquet::reader::native
"${VELOX_COMPONENTS_PATH}/dwio/parquet/reader/libvelox_dwio_native_parquet_reader.a")
+ add_velox_dependency(
+ dwio::dwrf::writer
+ "${VELOX_COMPONENTS_PATH}/dwio/dwrf/writer/libvelox_dwio_dwrf_writer.a")
+ add_velox_dependency(
+ dwio::dwrf::reader
+ "${VELOX_COMPONENTS_PATH}/dwio/dwrf/reader/libvelox_dwio_dwrf_reader.a")
+ add_velox_dependency(
+ dwio::dwrf::utils
+ "${VELOX_COMPONENTS_PATH}/dwio/dwrf/utils/libvelox_dwio_dwrf_utils.a")
+ add_velox_dependency(
+ dwio::dwrf::common
+ "${VELOX_COMPONENTS_PATH}/dwio/dwrf/common/libvelox_dwio_dwrf_common.a")
+ add_velox_dependency(
+ parquet
+ "${VELOX_COMPONENTS_PATH}/dwio/parquet/libvelox_dwio_parquet_reader.a")
+ add_velox_dependency(
+ parquet::reader::native
+
"${VELOX_COMPONENTS_PATH}/dwio/parquet/reader/libvelox_dwio_native_parquet_reader.a"
+ )
if(BUILD_TESTS)
- add_velox_dependency(dwio::common::utils
"${VELOX_COMPONENTS_PATH}/dwio/common/tests/utils/libvelox_dwio_common_test_utils.a")
- add_velox_dependency(dwio::dwrf::test_utils
"${VELOX_COMPONENTS_PATH}/dwio/dwrf/test/utils/libvelox_dwrf_test_utils.a")
- add_velox_dependency(parquet::reader::duckdb_conversion
"${VELOX_COMPONENTS_PATH}/duckdb/conversion/libvelox_duckdb_conversion.a")
+ add_velox_dependency(
+ dwio::common::utils
+
"${VELOX_COMPONENTS_PATH}/dwio/common/tests/utils/libvelox_dwio_common_test_utils.a"
+ )
+ add_velox_dependency(
+ dwio::dwrf::test_utils
+
"${VELOX_COMPONENTS_PATH}/dwio/dwrf/test/utils/libvelox_dwrf_test_utils.a"
+ )
+ add_velox_dependency(
+ parquet::reader::duckdb_conversion
+
"${VELOX_COMPONENTS_PATH}/duckdb/conversion/libvelox_duckdb_conversion.a")
add_duckdb()
- add_velox_dependency(tpch::gen
"${VELOX_COMPONENTS_PATH}/tpch/gen/libvelox_tpch_gen.a")
- add_velox_dependency(dbgen
"${VELOX_COMPONENTS_PATH}/tpch/gen/dbgen/libvelox_dbgen.a")
+ add_velox_dependency(
+ tpch::gen "${VELOX_COMPONENTS_PATH}/tpch/gen/libvelox_tpch_gen.a")
+ add_velox_dependency(
+ dbgen "${VELOX_COMPONENTS_PATH}/tpch/gen/dbgen/libvelox_dbgen.a")
endif()
- add_velox_dependency(parquet::reader::thrift
"${VELOX_COMPONENTS_PATH}/dwio/parquet/thrift/libvelox_dwio_parquet_thrift.a")
-
- add_velox_dependency(velox::arrow::parquet::writer
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/libvelox_dwio_arrow_parquet_writer.a")
- add_velox_dependency(dwio::arrow::parquet::writer
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/arrow/libvelox_dwio_arrow_parquet_writer_lib.a")
- add_velox_dependency(dwio::arrow::parquet::writer::util
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/arrow/util/libvelox_dwio_arrow_parquet_writer_util_lib.a")
- add_velox_dependency(dwio::arrow::parquet::writer::thrift::lib
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/arrow/generated/libvelox_dwio_arrow_parquet_writer_thrift_lib.a")
- add_velox_dependency(dwio::common::compression
"${VELOX_COMPONENTS_PATH}/dwio/common/compression/libvelox_dwio_common_compression.a")
- add_velox_dependency(dwio::common
"${VELOX_COMPONENTS_PATH}/dwio/common/libvelox_dwio_common.a")
- add_velox_dependency(functions::prestosql::types
"${VELOX_COMPONENTS_PATH}/functions/prestosql/types/libvelox_presto_types.a")
- add_velox_dependency(functions::spark::specialforms
"${VELOX_COMPONENTS_PATH}/functions/sparksql/specialforms/libvelox_functions_spark_specialforms.a")
- add_velox_dependency(expression
"${VELOX_COMPONENTS_PATH}/expression/libvelox_expression.a")
+ add_velox_dependency(
+ parquet::reader::thrift
+
"${VELOX_COMPONENTS_PATH}/dwio/parquet/thrift/libvelox_dwio_parquet_thrift.a"
+ )
+
+ add_velox_dependency(
+ velox::arrow::parquet::writer
+
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/libvelox_dwio_arrow_parquet_writer.a"
+ )
+ add_velox_dependency(
+ dwio::arrow::parquet::writer
+
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/arrow/libvelox_dwio_arrow_parquet_writer_lib.a"
+ )
+ add_velox_dependency(
+ dwio::arrow::parquet::writer::util
+
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/arrow/util/libvelox_dwio_arrow_parquet_writer_util_lib.a"
+ )
+ add_velox_dependency(
+ dwio::arrow::parquet::writer::thrift::lib
+
"${VELOX_COMPONENTS_PATH}/dwio/parquet/writer/arrow/generated/libvelox_dwio_arrow_parquet_writer_thrift_lib.a"
+ )
+ add_velox_dependency(
+ dwio::common::compression
+
"${VELOX_COMPONENTS_PATH}/dwio/common/compression/libvelox_dwio_common_compression.a"
+ )
+ add_velox_dependency(
+ dwio::common "${VELOX_COMPONENTS_PATH}/dwio/common/libvelox_dwio_common.a")
+ add_velox_dependency(
+ functions::prestosql::types
+
"${VELOX_COMPONENTS_PATH}/functions/prestosql/types/libvelox_presto_types.a"
+ )
+ add_velox_dependency(
+ functions::spark::specialforms
+
"${VELOX_COMPONENTS_PATH}/functions/sparksql/specialforms/libvelox_functions_spark_specialforms.a"
+ )
+ add_velox_dependency(
+ expression "${VELOX_COMPONENTS_PATH}/expression/libvelox_expression.a")
add_velox_dependency(core "${VELOX_COMPONENTS_PATH}/core/libvelox_core.a")
- add_velox_dependency(type::fbhive
"${VELOX_COMPONENTS_PATH}/type/fbhive/libvelox_type_fbhive.a")
+ add_velox_dependency(
+ type::fbhive "${VELOX_COMPONENTS_PATH}/type/fbhive/libvelox_type_fbhive.a")
add_velox_dependency(type "${VELOX_COMPONENTS_PATH}/type/libvelox_type.a")
- add_velox_dependency(vector::serializes
"${VELOX_COMPONENTS_PATH}/serializers/libvelox_presto_serializer.a")
- add_velox_dependency(functions::lib::util
"${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_functions_util.a")
- add_velox_dependency(vector
"${VELOX_COMPONENTS_PATH}/vector/libvelox_vector.a")
- add_velox_dependency(expression::function
"${VELOX_COMPONENTS_PATH}/expression/libvelox_expression_functions.a")
- add_velox_dependency(expression::type_calculation
"${VELOX_COMPONENTS_PATH}/expression/type_calculation/libvelox_type_calculation.a")
-
- add_velox_dependency(common::caching
"${VELOX_COMPONENTS_PATH}/common/caching/libvelox_caching.a")
- add_velox_dependency(common::base
"${VELOX_COMPONENTS_PATH}/common/base/libvelox_common_base.a")
- add_velox_dependency(common::memory
"${VELOX_COMPONENTS_PATH}/common/memory/libvelox_memory.a")
- add_velox_dependency(common::serialization
"${VELOX_COMPONENTS_PATH}/common/serialization/libvelox_serialization.a")
- add_velox_dependency(common::base::exception
"${VELOX_COMPONENTS_PATH}/common/base/libvelox_exception.a")
-
- add_velox_dependency(type::tz
"${VELOX_COMPONENTS_PATH}/type/tz/libvelox_type_tz.a")
- add_velox_dependency(dwio::dwrf::proto
"${VELOX_COMPONENTS_PATH}/dwio/dwrf/proto/libvelox_dwio_dwrf_proto.a")
- add_velox_dependency(dwio::catalog::fbhive
"${VELOX_COMPONENTS_PATH}/dwio/catalog/fbhive/libvelox_dwio_catalog_fbhive.a")
- add_velox_dependency(dwio::common::exception
"${VELOX_COMPONENTS_PATH}/dwio/common/exception/libvelox_dwio_common_exception.a")
- add_velox_dependency(dwio::common::encryption
"${VELOX_COMPONENTS_PATH}/dwio/common/encryption/libvelox_dwio_common_encryption.a")
-
- add_velox_dependency(core::config
"${VELOX_COMPONENTS_PATH}/core/libvelox_config.a")
- add_velox_dependency(common::encode
"${VELOX_COMPONENTS_PATH}/common/encode/libvelox_encode.a")
- add_velox_dependency(common::time
"${VELOX_COMPONENTS_PATH}/common/time/libvelox_time.a")
+ add_velox_dependency(
+ vector::serializes
+ "${VELOX_COMPONENTS_PATH}/serializers/libvelox_presto_serializer.a")
+ add_velox_dependency(
+ functions::lib::util
+ "${VELOX_COMPONENTS_PATH}/functions/lib/libvelox_functions_util.a")
+ add_velox_dependency(vector
+ "${VELOX_COMPONENTS_PATH}/vector/libvelox_vector.a")
+ add_velox_dependency(
+ expression::function
+ "${VELOX_COMPONENTS_PATH}/expression/libvelox_expression_functions.a")
+ add_velox_dependency(
+ expression::type_calculation
+
"${VELOX_COMPONENTS_PATH}/expression/type_calculation/libvelox_type_calculation.a"
+ )
+
+ add_velox_dependency(
+ common::caching
+ "${VELOX_COMPONENTS_PATH}/common/caching/libvelox_caching.a")
+ add_velox_dependency(
+ common::base "${VELOX_COMPONENTS_PATH}/common/base/libvelox_common_base.a")
+ add_velox_dependency(
+ common::memory "${VELOX_COMPONENTS_PATH}/common/memory/libvelox_memory.a")
+ add_velox_dependency(
+ common::serialization
+ "${VELOX_COMPONENTS_PATH}/common/serialization/libvelox_serialization.a")
+ add_velox_dependency(
+ common::base::exception
+ "${VELOX_COMPONENTS_PATH}/common/base/libvelox_exception.a")
+
+ add_velox_dependency(type::tz
+ "${VELOX_COMPONENTS_PATH}/type/tz/libvelox_type_tz.a")
+ add_velox_dependency(
+ dwio::dwrf::proto
+ "${VELOX_COMPONENTS_PATH}/dwio/dwrf/proto/libvelox_dwio_dwrf_proto.a")
+ add_velox_dependency(
+ dwio::catalog::fbhive
+
"${VELOX_COMPONENTS_PATH}/dwio/catalog/fbhive/libvelox_dwio_catalog_fbhive.a"
+ )
+ add_velox_dependency(
+ dwio::common::exception
+
"${VELOX_COMPONENTS_PATH}/dwio/common/exception/libvelox_dwio_common_exception.a"
+ )
+ add_velox_dependency(
+ dwio::common::encryption
+
"${VELOX_COMPONENTS_PATH}/dwio/common/encryption/libvelox_dwio_common_encryption.a"
+ )
+
+ add_velox_dependency(core::config
+ "${VELOX_COMPONENTS_PATH}/core/libvelox_config.a")
+ add_velox_dependency(
+ common::encode "${VELOX_COMPONENTS_PATH}/common/encode/libvelox_encode.a")
+ add_velox_dependency(common::time
+ "${VELOX_COMPONENTS_PATH}/common/time/libvelox_time.a")
if(BUILD_TESTS)
- add_velox_dependency(common::file::test
"${VELOX_COMPONENTS_PATH}/common/file/tests/libvelox_file_test_utils.a")
+ add_velox_dependency(
+ common::file::test
+ "${VELOX_COMPONENTS_PATH}/common/file/tests/libvelox_file_test_utils.a")
endif()
- add_velox_dependency(common::file
"${VELOX_COMPONENTS_PATH}/common/file/libvelox_file.a")
- add_velox_dependency(common::process
"${VELOX_COMPONENTS_PATH}/common/process/libvelox_process.a")
-
- add_velox_dependency(common::test_util
"${VELOX_COMPONENTS_PATH}/common/testutil/libvelox_test_util.a")
-
- add_velox_dependency(external::md5
"${VELOX_COMPONENTS_PATH}/external/md5/libmd5.a")
- add_velox_dependency(external::date
"${VELOX_COMPONENTS_PATH}/external/date/libvelox_external_date.a")
- add_velox_dependency(velox::parquet::writer
"${VELOX_COMPONENTS_PATH}/dwio/parquet/libvelox_dwio_parquet_writer.a")
+ add_velox_dependency(common::file
+ "${VELOX_COMPONENTS_PATH}/common/file/libvelox_file.a")
+ add_velox_dependency(
+ common::process
+ "${VELOX_COMPONENTS_PATH}/common/process/libvelox_process.a")
+
+ add_velox_dependency(
+ common::test_util
+ "${VELOX_COMPONENTS_PATH}/common/testutil/libvelox_test_util.a")
+
+ add_velox_dependency(external::md5
+ "${VELOX_COMPONENTS_PATH}/external/md5/libmd5.a")
+ add_velox_dependency(
+ external::date
+ "${VELOX_COMPONENTS_PATH}/external/date/libvelox_external_date.a")
+ add_velox_dependency(
+ velox::parquet::writer
+ "${VELOX_COMPONENTS_PATH}/dwio/parquet/libvelox_dwio_parquet_writer.a")
if(BUILD_TESTS)
- add_velox_dependency(vector::test::util
"${VELOX_COMPONENTS_PATH}/vector/tests/utils/libvelox_vector_test_lib.a")
+ add_velox_dependency(
+ vector::test::util
+ "${VELOX_COMPONENTS_PATH}/vector/tests/utils/libvelox_vector_test_lib.a")
endif()
- add_velox_dependency(common::compression
"${VELOX_COMPONENTS_PATH}/common/compression/libvelox_common_compression.a")
- add_velox_dependency(common::io
"${VELOX_COMPONENTS_PATH}/common/io/libvelox_common_io.a")
- add_velox_dependency(velox::status
"${VELOX_COMPONENTS_PATH}/common/base/libvelox_status.a")
+ add_velox_dependency(
+ common::compression
+
"${VELOX_COMPONENTS_PATH}/common/compression/libvelox_common_compression.a")
+ add_velox_dependency(
+ common::io "${VELOX_COMPONENTS_PATH}/common/io/libvelox_common_io.a")
+ add_velox_dependency(velox::status
+
"${VELOX_COMPONENTS_PATH}/common/base/libvelox_status.a")
endmacro()
macro(find_libhdfs3)
@@ -241,18 +440,16 @@ macro(find_libhdfs3)
find_path(libhdfs3_INCLUDE_DIR hdfs/hdfs.h)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
find_library(libhdfs3_LIBRARY NAMES hdfs3)
- find_package_handle_standard_args(libhdfs3 DEFAULT_MSG
- libhdfs3_INCLUDE_DIR
- libhdfs3_LIBRARY
- )
+ find_package_handle_standard_args(libhdfs3 DEFAULT_MSG libhdfs3_INCLUDE_DIR
+ libhdfs3_LIBRARY)
add_library(HDFS::hdfs3 SHARED IMPORTED)
- set_target_properties(HDFS::hdfs3 PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${libhdfs3_INCLUDE_DIR}"
- IMPORTED_LOCATION "${libhdfs3_LIBRARY}"
- )
+ set_target_properties(
+ HDFS::hdfs3
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${libhdfs3_INCLUDE_DIR}"
+ IMPORTED_LOCATION "${libhdfs3_LIBRARY}")
endif()
- if (NOT libhdfs3_FOUND)
+ if(NOT libhdfs3_FOUND)
message(FATAL_ERROR "LIBHDFS3 Library Not Found")
endif()
endmacro()
@@ -262,30 +459,35 @@ macro(find_re2)
if(re2_FOUND AND TARGET re2::re2)
set(RE2_LIBRARY re2::re2)
else()
- find_library(RE2_LIBRARY NAMES re2 PATHS ${SYSTEM_LIB_PATH}
${SYSTEM_LIB64_PATH} ${SYSTEM_LIB_MULTIARCH_PATH} ${SYSTEM_LOCAL_LIB_PATH}
${SYSTEM_LOCAL_LIB64_PATH} NO_DEFAULT_PATH)
+ find_library(
+ RE2_LIBRARY
+ NAMES re2
+ PATHS ${SYSTEM_LIB_PATH} ${SYSTEM_LIB64_PATH}
${SYSTEM_LIB_MULTIARCH_PATH}
+ ${SYSTEM_LOCAL_LIB_PATH} ${SYSTEM_LOCAL_LIB64_PATH}
+ NO_DEFAULT_PATH)
endif()
- if (NOT RE2_LIBRARY)
- message(FATAL_ERROR "RE2 Library Not Found")
+ if(NOT RE2_LIBRARY)
+ message(FATAL_ERROR "RE2 Library Not Found")
else()
message(STATUS "RE2 Library Can Be Found in ${RE2_LIBRARY}")
endif()
endmacro()
macro(find_awssdk)
- set (CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
find_package(AWSSDK REQUIRED COMPONENTS s3;identity-management)
endmacro()
macro(find_gcssdk)
- set (CMAKE_FIND_LIBRARY_SUFFIXES ".so")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
find_package(google_cloud_cpp_storage REQUIRED)
endmacro()
macro(find_azure)
find_package(CURL REQUIRED)
find_package(LibXml2 REQUIRED)
- set (CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
find_package(azure-storage-blobs-cpp CONFIG REQUIRED)
find_package(azure-storage-files-datalake-cpp CONFIG REQUIRED)
endmacro()
@@ -327,12 +529,11 @@ set(VELOX_SRCS
utils/VeloxArrowUtils.cc
utils/ConfigExtractor.cc
utils/Common.cc
- utils/VeloxBatchAppender.cc
- )
+ utils/VeloxBatchAppender.cc)
-if (ENABLE_HDFS)
+if(ENABLE_HDFS)
list(APPEND VELOX_SRCS utils/HdfsUtils.cc)
-endif ()
+endif()
if(ENABLE_S3)
find_package(ZLIB)
@@ -346,30 +547,30 @@ add_library(velox SHARED ${VELOX_SRCS})
if(ENABLE_GLUTEN_VCPKG)
# Hide symbols of static dependencies
- target_link_options(velox PRIVATE
-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/symbols.map)
+ target_link_options(
+ velox PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/symbols.map)
endif()
-target_include_directories(velox PUBLIC
- ${CMAKE_SYSTEM_INCLUDE_PATH}
- ${JNI_INCLUDE_DIRS}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${VELOX_HOME}/
- ${VELOX_BUILD_PATH}/
- ${VELOX_BUILD_PATH}/_deps/xsimd-src/include/
- ${VELOX_HOME}/third_party/xsimd/include/)
-
-set_target_properties(velox PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY ${root_directory}/releases
- )
-
-## If folly is not installed in system lib paths, please add
-## `-DCMAKE_PREFIX_PATH="${folly lib path}" to cmake arguments.
-## It is also applicable to other dependencies.
+target_include_directories(
+ velox
+ PUBLIC ${CMAKE_SYSTEM_INCLUDE_PATH}
+ ${JNI_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${VELOX_HOME}/
+ ${VELOX_BUILD_PATH}/
+ ${VELOX_BUILD_PATH}/_deps/xsimd-src/include/
+ ${VELOX_HOME}/third_party/xsimd/include/)
+
+set_target_properties(velox PROPERTIES LIBRARY_OUTPUT_DIRECTORY
+ ${root_directory}/releases)
+
+# If folly is not installed in system lib paths, please add
+# `-DCMAKE_PREFIX_PATH="${folly lib path}" to cmake arguments. It is also
+# applicable to other dependencies.
find_package(Folly REQUIRED CONFIG)
-target_include_directories(velox PUBLIC
- ${GTEST_INCLUDE_DIRS}
- ${PROTOBUF_INCLUDE})
+target_include_directories(velox PUBLIC ${GTEST_INCLUDE_DIRS}
+ ${PROTOBUF_INCLUDE})
target_link_libraries(velox PUBLIC gluten)
add_velox_dependencies()
@@ -383,11 +584,13 @@ target_link_libraries(velox PUBLIC Folly::folly)
find_re2()
target_link_libraries(velox PUBLIC ${RE2_LIBRARY})
-# since
https://github.com/facebookincubator/velox/commit/47970417ac92135e862c0fde350d4d60fa2f1423
+# since
+#
https://github.com/facebookincubator/velox/commit/47970417ac92135e862c0fde350d4d60fa2f1423
if(Stemmer_FOUND)
target_link_libraries(velox PUBLIC stemmer::stemmer)
else()
- add_velox_dependency(velox
"${VELOX_BUILD_PATH}/_deps/libstemmer/src/libstemmer/libstemmer.a")
+ add_velox_dependency(
+ velox "${VELOX_BUILD_PATH}/_deps/libstemmer/src/libstemmer/libstemmer.a")
endif()
set(CMAKE_FIND_LIBRARY_SUFFIXES_BCK ${CMAKE_FIND_LIBRARY_SUFFIXES})
@@ -396,7 +599,8 @@ find_package(simdjson CONFIG)
if(simdjson_FOUND AND TARGET simdjson::simdjson)
target_link_libraries(velox PUBLIC simdjson::simdjson)
else()
- add_velox_dependency(external::simdjson
"${VELOX_BUILD_PATH}/_deps/simdjson-build/libsimdjson.a")
+ add_velox_dependency(external::simdjson
+
"${VELOX_BUILD_PATH}/_deps/simdjson-build/libsimdjson.a")
endif()
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BCK})
@@ -411,7 +615,8 @@ endif()
if(Thrift_FOUND)
target_link_libraries(velox PUBLIC thrift::thrift)
else()
- add_velox_dependency(thrift
"${ARROW_HOME}/src/arrow_ep-build/thrift_ep-install/lib/libthrift.a")
+ add_velox_dependency(
+ thrift
"${ARROW_HOME}/src/arrow_ep-build/thrift_ep-install/lib/libthrift.a")
endif()
if(BUILD_TESTS)
@@ -451,7 +656,13 @@ if(ENABLE_ABFS)
target_link_libraries(velox PUBLIC Azure::azure-storage-files-datalake)
endif()
-add_custom_command(TARGET velox POST_BUILD COMMAND ld $<TARGET_FILE:velox> ||
true
- COMMENT "Checking ld result of libvelox.so")
-add_custom_command(TARGET velox POST_BUILD COMMAND ldd $<TARGET_FILE:velox> ||
true
- COMMENT "Checking ldd result of libvelox.so")
+add_custom_command(
+ TARGET velox
+ POST_BUILD
+ COMMAND ld $<TARGET_FILE:velox> || true
+ COMMENT "Checking ld result of libvelox.so")
+add_custom_command(
+ TARGET velox
+ POST_BUILD
+ COMMAND ldd $<TARGET_FILE:velox> || true
+ COMMENT "Checking ldd result of libvelox.so")
diff --git a/cpp/velox/benchmarks/CMakeLists.txt
b/cpp/velox/benchmarks/CMakeLists.txt
index 74f21c29b..903ec0d65 100644
--- a/cpp/velox/benchmarks/CMakeLists.txt
+++ b/cpp/velox/benchmarks/CMakeLists.txt
@@ -15,10 +15,15 @@
find_arrow_lib(${PARQUET_LIB_NAME})
-set(VELOX_BENCHMARK_COMMON_SRCS common/FileReaderIterator.cc
common/BenchmarkUtils.cc)
+set(VELOX_BENCHMARK_COMMON_SRCS common/FileReaderIterator.cc
+ common/BenchmarkUtils.cc)
add_library(velox_benchmark_common STATIC ${VELOX_BENCHMARK_COMMON_SRCS})
-target_include_directories(velox_benchmark_common PUBLIC
${CMAKE_SOURCE_DIR}/velox ${CMAKE_SOURCE_DIR}/core)
-target_link_libraries(velox_benchmark_common PUBLIC Arrow::parquet velox
benchmark::benchmark google::glog)
+target_include_directories(
+ velox_benchmark_common PUBLIC ${CMAKE_SOURCE_DIR}/velox
+ ${CMAKE_SOURCE_DIR}/core)
+target_link_libraries(
+ velox_benchmark_common PUBLIC Arrow::parquet velox benchmark::benchmark
+ google::glog)
function(add_velox_benchmark BM_EXEC BM_FILE)
add_executable(${BM_EXEC} ${BM_FILE})
diff --git a/cpp/velox/tests/CMakeLists.txt b/cpp/velox/tests/CMakeLists.txt
index 29beb69da..f3d65f127 100644
--- a/cpp/velox/tests/CMakeLists.txt
+++ b/cpp/velox/tests/CMakeLists.txt
@@ -16,14 +16,9 @@
function(add_velox_test TEST_EXEC)
set(options)
set(one_value_args)
- set(multi_value_args
- SOURCES
- )
- cmake_parse_arguments(ARG
- "${options}"
- "${one_value_args}"
- "${multi_value_args}"
- ${ARGN})
+ set(multi_value_args SOURCES)
+ cmake_parse_arguments(ARG "${options}" "${one_value_args}"
+ "${multi_value_args}" ${ARGN})
if(ARG_SOURCES)
set(SOURCES ${ARG_SOURCES})
@@ -31,34 +26,34 @@ function(add_velox_test TEST_EXEC)
message(FATAL_ERROR "No sources specified for test ${TEST_NAME}")
endif()
add_executable(${TEST_EXEC} ${SOURCES} ${VELOX_TEST_COMMON_SRCS})
- target_include_directories(${TEST_EXEC} PRIVATE ${CMAKE_SOURCE_DIR}/velox
${CMAKE_SOURCE_DIR}/src ${VELOX_BUILD_PATH}/_deps/duckdb-src/src/include)
- target_link_libraries(${TEST_EXEC} velox_benchmark_common GTest::gtest
GTest::gtest_main)
+ target_include_directories(
+ ${TEST_EXEC} PRIVATE ${CMAKE_SOURCE_DIR}/velox ${CMAKE_SOURCE_DIR}/src
+ ${VELOX_BUILD_PATH}/_deps/duckdb-src/src/include)
+ target_link_libraries(${TEST_EXEC} velox_benchmark_common GTest::gtest
+ GTest::gtest_main)
gtest_discover_tests(${TEST_EXEC} DISCOVERY_MODE PRE_TEST)
endfunction()
set(VELOX_TEST_COMMON_SRCS JsonToProtoConverter.cc FilePathGenerator.cc)
add_velox_test(velox_shuffle_writer_test SOURCES VeloxShuffleWriterTest.cc)
-# TODO: ORC is not well supported.
-# add_velox_test(orc_test SOURCES OrcTest.cc)
+# TODO: ORC is not well supported. add_velox_test(orc_test SOURCES OrcTest.cc)
add_velox_test(
- velox_operators_test
- SOURCES
- VeloxColumnarToRowTest.cc
- VeloxRowToColumnarTest.cc
- VeloxColumnarBatchSerializerTest.cc
- VeloxColumnarBatchTest.cc)
+ velox_operators_test SOURCES VeloxColumnarToRowTest.cc
+ VeloxRowToColumnarTest.cc VeloxColumnarBatchSerializerTest.cc
+ VeloxColumnarBatchTest.cc)
add_velox_test(
- velox_plan_conversion_test
- SOURCES
- Substrait2VeloxPlanConversionTest.cc
- Substrait2VeloxPlanValidatorTest.cc
- Substrait2VeloxValuesNodeConversionTest.cc
- SubstraitExtensionCollectorTest.cc
- VeloxSubstraitRoundTripTest.cc
- VeloxSubstraitSignatureTest.cc
- VeloxToSubstraitTypeTest.cc)
-add_velox_test(spark_functions_test SOURCES SparkFunctionTest.cc
FunctionTest.cc)
+ velox_plan_conversion_test
+ SOURCES
+ Substrait2VeloxPlanConversionTest.cc
+ Substrait2VeloxPlanValidatorTest.cc
+ Substrait2VeloxValuesNodeConversionTest.cc
+ SubstraitExtensionCollectorTest.cc
+ VeloxSubstraitRoundTripTest.cc
+ VeloxSubstraitSignatureTest.cc
+ VeloxToSubstraitTypeTest.cc)
+add_velox_test(spark_functions_test SOURCES SparkFunctionTest.cc
+ FunctionTest.cc)
add_velox_test(execution_ctx_test SOURCES RuntimeTest.cc)
add_velox_test(velox_memory_test SOURCES MemoryManagerTest.cc)
add_velox_test(buffer_outputstream_test SOURCES BufferOutputStreamTest.cc)
diff --git a/docs/developers/CppCodingStyle.md
b/docs/developers/CppCodingStyle.md
index 9dca4cf69..42101882a 100644
--- a/docs/developers/CppCodingStyle.md
+++ b/docs/developers/CppCodingStyle.md
@@ -28,11 +28,20 @@ Gluten CPP coding, there are a few Philosophical rules as
the following.
## Code Formatting
Many aspects of C++ coding style will be covered by clang-format, such as
spacing,
-line width, indentation and ordering (for includes, using directives and etc).
+line width, indentation and ordering (for includes, using directives and etc).
* Always ensure your code is compatible with clang-format-15 for Velox backend.
* `dev/formatcppcode.sh` is provided for formatting Velox CPP code.
+To format cmake files like CMakeLists.txt & *.cmake, `cmake-format` is
required to
+be installed. Here is an example.
+
+```
+apt install python3-pip -y
+pip3 install --user cmake-format
+cmake-format --first-comment-is-literal True --in-place
cpp/velox/CMakeLists.txt
+```
+
## Naming Conventions
* Use **PascalCase** for types (class, struct, enum, type alias, type
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]