blob: b290039d1ebb37b4697fc91f450b2aec4dd5b7d1 [file] [log] [blame]
# -*- indent-tabs-mode: nil -*-
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
sources = files(
'array-builder.cpp',
'basic-array.cpp',
'basic-data-type.cpp',
'buffer.cpp',
'chunked-array.cpp',
'column.cpp',
'composite-array.cpp',
'composite-data-type.cpp',
'decimal.cpp',
'error.cpp',
'field.cpp',
'record-batch.cpp',
'schema.cpp',
'table.cpp',
'table-builder.cpp',
'tensor.cpp',
'type.cpp',
)
sources += files(
'file.cpp',
'file-mode.cpp',
'input-stream.cpp',
'output-stream.cpp',
'readable.cpp',
'writable.cpp',
'writable-file.cpp',
)
sources += files(
'metadata-version.cpp',
'reader.cpp',
'writer.cpp',
)
sources += files(
'compute.cpp',
)
if have_arrow_orc
sources += files(
'orc-file-reader.cpp',
)
endif
c_headers = files(
'array.h',
'array-builder.h',
'arrow-glib.h',
'basic-array.h',
'basic-data-type.h',
'buffer.h',
'chunked-array.h',
'column.h',
'composite-array.h',
'composite-data-type.h',
'data-type.h',
'decimal.h',
'error.h',
'field.h',
'gobject-type.h',
'record-batch.h',
'schema.h',
'table.h',
'table-builder.h',
'tensor.h',
'type.h',
)
c_headers += files(
'file.h',
'file-mode.h',
'input-stream.h',
'output-stream.h',
'readable.h',
'writable.h',
'writable-file.h',
)
c_headers += files(
'metadata-version.h',
'reader.h',
'writer.h',
)
c_headers += files(
'compute.h',
)
if have_arrow_orc
c_headers += files(
'orc-file-reader.h',
)
endif
cpp_headers = files(
'array.hpp',
'array-builder.hpp',
'arrow-glib.hpp',
'basic-array.hpp',
'basic-data-type.hpp',
'buffer.hpp',
'chunked-array.hpp',
'column.hpp',
'data-type.hpp',
'decimal.hpp',
'error.hpp',
'field.hpp',
'record-batch.hpp',
'schema.hpp',
'table.hpp',
'table-builder.hpp',
'tensor.hpp',
'type.hpp',
)
cpp_headers += files(
'file.hpp',
'file-mode.hpp',
'input-stream.hpp',
'output-stream.hpp',
'readable.hpp',
'writable.hpp',
'writable-file.hpp',
)
cpp_headers += files(
'metadata-version.hpp',
'reader.hpp',
'writer.hpp',
)
cpp_headers += files(
'compute.hpp',
)
if have_arrow_orc
cpp_headers += files(
'orc-file-reader.hpp',
)
endif
version_h_conf = configuration_data()
version_h_conf.set('GARROW_VERSION_MAJOR', version_major)
version_h_conf.set('GARROW_VERSION_MINOR', version_minor)
version_h_conf.set('GARROW_VERSION_MICRO', version_micro)
version_h_conf.set('GARROW_VERSION_TAG', version_tag)
version_h = configure_file(input: 'version.h.in',
output: 'version.h',
configuration: version_h_conf)
c_headers += version_h
enums = gnome.mkenums('enums',
sources: c_headers,
identifier_prefix: 'GArrow',
symbol_prefix: 'garrow',
c_template: 'enums.c.template',
h_template: 'enums.h.template',
install_dir: join_paths(include_dir, meson.project_name()),
install_header: true)
enums_source = enums[0]
enums_header = enums[1]
headers = c_headers + cpp_headers
install_headers(headers, subdir: meson.project_name())
dependencies = [
arrow,
dependency('gobject-2.0'),
dependency('gio-2.0'),
]
libarrow_glib = library('arrow-glib',
sources: sources + enums,
install: true,
dependencies: dependencies,
include_directories: base_include_directories,
soversion: so_version,
version: library_version)
arrow_glib = declare_dependency(link_with: libarrow_glib,
include_directories: base_include_directories,
dependencies: dependencies,
sources: enums_header)
pkgconfig.generate(filebase: meson.project_name(),
name: 'Apache Arrow GLib',
description: 'C API for Apache Arrow based on GLib',
version: version,
requires: ['gio-2.0', 'arrow'],
libraries: [libarrow_glib])
if have_arrow_orc
pkgconfig.generate(filebase: 'arrow-orc-glib',
name: 'Apache Arrow GLib ORC',
description: 'ORC modules for Apache Arrow GLib',
version: version,
requires: ['arrow-glib'])
endif
arrow_glib_gir = gnome.generate_gir(libarrow_glib,
sources: sources + c_headers + enums,
namespace: 'Arrow',
nsversion: api_version,
identifier_prefix: 'GArrow',
symbol_prefix: 'garrow',
export_packages: 'arrow-glib',
includes: [
'GObject-2.0',
'Gio-2.0',
],
install: true,
extra_args: [
'--warn-all',
])