mesonbuild / mesonbuild/meson

Avoid copying files in gtkdoc documentation generation

Open
#2,909 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug generators gnome
Dominant language
Python
Stars
6.6k
Forks
1.9k
Avg merge
2d 6h
Merged PRs (30d)
33

Description

I have recently been working on adding support for using generated files as content files (#2806) as it was needed for `NetworkManager`. This has led to another issue (#2831) because the install script does not trigger the building of those generated files, so I have been trying to handle dependencies with `ninja`.

However, another issue has arisen recently (please take a look at the at this [comment](https://github.com/mesonbuild/meson/pull/2806#issuecomment-356875939) and the followings), and I have [come to the conclusion](https://github.com/mesonbuild/meson/pull/2806#issuecomment-356990605) that copying files might cause different problems:

* The [`gtkdochelper`](https://github.com/mesonbuild/meson/blob/master/mesonbuild/scripts/gtkdochelper.py#L88) might generate collisions when copying files that have already been generated in the build directory.
* It might also cause problems when handling those generated dependencies because, they are handled simply by being present in the build dir, and the fact that there isn't any link between them in the meson build files makes `ninja` not to handle dependencies properly.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with mesonbuild/scripts/gtkdochelper.py, especially the file-copying path referenced in the issue, and review the linked discussion around generated content files and Ninja dependencies. Done means gtkdoc generation avoids collisions from copying generated files and preserves correct dependency handling for those files.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, documentation
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.