nasa / fprime

F´ - A flight software and embedded systems framework
https://fprime.jpl.nasa.gov
Apache License 2.0
10.02k stars 1.29k forks source link

Adding a file to config directory causes FPP "symbol not found error" #2576

Closed timcanham closed 5 months ago

timcanham commented 5 months ago
F´ Version 3.4.3
Affected Component n/a

Problem Description

Adding a new FPP config file to the config directory that defines an FPP type causes an FPP compile error in an FPP file elsewhere that uses the type. Regenerating (fprime-util purge/generate) solves the problem.

Context / Environment

Execute fprime-util version-check and share the output.

~/source/fprime/Svc/PolyDb$ fprime-util version-check
Operating System: Linux
CPU Architecture: x86_64
Platform: Linux-5.15.133.1-microsoft-standard-WSL2-x86_64-with-glibc2.35
Python version: 3.10.12
CMake version: 3.22.1
Pip version: 22.0.2
Pip packages:
    fprime-tools==3.4.4
    fprime-gds==3.4.3
    fprime-fpp-*==2.1.0a5

How to Reproduce

  1. Add a new FPP file to F Prime config directory and CMakeLists.txt that defines a new type.
  2. Use that type elsewhere in the repo
  3. Try to build, should get error complaining type is not defined.
  4. fprime-util purge
  5. fprime-util generate
  6. Build again - works.

Expected Behavior

The added file should trigger an automatic regeneration.

LeStarch commented 5 months ago

Was able to reproduce. This is an issue with the fpp-depend step of the module that uses this type. Specifically the "direct" dependencies were not updated.

It appears the dependecies between on the fpp-depend build is not working.