Skip to main content

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.

Jump to: navigation, search

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's actor in order to bring users from the non Java world a better experience in executing actions like
+
This page is a proposal to extends Buckminster in order to bring users from the non Java world a better experience.
* downloading resources from the web
+
 
* executing shell scripts
+
=== 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

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)
  • 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

Back to the top