Skip to content

fpp depend

Rob Bocchino edited this page Jun 28, 2023 · 21 revisions

This tool computes dependencies for FPP source files.

Options:

  1. -d file: Write direct dependencies to file.

  2. -f file: Write F Prime framework dependencies to file.

  3. -g file: Write the names of generated autocode files to file.

  4. -i file: Write included dependencies to file.

  5. -m file: Write missing dependencies to file.

  6. -t file: Write the names of generated implementation template files to file.

Input: A list fl of files: either the single file stdin or a list of files specified on the command line.

Output:

  1. A list of files (the dependencies), written one per line to standard output, as absolute paths with no other punctuation. The dependencies are transitive. For example, if a.fpp depends on b.fpp and b.fpp depends on c.fpp, then a.fpp depends on b.cpp and on c.fpp. Included files in the dependency graph are not counted as dependencies. For example, if a file a.fpp includes b.fpp and b.fpp depends on c.fpp, then a.fpp depends on c.fpp but not b.fpp.

  2. If option -d is present, then write direct dependencies to the specified file. For example, if a.fpp depends on b.fpp and b.fpp depends on c.fpp, then a.fpp directly depends on b.fpp but not on c.fpp. Included files in the dependency graph are counted as direct dependencies.

  3. If option -f is present, then write F Prime framework dependencies to the specified file.

  4. If option -g is present, then write the names of generated autocode files to the specified file. The output here is the same as for fpp-filenames.

  5. If option -i is present, then write included files in the dependency graph to the specified file.

  6. If option -m is present, then write missing dependencies to the specified file.

  7. If option -t is present, then write the names of generated implementation template files to the specified file. The output here is the same as for fpp-filenames.

Procedure:

  1. Create a fresh analysis data structure a.

  2. Add the specified input files other than stdin, if any, to the input files in a.

  3. Parse each of the files in fl, generating a list tul of translation units. When parsing, recursively resolve include specifiers and add the path of each included file to the included file set in a.

  4. Let a' be the result of computing dependencies with inputs a and tul.

  5. Write out the dependency files in a'.

  6. If option -d is present, then write the direct dependency file set of a' to the specified file.

  7. If option -f is present, then write F Prime framework dependencies to the specified file. The currently recognized dependencies are as follows:

    • Fw_Comp if tul contains a passive component.

    • Fw_CompQueued if tul contains a queued or active component.

    • Os if tul contains a queued or active component or a guarded input port specifier.

  8. If option -g is present, then write the names of the generated autocode files to the specified file. Use the same procedure as for fpp-filenames.

  9. If option -i is present, then write the included file set of a' to the specified file.

  10. If option -m is present, then write the missing dependency file set of a' to the specified file.

  11. If option -t is present, then write the names of the generated implementation template files to the specified file. Use the same procedure as for fpp-filenames.

Clone this wiki locally