Skip to content

Commit 0318b12

Browse files
authored
Merge pull request #7 from BlazingDB/feature/google-cloud-storage
[REVIEW] Google Cloud Storage
2 parents 1c8e018 + 8ced02d commit 0318b12

File tree

78 files changed

+286
-4741
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+286
-4741
lines changed

CMakeLists.txt

Lines changed: 7 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -5,111 +5,32 @@
55

66
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
77

8-
project(blazingdb-dependencies C CXX CUDA)
8+
project(blazingdb-dependencies C CXX)
99

1010
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/" ${CMAKE_MODULE_PATH})
1111
message(STATUS "CMAKE_MODULE_PATH:" "${CMAKE_MODULE_PATH}")
1212

13-
## rmm - git@github.com:rapidsai/rmm.git
14-
option(ENABLE_RMM "Add the rmm (rapidsai) library" OFF)
15-
16-
## custrings - git@github.com:rapidsai/custrings.git
17-
option(ENABLE_CUSTRINGS "Add the custring (rapidsai) library" OFF)
18-
19-
# Parse the COMPONENT_VERSION and the component download URLs
20-
include(DefineVersions)
21-
22-
# NOTE First step
23-
include(ConfigureBlazingDBHostCompiler)
24-
2513
# Include CMake modules
2614
include(FeatureSummary)
2715
include(CheckIncludeFiles)
2816
include(CheckLibraryExists)
2917
include(CTest)
3018

31-
# Configure CUDA
32-
include(ConfigureCUDA)
33-
3419
# NOTE Do not change the inclusion order
3520
# Configure dependencies
36-
include(ConfigureGoogleTest) # NOTE for unit tests
37-
include(ConfigureGoogleBenchmark) # NOTE for performance tests
38-
include(ConfigureBoost)
39-
include(ConfigureRapidJSON) # TODO remove when we use binary protocol with ucx
40-
include(ConfigureSimpleWebServer) # TODO remove when we use binary protocol with ucx
41-
include(ConfigureAWSSDK)
42-
include(ConfigureFlatBuffers)
43-
include(ConfigureLz4)
44-
include(ConfigureZSTD)
45-
include(ConfigureBrotli)
46-
include(ConfigureSnappy)
47-
include(ConfigureThrift)
48-
include(ConfigureArrow)
49-
include(ConfigureParquet)
50-
include(ConfigurePython3)
51-
52-
include(ConfigureJitify) # NOTE cudf related
53-
54-
if(ENABLE_RMM)
55-
message(STATUS "Enable the rmm (rapidsai) library")
56-
include(ConfigureRMM)
57-
else()
58-
message(STATUS "Disable the rmm (rapidsai) library")
59-
endif()
60-
61-
if(ENABLE_CUSTRINGS)
62-
message(STATUS "Enable the custring (rapidsai) library")
63-
include(ConfigureNVStrings)
64-
else()
65-
message(STATUS "Disable the custring (rapidsai) library")
66-
endif()
67-
68-
#find_package(Threads)
69-
70-
# NOTE Optional build: cudf
71-
#include(ConfigureLibGDF)
72-
73-
# NOTE Optional build: BlazingSQL stack
74-
#message(FATAL_ERROR "AAAAAAAAAAAAAAAAAAAA@")
75-
#include(ConfigureBlazingDBIO)
21+
# TODO percy add support for aws too latr
22+
# include(ConfigureAWSSDK)
23+
include(ConfigureGoogleCloudCPP)
7624

