-
Notifications
You must be signed in to change notification settings - Fork 447
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[GLUTEN-1306][VL] feat: Link static depends via vcpkg (#1384)
Added an option to manage static dependencies via vcpkg. # Install build depends on system (optional) sudo -E ./dev/vcpkg/setup-build-depends.sh # Source new gcc (centos only) source /opt/rh/devtoolset-9/enable # Setup and enable vcpkg environemt source ./dev/vcpkg/env.sh # Build gluten package as original ./dev/buildbundle-veloxbe.sh --enable_vcpkg=ON
- Loading branch information
Showing
55 changed files
with
1,448 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
# Copyright 2012 Cloudera Inc. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# 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. | ||
|
||
# - 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. | ||
# | ||
# 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 | ||
|
||
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 "[0-9.]+" Thrift_VERSION "${THRIFT_VERSION_DEFINITION}") | ||
set(Thrift_VERSION | ||
"${Thrift_VERSION}" | ||
PARENT_SCOPE) | ||
else() | ||
set(Thrift_VERSION | ||
"" | ||
PARENT_SCOPE) | ||
endif() | ||
endfunction(EXTRACT_THRIFT_VERSION) | ||
|
||
if(MSVC_TOOLCHAIN AND NOT DEFINED THRIFT_MSVC_LIB_SUFFIX) | ||
if(NOT ARROW_THRIFT_USE_SHARED) | ||
if(ARROW_USE_STATIC_CRT) | ||
if("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") | ||
set(THRIFT_MSVC_LIB_SUFFIX "mtd") | ||
else() | ||
set(THRIFT_MSVC_LIB_SUFFIX "mt") | ||
endif() | ||
else() | ||
if("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") | ||
set(THRIFT_MSVC_LIB_SUFFIX "mdd") | ||
else() | ||
set(THRIFT_MSVC_LIB_SUFFIX "md") | ||
endif() | ||
endif() | ||
endif() | ||
endif() | ||
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}" | ||
) | ||
endif() | ||
list(APPEND | ||
THRIFT_LIB_NAMES | ||
"${CMAKE_SHARED_LIBRARY_PREFIX}${THRIFT_LIB_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX}" | ||
) | ||
else() | ||
set(THRIFT_LIB_NAMES | ||
"${CMAKE_STATIC_LIBRARY_PREFIX}${THRIFT_LIB_NAME_BASE}${CMAKE_STATIC_LIBRARY_SUFFIX}" | ||
) | ||
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") | ||
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. | ||
find_package(PkgConfig QUIET) | ||
pkg_check_modules(THRIFT_PC thrift) | ||
if(THRIFT_PC_FOUND) | ||
set(THRIFT_INCLUDE_DIR "${THRIFT_PC_INCLUDEDIR}") | ||
|
||
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") | ||
set(Thrift_VERSION ${THRIFT_PC_VERSION}) | ||
else() | ||
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() | ||
endif() | ||
endif() | ||
|
||
if(THRIFT_COMPILER) | ||
set(Thrift_COMPILER_FOUND TRUE) | ||
else() | ||
set(Thrift_COMPILER_FOUND FALSE) | ||
endif() | ||
|
||
find_package_handle_standard_args( | ||
Thrift | ||
REQUIRED_VARS THRIFT_LIB THRIFT_INCLUDE_DIR | ||
VERSION_VAR Thrift_VERSION | ||
HANDLE_COMPONENTS) | ||
|
||
if(Thrift_FOUND) | ||
if(ARROW_THRIFT_USE_SHARED) | ||
add_library(thrift::thrift SHARED IMPORTED) | ||
else() | ||
add_library(thrift::thrift STATIC IMPORTED) | ||
endif() | ||
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") | ||
endif() | ||
|
||
if(Thrift_COMPILER_FOUND) | ||
add_executable(thrift::compiler IMPORTED) | ||
set_target_properties(thrift::compiler PROPERTIES IMPORTED_LOCATION | ||
"${THRIFT_COMPILER}") | ||
endif() | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
global: | ||
extern "C++" { | ||
*gluten::*; | ||
*facebook::velox::*; | ||
}; | ||
|
||
Java_io_gluten*; | ||
local: | ||
# Hide symbols of static dependencies | ||
*; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.