blob: 2cdefd48195dbf12a7845ca5a25c83105d530ad5 [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.
source_reference = get_option('source_reference')
gi_docgen = find_program('gi-docgen')
gi_docgen_toml_conf = configuration_data()
gi_docgen_toml_conf.set('SOURCE_REFERENCE', source_reference)
# We can't use "version.replace('-SNAPSHOT', '.dev')" here because
# Ubuntu 20.04's Meson is < 0.58.0.
if version_tag == ''
gi_docgen_version_tag = ''
else
# GI-DocGen doesn't like MAJOR.MINOR.PATCH-SNAPSHOT format.
gi_docgen_version_tag = '.dev'
endif
gi_docgen_version = '@0@.@1@.@2@@3@'.format(
version_major,
version_minor,
version_micro,
gi_docgen_version_tag,
)
gi_docgen_toml_conf.set('VERSION', gi_docgen_version)
gir_top_build_dir = meson.current_build_dir() / '..'
arrow_glib_gir_dir = gir_top_build_dir / 'arrow-glib'
arrow_flight_glib_gir_dir = gir_top_build_dir / 'arrow-flight-glib'
entries = [['arrow-glib', arrow_glib_gir[0]]]
if arrow_cuda.found()
entries += [['arrow-cuda-glib', arrow_cuda_glib_gir[0]]]
endif
if arrow_dataset.found()
entries += [['arrow-dataset-glib', arrow_dataset_glib_gir[0]]]
endif
if arrow_flight.found()
entries += [['arrow-flight-glib', arrow_flight_glib_gir[0]]]
endif
if arrow_flight_sql.found()
entries += [['arrow-flight-sql-glib', arrow_flight_sql_glib_gir[0]]]
endif
if gandiva.found()
entries += [['gandiva-glib', gandiva_glib_gir[0]]]
endif
if parquet.found()
entries += [['parquet-glib', parquet_glib_gir[0]]]
endif
foreach entry : entries
module_name = entry[0]
gir = entry[1]
gi_docgen_toml = configure_file(
input: '@0@.toml.in'.format(module_name),
output: '@0@.toml'.format(module_name),
configuration: gi_docgen_toml_conf,
)
gir_dir = gir_top_build_dir / module_name
current_source_dir = meson.current_source_dir()
command = [
gi_docgen,
'generate',
'--add-include-path=@0@'.format(arrow_flight_glib_gir_dir),
'--add-include-path=@0@'.format(arrow_glib_gir_dir),
'--add-include-path=@0@'.format(gir_dir),
'--config=@INPUT0@',
'--content-dir=@0@'.format(current_source_dir),
'--no-namespace-dir',
'--output-dir=@OUTPUT@',
'--quiet',
]
if get_option('werror')
command += ['--fatal-warnings']
endif
command += ['@INPUT1@']
custom_target(
'@0@-doc'.format(module_name),
input: [gi_docgen_toml, gir],
depend_files: ['urlmap.js'],
output: module_name,
command: command,
build_by_default: true,
install: true,
install_dir: doc_dir,
)
endforeach