Skip to content

fpp depend

Robert L. Bocchino Jr. edited this page Apr 18, 2024 · 21 revisions

This tool computes dependencies for FPP source files.

Options:

  1. -a: Enable unit test auto helpers.

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

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

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

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

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

  7. -u: file: Write the names of generated unit test autocode 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. Write a list of files (the dependencies) 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 a.fpp depends on c.fpp after resolving the inclusion, 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.

  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 -u is present, then write the names of generated unit test files to the specified file. If option -a is present, then include the auto-generated test helper code in the list of files.

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 and implementation template files to the specified files. 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 -u is present, then write the names of the generated unit test and unit test implementation files to the specified files. Use the same procedure as for fpp-filenames.