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 "Non Java projects Proposal"
(New page: {{Backlink|Buckminster Project}} {{Backlink|Helping_Out_(Buckminster)}} '''Note this document is under construction''' --Guillaume CHATELET == Purpose == Whi...) |
(→Proposal) |
||
Line 30: | Line 30: | ||
== Proposal == | == Proposal == | ||
− | This page is a proposal to extends Buckminster | + | This page is a proposal to extends Buckminster in order to bring users from the non Java world a better experience. |
− | + | ||
− | * | + | === Executor Actor === |
+ | |||
+ | This actor would add the possibility to execute programs directly from the CSpec without writing Ant Scripts. | ||
+ | |||
+ | ==== Features ==== | ||
+ | * Executes programs | ||
+ | * Sets arguments | ||
+ | ** arguments can refer to prerequisites | ||
+ | * Sets environment variables for the execution | ||
+ | ** environments variables are key/value pairs | ||
+ | ** environments variables values can refer to prerequisites | ||
+ | |||
+ | ==== Syntax ==== | ||
+ | This syntax integrates into [[Buckminster component meta-data language 1.0 (Reference)#Public.2FPrivate_Actions|Buckminster's CSpec Actions]] | ||
+ | |||
[[Category:Buckminster]] | [[Category:Buckminster]] | ||
[[Category:Buckminster Technology]] | [[Category:Buckminster Technology]] | ||
[[Category:Buckminster Technology Ant]] | [[Category:Buckminster Technology Ant]] |
Revision as of 09:09, 19 July 2008
< To: Buckminster Project
< To: Helping_Out_(Buckminster)
Note this document is under construction --Guillaume CHATELET
Contents
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 (so Buckminster create CSpecs for you)
- 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)
- those environments variables are retrieved from Buckminster's action's prerequisites section via Ant actor API (Buckminster)
- Create the script to compile the code ( Makefile or Boost Jamfile or SCons file )
Proposal
This page is a proposal to extends Buckminster in order to bring users from the non Java world a better experience.
Executor Actor
This actor would add the possibility to execute programs directly from the CSpec without writing Ant Scripts.
Features
- Executes programs
- Sets arguments
- arguments can refer to prerequisites
- Sets environment variables for the execution
- environments variables are key/value pairs
- environments variables values can refer to prerequisites
Syntax
This syntax integrates into Buckminster's CSpec Actions