Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing dependency on osal_public_api targets for OSAL headers #2183

Closed
jphickey opened this issue Oct 25, 2022 · 0 comments · Fixed by #2184
Closed

Missing dependency on osal_public_api targets for OSAL headers #2183

jphickey opened this issue Oct 25, 2022 · 0 comments · Fixed by #2184
Assignees
Milestone

Comments

@jphickey
Copy link
Contributor

Describe the bug
In the CFE mission documentation build, this references the osal public API headers. Since nasa/osal#1291 was merged there is now an osal_public_api target which exposes the location of the headers via its INTERFACE_INCLUDE_DIRECTORIES property, as well as a doxygen-specific target called osal_public_api_headerlist that generates a list of INPUT files that can be included for doxygen.

However, there is a missing dependency in the CFE docs build, as the mission-doc and cfe-usersguide targets reference this file, but there is not a dependency in CMake to ensure that the file gets generated before the doxygen tool runs.

As a result, if the osal-apiguide is built first, then the CFE targets will build OK, but if the CFE targets are built first, one gets an error about a missing osal-public-api.doxyfile.

To Reproduce
Start with a clean build area
Run only make prep followed by make doc
Get error:

error: @INCLUDE = /home/joe/code/cfecfs/github-cfs-bundle/build/docs/osal-public-api.doxyfile: not found!
Exiting...

Then run make osalguide followed by make doc again. Now it builds fine.

Expected behavior
Dependency should be in place so the doc build will succeed regardless of the order.

Code snips
If applicable, add references to the software.

System observed on:
Ubuntu

Additional context
The CFE docs build was also repeating the location of the OSAL include files here:

set(OSAL_API_INCLUDE_DIRECTORIES
"${osal_MISSION_DIR}/src/os/inc"
"${CMAKE_BINARY_DIR}/docs"
)

The osal_public_api target properties should be the preferred source of this info, the path should not be specified outside of the OSAL build script as it can change in the future.

Reporter Info
Joseph Hickey, Vantage Systems, Inc.

@jphickey jphickey self-assigned this Oct 25, 2022
dzbaker added a commit that referenced this issue Oct 25, 2022
Fix #2183, use osal_public_api header targets in doc
@dmknutsen dmknutsen added this to the Draco milestone Jan 18, 2023
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants