
Also constrain the py-arrow version to depend on the same version of arrow (e.g. 0.12.1 of py-arrow depends on 0.12.1 of arrow)
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
from spack import *
|
|
|
|
|
|
class Arrow(CMakePackage):
|
|
"""A cross-language development platform for in-memory data.
|
|
|
|
This package contains the C++ bindings.
|
|
"""
|
|
|
|
homepage = "http://arrow.apache.org"
|
|
url = "https://github.com/apache/arrow/archive/apache-arrow-0.9.0.tar.gz"
|
|
|
|
version('0.12.1', 'aae68622edc3dcadaa16b2d25ae3f00290d5233100321993427b03bcf5b1dd3b')
|
|
version('0.11.0', '0ac629a7775d86108e403eb66d9f1a3d3bdd6b3a497a86228aa4e8143364b7cc')
|
|
version('0.9.0', 'ebbd36c362b9e1d398ca612f6d2531ec')
|
|
version('0.8.0', '56436f6f61ccc68686b7e0ea30bf4d09')
|
|
|
|
depends_on('boost@1.60:')
|
|
depends_on('cmake@3.2.0:', type='build')
|
|
depends_on('flatbuffers build_type=Release') # only Release contains flatc
|
|
depends_on('python', when='+python')
|
|
depends_on('py-numpy', when='+python')
|
|
depends_on('rapidjson')
|
|
depends_on('snappy~shared')
|
|
depends_on('zlib+pic')
|
|
depends_on('zstd+pic')
|
|
|
|
variant('build_type', default='Release',
|
|
description='CMake build type',
|
|
values=('Debug', 'FastDebug', 'Release'))
|
|
variant('python', default=False, description='Build Python interface')
|
|
variant('parquet', default=False, description='Build Parquet interface')
|
|
|
|
root_cmakelists_dir = 'cpp'
|
|
|
|
def patch(self):
|
|
"""Prevent `-isystem /usr/include` from appearing, since this confuses gcc.
|
|
"""
|
|
filter_file(r'(include_directories\()SYSTEM ',
|
|
r'\1',
|
|
'cpp/cmake_modules/ThirdpartyToolchain.cmake')
|
|
|
|
def cmake_args(self):
|
|
args = [
|
|
"-DARROW_USE_SSE=ON",
|
|
"-DARROW_BUILD_SHARED=ON",
|
|
"-DARROW_BUILD_STATIC=OFF",
|
|
"-DARROW_BUILD_TESTS=OFF",
|
|
"-DARROW_WITH_BROTLI=OFF",
|
|
"-DARROW_WITH_LZ4=OFF",
|
|
]
|
|
if self.spec.satisfies('+python'):
|
|
args.append("-DARROW_PYTHON:BOOL=ON")
|
|
if self.spec.satisfies('+parquet'):
|
|
args.append("-DARROW_PARQUET:BOOL=ON")
|
|
for dep in ('flatbuffers', 'rapidjson', 'snappy', 'zlib', 'zstd'):
|
|
args.append("-D{0}_HOME={1}".format(dep.upper(),
|
|
self.spec[dep].prefix))
|
|
args.append("-DZLIB_LIBRARIES={0}".format(self.spec['zlib'].libs))
|
|
return args
|