7725
# BEGIN MAIN #
7826
# NOTE use USE_SOURCE_PERMISSIONS to preserve executable file permisions (e.g. flatc, etc)
79-
install(DIRECTORY ${GTEST_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
80-
install(DIRECTORY ${GBENCHMARK_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
81-
install(DIRECTORY ${BOOST_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
82-
install(DIRECTORY ${RAPIDJSON_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS) # TODO remove when we use binary protocol with ucx
83-
install(DIRECTORY ${SIMPLEWEBSERVER_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS) # TODO remove when we use binary protocol with ucx
84-
install(DIRECTORY ${AWS_SDK_CPP_ROOT} DESTINATION build/aws-sdk-cpp USE_SOURCE_PERMISSIONS)
85-
install(DIRECTORY ${FLATBUFFERS_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
86-
install(DIRECTORY ${LZ4_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
87-
install(DIRECTORY ${ZSTD_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
88-
install(DIRECTORY ${BROTLI_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
89-
install(DIRECTORY ${SNAPPY_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
90-
install(DIRECTORY ${THRIFT_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
91-
install(DIRECTORY ${ARROW_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
92-
install(DIRECTORY ${PYTHON3_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
93-
94-
## rmm - git@github.com:rapidsai/rmm.git
95-
if(ENABLE_RMM)
96-
install(DIRECTORY ${RMM_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
97-
endif()
98-
99-
## custrings - git@github.com:rapidsai/custrings.git
100-
if(ENABLE_CUSTRINGS)
101-
install(DIRECTORY ${NVSTRINGS_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
102-
endif()
103-
104-
install(FILES ${JITIFY_ROOT}/jitify.hpp DESTINATION include) # NOTE cudf related
27+
install(DIRECTORY ${AWS_SDK_CPP_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
28+
install(DIRECTORY ${GOOGLE_CLOUD_CPP_ROOT} DESTINATION . USE_SOURCE_PERMISSIONS)
10529

10630
# Install the cmake modules to be used by the users/projects
10731
install(DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/ DESTINATION lib/cmake)
10832

109-
#unnecessary becouse arrow installation step was already performed
110-
#install(DIRECTORY ${PARQUET_ROOT} DESTINATION .)
111-
11233
# Print the project summary
11334
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
11435

115-
#END MAIN #
36+
# END MAIN #

README.md

Lines changed: 13 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,36 @@
1-
# BlazingSQL dependencies
1+
# BlazingSQL Toolchain
2+
3+
This project contains software development tools and dependencies to develop and
4+
build BlazingSQL using Anaconda environments.
25

36
# Requirements
47

58
## Compiler
69

7-
- g++-5.4
8-
9-
## Builders
10-
11-
- Make
12-
13-
If you want to use Ninja (which is optional) on Ubuntu 16.04 then just run:
14-
15-
```bash
16-
apt-get -y install ninja-build
17-
```
10+
- conda
1811

1912
## CMake
2013

2114
We need at least CMake version 3.12+. Follow these commands to install CMake:
2215

23-
```bash
24-
wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1-Linux-x86_64.tar.gz
25-
tar xvf cmake-3.14.1-Linux-x86_64.tar.gz
26-
# Add cmake-3.14.1-Linux-x86_64/bin to your PATH
27-
cmake --version
28-
cmake version 3.14.1
29-
30-
CMake suite maintained and supported by Kitware (kitware.com/cmake).
31-
```
32-
33-
**NOTE:**
34-
**Never build CMake**. Use **always** the **official binary** releases!!!
16+
**Never build CMake**. Use **always** the **official binary** from conda releases!!!
3517

3618
## System Requirements
3719

3820
And also make sure to install these system requirements:
39-
```bash
40-
# Install common dev tools
41-
apt-get install -y build-essential ssh wget curl git
42-
43-
# Add autotools suite to build some Apache Parquet dependencies
44-
apt-get -y install libtool automake autoconf
45-
46-
# Install Boost regex dependency
47-
apt-get install -y libicu-dev
48-
49-
# Install AWS C++ SDK dependencies
50-
apt-get install -y --no-install-recommends libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev
51-
52-
# Install Apache Arrow / Thrift dependencies
53-
apt-get install -y libssl-dev libtool bison flex pkg-config
54-
```
55-
56-
# Build
5721

5822
```bash
59-
cd blazingdb-dependencies
60-
mkdir -p build
61-
cd build
62-
CUDACXX=/usr/local/cuda-9.2/bin/nvcc cmake -DCMAKE_INSTALL_PREFIX=/foo/blazingsql/dependencies/ ..
63-
make -j8 install
64-
```
65-
66-
**NOTE:**
67-
If you want to build the dependencies using the old C++ ABI, run the cmake command like this:
23+
# Add classic tools and autotools suite
24+
apt-get -y install wget libtool automake autoconf pkg-config
6825

69-
```bash
70-
CUDACXX=/usr/local/cuda-9.2/bin/nvcc cmake -DCXX_OLD_ABI=ON -DCMAKE_INSTALL_PREFIX=/foo/blazingsql/dependencies/ ..
26+
# Install system dependencies
27+
#apt-get install -y --no-install-recommends uuid-dev zlib1g-dev
7128
```
7229

73-
## Optional Packages
74-
All the packages are installed by default.
30+
# Build
7531

76-
In case the custring (NVString) package is not required, add the cmake parameter 'ENABLE_CUSTRINGS' as follow:
7732
```bash
78-
cmake -DENABLE_CUSTRINGS=OFF -DCMAKE_INSTALL_PREFIX=/folder/dependencies/ ..
33+
CURRENT_CONDA_PREFIX=$CONDA_PREFIX conda build --label "main" -c conda-forge --python=3.7 --output-folder /some/directory/
7934
```
8035

81-
# List of Packages
82-
* custring (NVString) - `git@github.com:rapidsai/custrings.git`
36+
For more details, see the conda-build process.

ci/cpu/build.sh

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/bin/bash
2+
# Copyright (c) 2019, BLAZINGSQL.
3+
######################################
4+
# cuDF CPU conda build script for CI #
5+
######################################
6+
set -e
7+
8+
# Logger function for build status output
9+
function logger() {
10+
echo -e "\n>>>> $@\n"
11+
}
12+
13+
# Set home to the job's workspace
14+
export HOME=$WORKSPACE
15+
16+
# Switch to project root; also root of repo checkout
17+
cd $WORKSPACE
18+
19+
# Get latest tag and number of commits since tag
20+
export GIT_DESCRIBE_TAG=`git describe --abbrev=0 --tags`
21+
export GIT_DESCRIBE_NUMBER=`git rev-list ${GIT_DESCRIBE_TAG}..HEAD --count`
22+
23+
################################################################################
24+
# SETUP - Check environment
25+
################################################################################
26+
27+
logger "Get env..."
28+
env
29+
30+
logger "Check versions..."
31+
python --version
32+
gcc --version
33+
g++ --version
34+
conda list
35+
36+
# FIX Added to deal with Anancoda SSL verification issues during conda builds
37+
conda config --set ssl_verify False
38+
39+
logger "Install dependencies..."
40+
conda install -y conda-build anaconda-client
41+
42+
################################################################################
43+
# BUILD - Conda package builds
44+
################################################################################
45+
46+
logger "Build conda pkg for communication..."
47+
source ci/cpu/toolchain/conda-build.sh
48+
49+
logger "Upload conda pkg for communication..."
50+
source ci/cpu/upload_anaconda.sh

ci/cpu/toolchain/conda-build.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
conda build -c conda-forge -c defaults --python=$PYTHON conda/recipes/blazingdb-toolchain/

ci/cpu/upload_anaconda.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
export TAR_FILE=`conda build conda/recipes/blazingdb-toolchain --python=$PYTHON --output`
6+
7+
LABEL_OPTION="--label main"
8+
echo "LABEL_OPTION=${LABEL_OPTION}"
9+
10+
if [ -z "$MY_UPLOAD_KEY" ]; then
11+
echo "No upload key"
12+
return 0
13+
fi
14+
15+
test -e ${TAR_FILE}
16+
echo "Upload communication"
17+
echo ${TAR_FILE}
18+
anaconda -t ${MY_UPLOAD_KEY} upload -u blazingsql ${LABEL_OPTION} --force ${TAR_FILE}

cmake/AWSSDKCPP.CMakeLists.txt.cmake

Lines changed: 0 additions & 23 deletions
This file was deleted.

cmake/Arrow.CMakeLists.txt.cmake

Lines changed: 0 additions & 35 deletions
This file was deleted.

cmake/BlazingDBCommunication.CMakeLists.txt.cmake

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)