Shut up warnings clang with libstdc++ emits about non-virtual destruc… #211
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2025 The Khronos Group Inc. | |
# SPDX-License-Identifier: Apache-2.0 | |
name: Build and Deploy Reference Pages and Other Documentation | |
# Ensure documentation builds on all platforms. Deploy from the Ubuntu build. | |
# | |
# The plan is for this to be used to build the docs on all platforms for | |
# PRs and pushes to main and remove those builds from the platform software | |
# builds. On release tags though the platform software builsd will have to | |
# build the documentation so it can be included in the release package. | |
# Due to a tight deadline for 4.4 there is no time to modify the platform | |
# software builds to build docs only on release tags so they continue to | |
# build for PRs and pushes to main. Therefore all but the Ubuntu build have | |
# been disabled here for now. | |
# The ubuntu build is used to deploy the docs to GitHub Pages on a release | |
# build. The plan, once the destination is set up, is to use this workflow | |
# to deploy the docs for a release to a location on khronos.org and docs | |
# for any pushes to main to GitHub Pages. | |
on: | |
# Trigger the workflow on a pull request, | |
pull_request: | |
push: | |
# And on pushes to main, which will occur when a PR is merged. | |
branches: | |
- main | |
# Also trigger on push of release tags to any branch. Useful | |
# for testing release builds before merging to main. | |
tags: | |
- 'v[0-9]+.[0-9]+.[0-9]+' | |
- 'v[0-9]+.[0-9]+.[0-9]+-*' | |
paths-ignore: | |
- .appveyor.yml | |
- .github/workflows/android.yml | |
- .github/workflows/check-mkvk.yml | |
- .github/workflows/formatting.yml | |
- .github/workflows/mingw.yml | |
- .github/workflows/publish-pyktx.yml | |
- .github/workflows/windows.yml | |
- .travis.yml | |
- README.md | |
- CODE_OF_CONDUCT.md | |
- CONTRIBUTING.md | |
- LICENSE.md | |
- LICENSES | |
- RELEASE_NOTES.md | |
- REUSE.toml | |
- vcpkg.json | |
- vcpkg-configuration.json | |
# Allow manual trigger | |
workflow_dispatch: | |
jobs: | |
build-docs: | |
name: Build KTX-Software reference pages and documentation | |
strategy: | |
matrix: | |
#os: [ macos-latest, ubuntu-latest, windows-latest ] | |
os: [ ubuntu-latest ] | |
runs-on: ${{ matrix.os }} | |
env: | |
BUILD_DIR: build | |
GIT_LFS_SKIP_SMUDGE: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Fetch all history to make sure tags are | |
# included (used for version creation) | |
fetch-depth: 0 | |
- name: Force fetch provoking tag's annotation. | |
# Work around https://github.com/actions/checkout/issues/290. | |
if: github.ref_type == 'tag' | |
run: git fetch -f origin ${{ github.ref }}:${{ github.ref }} | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11.4' | |
# virtualenv is no longer included as of 20240929.1 runner so | |
# install it ourselves. See | |
# https://github.com/actions/runner-images/issues/10749. | |
# | |
# Note that it is the builds of sdist and wheel that require virtualenv | |
# not the explicit dependencies of pyktx. | |
- name: Install Python virtualenv | |
run: pip install virtualenv | |
- name: Install Doxygen | |
uses: ssciwr/doxygen-install@v1 | |
- name: Install Graphviz | |
uses: ts-graphviz/setup-graphviz@v2 | |
- name: Smudge dates (macOS and Ubuntu) | |
if: matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' | |
run: ./install-gitconfig.sh && scripts/smudge_date.sh | |
- name: Smudge dates (Windows) | |
if: matrix.os == 'windows-latest' | |
run: ./install-gitconfig.ps1 && scripts/smudge_date.ps1 | |
- name: Build docs | |
run: | | |
echo "Doxygen version: $(doxygen --version)" | |
cmake -B ${{ env.BUILD_DIR }} -D KTX_FEATURE_DOC=ON -D KTX_FEATURE_PY=ON -D KTX_FEATURE_TESTS=OFF -D KTX_FEATURE_TOOLS=OFF | |
cmake --build ${{ env.BUILD_DIR }} --target all.doc | |
- name: Upload generated HTML documentation for GitHub Pages | |
if: matrix.os == 'ubuntu-latest' | |
id: deployment | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ${{ env.BUILD_DIR }}/docs/html | |
deploy: | |
name: Deploy to GitHub Pages | |
# Add a dependency to the build job | |
needs: build-docs | |
# Only deploy when building `main`. | |
# if: github.ref == 'refs/heads/main' | |
# Only deploy when building for a release tag. Note that filtering in | |
# on: means the only tags the workflow runs for are release tags. | |
if: startsWith(github.ref, 'refs/tags') | |
runs-on: ubuntu-latest | |
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment | |
permissions: | |
pages: write # to deploy to Pages | |
id-token: write # to verify the deployment originates from an appropriate source | |
# Deploy to the github-pages environment | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
# Specify deployment step | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |