[Lumiera] Lumiera Graphics / new build target

Ichthyostega prg at ichthyostega.de
Sat Dec 3 19:07:56 CET 2011

Hash: SHA1

>> I'll see how best to integrate that into the build. I'll report back on
>> that topic and will then explain you how I did it, hopefully later that
>> evening.
On 02.12.2011 18:26, Michael R Fisher wrote:
> Sounds good to me.  I'll keep an eye out for an update.

Hi Michael,

yesterday I managed to merge several parts, then do quite some long-standing
cleanup to the codebase and finally I integrated your new code into the build.

I was just about to hit "send" on a longer mail message explaining what I've
done... when my computer did a "puf" and went inoperational. Hopefully it's
just the power supply (but the box is now 5 years old, and I have to see
what to do). Right now I'm using my laptop.


This would be the branch with your changes, roughly integrated into the build.
I did the following

- - create a new top level folder 'research' (sibling to src and tests)
- - place a new SConscript into it and call that from main build
- - define a new build target 'research', which isn't run from normal build
- - move your code into a 'research/gui/grahpics' and 'research/gui/widgets'
- - define building of a new executable 'target/gui-experiments'
  * using a new main in gui-experiments.cpp
  * build and link directly against your new code in the 'gui/..' subtree
  * link dynamically against the normal gtk_gui.lum module produced by the
    normal build.

Hopefully this description and the changeset to SConstruct and SConscript
is enough for you to understand (and maybe tweak) what happens in this build.
Otherwise please just ask.

You should be able to build the newly hooked up code by invoking

scons research

Personally, I've always found SCons quite self explanatory, once you've
gotten to understand the basic concept that we just build a datastructure
/defining/ the relations and the pieces to build. The other thing worth
mentioning is that there is an build environment object ("Environment",
typically just called 'env'). You define things to be built by attaching
nodes to that environment, new targets can depend on already defined nodes,
as returned from the definition of the prerequisite build artifacts. Plus you
can env.Clone() to create an sub environment to specialise (e.g. for additional
libraries to link in, additional compiler switchers).

Regarding that stand-alone application I hacked together: Obviously it
doesn't start right now. I defined it such as to pull up the basic Lumiera
application services (logging, configuration, threading), but it doesn't
start any Lumiera "subsystem" (no session, no backend, no player).

As far as I could see yesterday, startup works well up to the point where
the Viewer pannel is initialised. There, in the current GUI (which is
just invoked as-is), we try to start a "Dummy Player Service" in Proc-Layer,
which just generates those test images when you hit the play button.
I'd just bet that at this point we try to open a facade interface to Proc,
which raises an exception (because the subsystems aren't started).
The GUI then shuts down, which leds to an Segfault on my system (we
discussed that already, you pointed out that this might be resolved
just by upgrading GTK).

Anyway, I couldn't investigate that further, because of "Puf..."
And now I've just somehow to figure out how to get my PC operational again.

Hopefully the committed part is already enough to get you started.


Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/


More information about the Lumiera mailing list