wiki:Sébastien

Version 3 (modified by arnault, 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 uses proj-a
  • proj-c uses proj-b
  • proj-d uses proj-c and proj-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 from libpkg-aaa)
  • creates a libpkg-bbb library
  • installs a header pkg-bbb/pkg-bbb.h

proj-c

has pkg-ccc which:

  • uses pkg-aaa and pkg-bbb to get the functions from (resp.) libpkg-aaa and libpkg-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 would dlopen a library and call some function
  • play with a proj-b/pkg-aaa overidding proj-a/pkg-aaa in proj-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


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,...)

mana-ext

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

mana-core

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.