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

Enhanced build system for cFS #32

Closed
skliper opened this issue Sep 30, 2019 · 10 comments
Closed

Enhanced build system for cFS #32

skliper opened this issue Sep 30, 2019 · 10 comments
Milestone

Comments

@skliper
Copy link
Contributor

skliper commented Sep 30, 2019

The alternate build system uses CMake and offers several enhancements:

  • Completely isolated build tree - No mixing of source files and generated files
  • Dynamic application search path, supports "app-store" concept by keeping app repos separate from cFS repos.
  • Supports multiple different build configurations from the same source tree
  • Includes mechanisms for electronic data sheets (data dictionary) support and Lua functional testing support in the future
@skliper skliper added this to the 6.5.0 milestone Sep 30, 2019
@skliper skliper self-assigned this Sep 30, 2019
@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Imported from trac issue 1. Created by jphickey on 2014-12-17T09:30:56, last modified: 2019-03-05T14:57:55

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by glimes on 2015-02-11 11:41:02:

See [changeset:aec76d4]

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by sstrege on 2015-04-03 18:48:50:

Concur with addition

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by sduran on 2015-04-06 11:53:06:

recommend accept

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by acudmore on 2015-04-06 13:39:41:

recommend accept

A couple of questions:

  1. Will it be easy to add new target architectures/OSs : for example FreeRTOS/ARM which uses arm-none-eabi-gcc ?
  2. Even though the goal is to not put any generated files into CM, could a long term / stable mission still have relatively static build directories ?

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by jphickey on 2015-04-06 15:31:31:

To address the questions:

  1. YES. The "special sauce" for compiling on any given target is isolated into a separate toolchain file and platform support module. My expectation is that a toolchain file for FreeRTOS would look a lot like the one for RTEMS.

  2. Yes, more or less. Once you prepare a build (i.e. run cmake to set up a build dir) that build directory does not ever need to change. Rules are added to the generated makefiles to it automatically tracks itself to any changes in the source scripts, but that is unlikely to ever happen in a long term support situation.

But you still would never check anything in the build directory into CM, there is just no good reason to do so. Aside from being unnecessary, the generated makefiles do encode some absolute paths to the source files, so a build tree cannot be "moved". If you did check the generated makefiles into CM for some reason, they wouldn't work if checked out on a different machine in a different location.

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by glimes on 2015-04-07 12:43:08:

Tested changeset [changeset:aec76d4] as part of the ic-2015-03-10 merge.

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by glimes on 2015-04-13 14:41:44:

Part of integration candidate 2015-03-10,
committed to cFS CFE Development branch on 2015-04-10
as part of merge [changeset:7d6f6d0].

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by glimes on 2016-02-25 10:17:32:

these will be fixed in CFE 6.5

@skliper
Copy link
Contributor Author

skliper commented Sep 30, 2019

Trac comment by jhageman on 2019-03-05 14:57:55:

Milestone renamed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant