Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "C/C Actors"
(→Work flow) |
|||
Line 14: | Line 14: | ||
** which implies you have to download and unzip them : Buckminster cannot do that for the moment despites its exactly what you expect it to do. | ** which implies you have to download and unzip them : Buckminster cannot do that for the moment despites its exactly what you expect it to do. | ||
− | + | === Work flow currently used === | |
The toolchain I created to manage C/C++ projects dependencies is as follows : | The toolchain I created to manage C/C++ projects dependencies is as follows : | ||
* Create Spec components to describe dependencies | * Create Spec components to describe dependencies | ||
Line 23: | Line 23: | ||
** execute commands with specific environment variables (eg. calling the compiler with paths to libraries) | ** execute commands with specific environment variables (eg. calling the compiler with paths to libraries) | ||
* Create the script to compile the code ( Makefile or Boost Jamfile or SCons file ) | * Create the script to compile the code ( Makefile or Boost Jamfile or SCons file ) | ||
− | |||
== Proposed actors == | == Proposed actors == |
Revision as of 15:00, 18 July 2008
Note this document is under construction --Guillaume CHATELET 12:40, 18 July 2008 (EDT)
Purpose
While trying to use Buckminster for both my Java and C++ projects, I realized that Java projects within Eclipse were pretty straightforward but C/C++ projects were much more difficult to manage.
Why is it so hard ?
Component materialization is much harder in non Java environments because :
- java projects dependencies are automatically described by the Eclipse plugin framework (no need to create CSpecs)
- Contrary to the C/C++ projects for which you have to write them.
- compiling, testing, your code requires to execute programs from outside ( shell scripts, compiler, unit tests and so forth ).
- some of the resources you need to materialize are libraries that are only available as zipped url resources.
- which implies you have to download and unzip them : Buckminster cannot do that for the moment despites its exactly what you expect it to do.
Work flow currently used
The toolchain I created to manage C/C++ projects dependencies is as follows :
- Create Spec components to describe dependencies
- Specify actions like build / clean / rebuild
- those actions have prerequisites pointing to other components (eg: the path to the libTiff include folder)
- Write ant scripts called from buckminster to
- retrieve libraries from urls or retrieve files from archives pointed by url
- execute commands with specific environment variables (eg. calling the compiler with paths to libraries)
- Create the script to compile the code ( Makefile or Boost Jamfile or SCons file )
Proposed actors
This page is a proposal to extends Buckminster's actor in order to bring users from the non Java world a better experience in executing actions like
- downloading resources from the web
- executing shell scripts