fprime
fprime copied to clipboard
fprime-util generate hides FPP error reports
If an FPP error occurs during fprime-util generate
, sometimes the F Prime tools don't fully report the error information provided by the FPP tools. For example, here is a manufactured error (introducing a duplicate port Fw.Time in Fw/Cmd/Cmd.fpp) that causes a failure during the generation step:
[I] bocchino@MT-306179 ~/J/T/F/fprime (devel)> echo 'module Fw { port Time }' >> Fw/Cmd/Cmd.fpp
Here is what happens when I run fprime-util generate
after injecting this error:
[I] bocchino@MT-306179 ~/J/T/F/fprime (devel)> fprime-util generate
...
-- Performing CMake source prescan
-- Performing CMake source prescan - DONE
-- Generating FPP location index
-- Generating FPP location index - DONE
-- Generating FPP dependency caches
[ERROR] Failed to run '/Users/bocchino/JPL/Tools/FPrime/fprime/fprime-venv/bin/fpp-depend /Users/bocchino/JPL/Tools/FPrime/fprime/build-fprime-automatic-native/locs.fpp /Users/bocchino/JPL/Tools/FPrime/fprime/Fw/Buffer/Buffer.fpp -d direct.txt -m missing.txt -f framework.txt -g generated.txt -i include.txt'
CMake Error at cmake/target/fpp_locs.cmake:64 (message):
-- Configuring incomplete, errors occurred!
Failed to run fpp-depend in parallel mode
See also "/Users/bocchino/JPL/Tools/FPrime/fprime/build-fprime-automatic-native/CMakeFiles/CMakeOutput.log".
Call Stack (most recent call first):
See also "/Users/bocchino/JPL/Tools/FPrime/fprime/build-fprime-automatic-native/CMakeFiles/CMakeError.log".
cmake/target/fpp_locs.cmake:82 (fpp_depend_in_parallel)
cmake/target/fpp_locs.cmake:96 (generate_dependencies)
cmake/target/target.cmake:67 (fpp_locs_add_global_target)
cmake/target/target.cmake:67 (cmake_language)
cmake/API.cmake:428 (setup_global_target)
cmake/FPrime.cmake:73 (register_fprime_target)
CMakeLists.txt:12 (include)
[ERROR] CMake erred with return code 1. Partial build cache remains. Run purge to clean-up.
It does tell me what FPP command failed. However, I have to rerun that command to see the actual error:
[I] bocchino@MT-306179 ~/J/T/F/fprime (devel) [1]> /Users/bocchino/JPL/Tools/FPrime/fprime/fprime-venv/bin/fpp-depend /Users/bocchino/JPL/Tools/FPrime/fprime/build-fprime-automatic-native/locs.fpp /Users/bocchino/JPL/Tools/FPrime/fprime/Fw/Buffer/Buffer.fpp -d direct.txt -m missing.txt -f framework.txt -g generated.txt -i include.txt
fpp-depend
/Users/bocchino/JPL/Tools/FPrime/fprime/build-fprime-automatic-native/locs.fpp: 70.24
locate port Fw.Time at "../Fw/Time/Time.fpp"
^
error: inconsistent location path /Users/bocchino/JPL/Tools/FPrime/fprime/Fw/Time/Time.fpp
/Users/bocchino/JPL/Tools/FPrime/fprime/build-fprime-automatic-native/locs.fpp: 69.24
locate port Fw.Time at "../Fw/Cmd/Cmd.fpp"
^
previous path is /Users/bocchino/JPL/Tools/FPrime/fprime/Fw/Cmd/Cmd.fpp
It would be better if this error were reported in the initial error report.