Version 3 (modified by 12 years ago) (diff) | ,
---|
A multi-project testbeb using waffle
the multi-proj testbed is [https://bitbucket.org/binet/waffle-multi-proj/overview
over there]
projects deps
proj-a
has no dep.proj-b
usesproj-a
proj-c
usesproj-b
proj-d
usesproj-c
andproj-a
proj-a
has pkg-aaa
which:
- creates a
libpkg-aaa
library - installs a header
pkg-aaa/pkg-aaa.h
proj-b
has pkg-bbb
which:
- uses
pkg-aaa
(to get a function fromlibpkg-aaa
) - creates a
libpkg-bbb
library - installs a header
pkg-bbb/pkg-bbb.h
proj-c
has pkg-ccc
which:
- uses
pkg-aaa
andpkg-bbb
to get the functions from (resp.)libpkg-aaa
andlibpkg-bbb
- creates a
libpkg-ccc
library - installs a header
pkg-ccc/pkg-ccc.h
proj-d
dummy.
TODO
- play with a binary in
proj-a/pkg-aaa
which woulddlopen
a library and call some function - play with a
proj-b/pkg-aaa
overiddingproj-a/pkg-aaa
inproj-c/pkg-ccc
How to play
$ hg clone ssh://hg@bitbucket.org/binet/waffle-multi-proj $ cd waffle-multi-proj $ ./build-projs.sh
this will compile and install everything under $sitedir=${HOME}/tmp/opt/mproj
Les config pour Gaudi
- le script qui genere des .cmake files à partir des requirements du projet Gaudi
- le script qui génère un wscript a partir des memes requirements
another case study
During the summer, I pushed a bit on my random walk with replacing CMT. as a case study, I focused on providing a trimmed down athena framework tailored for ROOT flat n-tuples analysis, which I called 'mana' (mini athena)
First, I tried to familiarize myself with CMake, and this materialized with 'mana-ext', a set of CMakeFiles to build the externals for mana (boost, clhep, root,...)
I must say, I wasn't totally impressed in the end with CMake as a development environment (at least for the part where one has to write these CMake fragments). the syntax is bulky, string processing is clunky,... of course I just gave it a couple of weeks, but still.
then, I worked back on my waf-based source code, and this was much more pleasant (python, I guess.)
the status of project is summarized in the README of that bitbucket, as well as in the presentation I gave last week to the atlas physics analysis tools (in attachment.)
in a nutshell, one can build mana-core on linux and macosx with the system-wide installed dependencies, or on lxplus with a lcgcmt environment setup (mana should be able to pick up the correct libraries.)
the compilation is 5x faster than with the special toplevel Makefile From Marco.
the wscript files (which are the req-files equivalent of waf) are semi-automatically generated from the CMT requirement files, using the same technique than Pere's generator.
the environment is not pushed in the user's shell but is instead available as a subshell properly configured and spawned via
'$ ./waf shell'
I plan to implement (after ACAT) the compilation of externals a-la-ExternalProject_Add to waf (for which there is already a skeleton in SVN) as well as proper packaging (ditto): src-pkg, bin-pkg, rpm and mac-bundle.