Opened 6 years ago

Closed 5 years ago

#6691 closed Feature Requests (fixed)

Add option to emit file dependencies to quickbook

Reported by: Mathias Gaunard Owned by: Daniel James
Milestone: To Be Determined Component: quickbook
Version: Boost Development Trunk Severity: Cosmetic
Keywords: Cc:


This is a feature request: add an option to emit the list of files included directly or indirectly from a qbk file (not counting xincludes).

This would make it easier to integrate Quickbook in build systems.

Attachments (0)

Change History (8)

comment:1 Changed 6 years ago by Daniel James

Owner: changed from Joel de Guzman to Daniel James
Status: newassigned

Shouldn't be too hard. Is there any particular form that would be convenient?

comment:2 Changed 6 years ago by Mathias Gaunard

One file per line would be most convenient for my personal usage. The path to the files should be either absolute or relative to the current working directory.

comment:3 Changed 6 years ago by Daniel James

(In [77442]) Quickbook: Rough stab at outputting dependencies. Refs #6691

Adds --output-deps flag. To write out dependencies to deps.txt:

quickbook --output-deps deps.txt source.qbk

If --output-deps is specified, quickbook won't generate an output file unless one is specified with --output-file. If there is an error it will return an error code, but it will still write out all the opened files.

Known issues:

  • If the same file is included/imported twice it may or may not list it twice. Should be consistent.
  • Doesn't include SVG files. It probably should as they can affect the output.
  • Need to check some of the path issues for things such as xinclude paths which depend on the output file path.
  • Needs tests and documentation.

comment:4 Changed 6 years ago by Daniel James

(In [77490]) Quickbook: Track dependencies in state. Refs #6691

  • Use cananoical filenames where possible.
  • Remove duplicates.
  • Include SVG files.
  • Less hacky.

comment:5 Changed 6 years ago by Daniel James

I was just writing the tests and I realised that I missed a case. If a file is added before the currently used file on the include path it will replace that file, so this really should include the location of non-existent files that would change the build. Should they be marked differently?

There are also plans to add support for loading files using globs (implemented on the quickbook-dev branch, but I've backed it out on trunk as there are problems with the implementation). If the happens then the file list will need to include globs as well, will that be a problem?

comment:6 Changed 6 years ago by Daniel James

(In [77598]) Quickbook: Further dependencies development. Refs #6691

  • Include relevant locations on path where file wasn't found.
  • Improve include_search while I'm at it.
  • Normalize paths for non-existent files.
  • Tests, not integrated with Boost.Build yet. Needs to check that python is available then run the script with the location of the quickbook executable.

comment:7 Changed 6 years ago by Daniel James

(In [77973]) Quickbook: Deal with checked paths that aren't present. Refs #6691.

I think that the dependencies should just be files that were loaded, so I changed it to do that, but added an extra (hidden for now) option to list all paths that were checked, staring with a + for files that are present, and - for files that are absent.

Also fixed a bug with the path resolver.

comment:8 Changed 5 years ago by Daniel James

Resolution: fixed
Status: assignedclosed

(In [78210]) Quickbook: Merge from trunk. Fixes #6691, #6794

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Daniel James.
The resolution will be deleted.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.