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

Fixes issue #2144- Propagate CMAKE_EXPORT_COMPILE_COMMANDS variable #2145

Conversation

aliounis
Copy link
Contributor

@aliounis aliounis commented Sep 13, 2022

Propagates variable CMAKE_EXPORT_COMPILE_COMANDS to the cmake subprocess in mission_build.cmake

Checklist (Please check before submitting)

  • I reviewed the Contributing Guide.
  • [ NA] I signed and emailed the appropriate [Contributor License Agreement] -- Government employee

Describe the contribution
This fixes feature request #2144 which has CMake generate a compilation database for all subprojects/targets, helping editors/IDEs with understanding the full cFS/cFE environment.

Testing performed
Steps taken to test the contribution:

  1. Build steps (from root of cFS directory)
    mkdir build
    cd build
    cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE ../cfe
  1. Execution steps
    find . -iname "compile_commands.json"
    >>> ./cpu1/default_cpu1/compile_commands.json
    >>> ./compile_commands.json

Expected behavior changes
No impact to behavior of cFE itself. Simply causes an extra file to be created (the compilation database) for cFE/cFS apps when requested by the user.

System(s) tested on

  • Hardware: linux server/mac book pro
  • OS: RHEL8.6,Ubuntu 20.04
  • Versions: dev (main branch)

Additional context
N/A

Third party code
N/A

Contributor Info - All information REQUIRED for consideration of pull request
Andrew Liounis - NASA/GSFC

Propagates variable CMAKE_EXPORT_COMPILE_COMANDS to the cmake subprocess in mission_build.cmake
@aliounis aliounis changed the title Fixes issue #2144 Fixes issue #2144- Propagate CMAKE_EXPORT_COMPILE_COMMANDS variable Sep 13, 2022
Copy link
Contributor

@jphickey jphickey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hadn't known about this option, seems to work well for me on CMake 3.22 and seems like a beneficial feature.

That being said, I would like to confirm that this works the same on the oldest version of CMake that we still claim to support (3.5) and may need to tweak the formatting of the commit message but otherwise looks good to me.

@aliounis
Copy link
Contributor Author

For reference I know it at least works with cmake 3.10 from when we were building things on Ubuntu 18.04. The variable itself was introduced in 3.5, so I don't see why this wouldn't work at 3.5, but I could try it out at some point if you would like.

@aliounis
Copy link
Contributor Author

I just did check with cmake=3.5 and a fresh cFS bundle (from github) and it works as expected on RHEL8

@chillfig chillfig added the CCB:Approved Indicates code review and approval by community CCB label Sep 29, 2022
dzbaker added a commit to nasa/cFS that referenced this pull request Oct 3, 2022
*Combines:*

cfe v7.0.0-rc4+dev183
psp v1.6.0-rc4+dev55
osal v6.0.0-rc4+dev116
sample_app v1.3.0-rc4+dev27
sch_lab v2.5.0-rc4:dev35
tblCRCTool v1.3.0-rc4+dev18
ci_lab v2.5.0-rc4+dev30
sample_lib v1.3.0-rc4+dev20
cFS-GroundSystem v3.0.0-rc4+dev25

**Includes:**

*cFS*
- #580, Addresses invalid CodeQL language option

*cFE*
- nasa/cFE#2145, Fixes issue #2144- Propagate CMAKE_EXPORT_COMPILE_COMMANDS variable
- nasa/cFE#2148, Remove CodeQL Paths Ignore
- nasa/cFE#2151, Duplicated Logic in CFE_SB_BroadcastBufferToRoute
- nasa/cFE#2156, Remove 'return;' from last line of void functions.
- nasa/cFE#2154, Remove unnecessary parentheses around return values.

*osal*
- nasa/osal#1181, Use fstat and fchmod for TOCTOU Bug
- nasa/osal#1294, Remove 'return;' from last line of void functions.
- nasa/osal#1292, Remove unnecessary parentheses around return values.

*sample_app*
- nasa/sample_app#177, Misaligned comments
- nasa/sample_app#179, Remove unnecessary parentheses around return values.
- nasa/sample_app#181, Remove 'return;' from last line of void functions.

*sch_lab*
- nasa/sch_lab#120, Remove unnecessary parentheses around return values.

*tblCRCTool*
- nasa/tblCRCTool#69, Remove unnecessary parentheses around return values.

*ci_lab*
- nasa/ci_lab#116, Remove unnecessary parentheses around return values.
- nasa/ci_lab#118, Remove 'return;' from last line of void functions.

*sample_lib*
- nasa/sample_lib#84, Remove unnecessary parentheses around return values.

*cFS-GroundSystem*
- nasa/cFS-GroundSystem#222, Remove 'return;' from last line of void functions.

Co-authored-by: Avi Weiss <[email protected]>
Co-authored-by: Andrew Liounis <[email protected]>
Co-authored by: Ariel Adams <[email protected]>
@dzbaker dzbaker mentioned this pull request Oct 3, 2022
2 tasks
@dzbaker dzbaker merged commit 8d6f89c into nasa:main Oct 3, 2022
dzbaker added a commit to nasa/cFS that referenced this pull request Oct 3, 2022
*Combines:*

cfe v7.0.0-rc4+dev183
psp v1.6.0-rc4+dev55
osal v6.0.0-rc4+dev116
sample_app v1.3.0-rc4+dev27
sch_lab v2.5.0-rc4:dev35
tblCRCTool v1.3.0-rc4+dev18
ci_lab v2.5.0-rc4+dev30
sample_lib v1.3.0-rc4+dev20
cFS-GroundSystem v3.0.0-rc4+dev25

**Includes:**

*cFS*
- #580, Addresses invalid CodeQL language option

*cFE*
- nasa/cFE#2145, Fixes issue #2144- Propagate CMAKE_EXPORT_COMPILE_COMMANDS variable
- nasa/cFE#2148, Remove CodeQL Paths Ignore
- nasa/cFE#2151, Duplicated Logic in CFE_SB_BroadcastBufferToRoute
- nasa/cFE#2156, Remove 'return;' from last line of void functions.
- nasa/cFE#2154, Remove unnecessary parentheses around return values.

*osal*
- nasa/osal#1181, Use fstat and fchmod for TOCTOU Bug
- nasa/osal#1294, Remove 'return;' from last line of void functions.
- nasa/osal#1292, Remove unnecessary parentheses around return values.

*sample_app*
- nasa/sample_app#177, Misaligned comments
- nasa/sample_app#179, Remove unnecessary parentheses around return values.
- nasa/sample_app#181, Remove 'return;' from last line of void functions.

*sch_lab*
- nasa/sch_lab#120, Remove unnecessary parentheses around return values.

*tblCRCTool*
- nasa/tblCRCTool#69, Remove unnecessary parentheses around return values.

*ci_lab*
- nasa/ci_lab#116, Remove unnecessary parentheses around return values.
- nasa/ci_lab#118, Remove 'return;' from last line of void functions.

*sample_lib*
- nasa/sample_lib#84, Remove unnecessary parentheses around return values.

*cFS-GroundSystem*
- nasa/cFS-GroundSystem#222, Remove 'return;' from last line of void functions.

Co-authored-by: Avi Weiss <[email protected]>
Co-authored-by: Andrew Liounis <[email protected]>
Co-authored by: Ariel Adams <[email protected]>
@dmknutsen dmknutsen added this to the Draco milestone Jan 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CCB:Approved Indicates code review and approval by community CCB draco-rc4
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants