blob: 40da7884a3dc16d353643ea0e14a2a5e530d7bc7 [file] [log] [blame]
#!/usr/bin/python
#
# 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.
#
from generate import *
def gen_proton_apis(release, source_dir, release_dir):
component_dir = join(release_dir, "proton")
gen_proton_c_api(release, source_dir, component_dir)
gen_proton_cpp_api(release, source_dir, component_dir)
gen_proton_python_api(release, source_dir, component_dir)
gen_proton_ruby_api(release, source_dir, component_dir)
def gen_proton_c_api(release, source_dir, component_dir):
include_dir = join(source_dir, "c", "include")
output_dir = join(component_dir, "c", "api")
config_file = join(source_dir, "c", "docs", "user.doxygen.in")
remove(output_dir)
gen_doxygen(release=release,
title="Qpid Proton C API",
input_paths=(join(include_dir, "proton"),
join(source_dir, "c", "docs"),
join(source_dir, "c", "examples", "README.dox"),
),
strip_paths=(include_dir,),
output_dir=output_dir,
example_paths=(join(source_dir, "c", "examples", "c"),),
config_file=config_file)
def gen_proton_cpp_api(release, source_dir, component_dir):
base_dir = join(source_dir, "cpp")
include_dir = join(base_dir, "include")
output_dir = join(component_dir, "cpp", "api")
config_file = join(base_dir, "docs", "user.doxygen.in")
remove(output_dir)
gen_doxygen(release=release,
title="Qpid Proton C++ API",
input_paths=(join(include_dir, "proton"),
join(base_dir, "docs"),
join(source_dir, "cpp", "examples", "README.dox"),
join(source_dir, "cpp", "examples", "tutorial.dox"),
),
strip_paths=(include_dir,),
output_dir=output_dir,
example_paths=(join(source_dir, "cpp", "examples"),),
config_file=config_file)
def gen_proton_python_api(release, source_dir, component_dir):
input_dir = join(source_dir, "python")
input_namespace = "proton"
output_dir = join(component_dir, "python", "api")
remove(output_dir)
gen_epydoc(release=release,
title="Qpid Proton Python API",
input_paths=(input_dir,),
input_namespaces=(input_namespace,),
output_dir=output_dir)
def gen_proton_ruby_api(release, source_dir, component_dir):
input_dir = join(source_dir, "ruby")
output_dir = join(component_dir, "ruby", "api")
remove(output_dir)
gen_yard(release=release,
title="Qpid Proton Ruby API",
input_dir=input_dir,
input_namespaces=("Qpid::Proton",),
output_dir=output_dir)
def gen_proton_books(release, source_dir, release_dir, build_dir):
component_dir = join(release_dir, "proton")
input_dir = join(build_dir, "python", "tutorial")
output_dir = join(component_dir, "python", "book")
remove(output_dir)
copy(input_dir, output_dir)
touch(join(output_dir, "_transom_ignore_pages"))
remove(join(output_dir, ".doctrees"))
def gen_proton_examples(release, source_dir, release_dir):
component_dir = join(release_dir, "proton")
gen_proton_cpp_examples(release, source_dir, component_dir)
gen_proton_python_examples(release, source_dir, component_dir)
gen_proton_ruby_examples(release, source_dir, component_dir)
def gen_proton_cpp_examples(release, source_dir, component_dir):
input_dir = join(source_dir, "cpp", "examples")
output_dir = join(component_dir, "cpp", "examples")
source_url = get_git_release_branch_url("proton", release, "cpp/examples")
readme_url = "{}/README.dox".format(source_url)
input_names = list_dir(input_dir, "*.cpp", "*.hpp")
gen_examples(release=release,
lang="cpp",
title="Proton C++ Examples",
input_dir=input_dir,
input_names=input_names,
output_dir=output_dir,
source_url=source_url,
readme_url=readme_url)
def gen_proton_python_examples(release, source_dir, component_dir):
input_dir = join(source_dir, "python", "examples")
output_dir = join(component_dir, "python", "examples")
source_url = get_git_release_branch_url("proton", release, "python/examples")
readme_url = "{}/README".format(source_url)
input_names = list_dir(input_dir, "*.py")
gen_examples(release=release,
lang="python",
title="Proton Python Examples",
input_dir=input_dir,
input_names=input_names,
output_dir=output_dir,
source_url=source_url,
readme_url=readme_url)
def gen_proton_ruby_examples(release, source_dir, component_dir):
input_dir = join(source_dir, "ruby", "examples")
output_dir = join(component_dir, "ruby", "examples")
source_url = get_git_release_branch_url("proton", release, "ruby/examples")
readme_url = "{}/README.md".format(source_url)
input_names = list_dir(input_dir, "*.rb")
gen_examples(release=release,
lang="ruby",
title="Proton Ruby Examples",
input_dir=input_dir,
input_names=input_names,
output_dir=output_dir,
source_url=source_url,
readme_url=readme_url)
## Now do stuff ##
release, issues_release, source_release, release_dir, checkout_dir = setup_release_script()
source_dir = checkout_dir or fetch_source("proton", source_release)
build_dir = make_temp_dir()
with working_dir(build_dir):
call("cmake {}", source_dir)
call("make tutorial-py")
gen_proton_apis(release, source_dir, release_dir)
gen_proton_books(release, source_dir, release_dir, build_dir)
gen_proton_examples(release, source_dir, release_dir)
notice("Docs generated")