# Copyright 2020-2023 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: 0BSD OR ISC

# Project information

project = "Pugl"
copyright = "2023, David Robillard"
author = "David Robillard"
release = "@PUGL_VERSION@"

# General configuration

exclude_patterns = ["xml"]
language = "en"
nitpicky = True
pygments_style = "friendly"

# Ignore everything opaque or external for nitpicky mode
_opaque = [
    "PFN_vkGetDeviceProcAddr",
    "PFN_vkGetInstanceProcAddr",
    "PuglBackendImpl",
    "PuglViewImpl",
    "PuglVulkanLoaderImpl",
    "PuglWorldImpl",
    "VkAllocationCallbacks",
    "VkInstance",
    "VkResult",
    "VkSurfaceKHR",
    "int16_t",
    "size_t",
    "uint16_t",
    "uint32_t",
    "uintptr_t",
]

_c_nitpick_ignore = map(lambda x: ("c:identifier", x), _opaque)
_cpp_nitpick_ignore = map(lambda x: ("cpp:identifier", x), _opaque)
nitpick_ignore = list(_c_nitpick_ignore) + list(_cpp_nitpick_ignore)

# C++

cpp_index_common_prefix = ["pugl::"]

# HTML output

html_copy_source = False
html_short_title = "Pugl"
html_static_path = ["../_static"]
html_theme = "sphinx_lv2_theme"

if tags.has('singlehtml'):
    html_sidebars = {
        "**": [
        "globaltoc.html",
        ]
    }

    html_theme_options = {
        "body_max_width": "51em",
        "body_min_width": "51em",
        "description": "A minimal portable API for embeddable GUIs.",
        "show_footer_version": True,
        "show_logo_version": False,
        "logo": "pugl.svg",
        "logo_name": True,
        "logo_width": "8em",
        "nosidebar": False,
        "page_width": "80em",
        "sidebar_width": "16em",
        "globaltoc_maxdepth": 3,
        "globaltoc_collapse": False,
    }

else:
    html_theme_options = {
        "body_max_width": "60em",
        "body_min_width": "40em",
        "description": "A minimal portable API for embeddable GUIs.",
        "show_footer_version": True,
        "show_logo_version": False,
        "logo": "pugl.svg",
        "logo_name": True,
        "logo_width": "8em",
        "nosidebar": True,
        "page_width": "60em",
        "sidebar_width": "14em",
        "globaltoc_maxdepth": 1,
        "globaltoc_collapse": True,
    }