Date: Tue, 22 Aug 2006 18:02:55 +0200 (MEST)
From: Luigi Calori <[EMAIL PROTECTED]>


> I'm going to go ahead and start on Eric's To-do list.  I'll repost
> that here:
> - Need to place CMakeLists.txt directly into the source tree (to mimic
> current GNUMakefile layout)

It would be great... but do you have commit access to OSG repository?
this was the main reason to keep the folders  separate


Only Robert and Don have access. But I think we need to write it as it
were going to be committed because it is easy to start using relative
paths within scripts and if the layout changes, that will have to be
fixed. If we can agree to a stable layout, then we could request
getting committed early as the CMakeLists.txt don't conflict with
anything.

Meanwhile, I'm just using find/tar (or zip) to help me isolate the components:

(From inside the OSG_OP_OT directory)
find . -name "CMakeLists.txt" -o -name "*.cmake" | tar zcvf OSGCMAKE.tar.gz -T -
find . -name "CMakeLists.txt" -o -name "*.cmake" | zip OSGCMAKE.zip -@
or maybe
tar zcvf OSGCMAKE3.tar.gz -T <(find . -name "CMakeLists.txt" -o -name
"*.cmake" )

Then to put them back into a tree, you just extract in that same directory.


> - Change the current clever file glob into a boring/dumb manual opt-in
> to build

Do you mean writing explicitly the .cpp in the CMakeLists?
OSG has such an ordinate source tree that one can count on the fact that
all the sources are relevant

And headers :)
I really do like the slickness of your macro/function. I've been
struggling with whether this is the best approach or if the
dumb-explicit thing is the best approach.

The big problem is when you're working in a non-stable or non-rc
source. On several occasions I have spotted source code that resided
in the tree that was not supposed to be built. (And sometimes I add
files myself when doing internal development, but they are not compile
ready.) I think it's safer to explicitly opt-in because of this. There
are no surprises in this case.

There is a secondary thing I like about having all the files listed
explicitly. Doing so makes the CMakeLists.txt somewhat
self-documenting and easy to search. I know when I was going through
the prototype scripts, I was searching for where the osg core files
were added, but I couldn't find it initially because I was expecting a
large list of filenames I recognized. Since the prototype system only
worked on Windows and I was on OS X, I started operating under the
assumption that it wasn't written yet. It wasn't until much later I
figured out what was really going on. So I think having this
information explicit in the scripts would be useful to newcomers that
are not familiar with our build system.

> - Finish adding all components (examples, plugins, etc)

I was able to build almost all the examples and plugins, there are some
problems for dependencies for some image stuff there
are cmake for building the libraries, but no one working for GDal, there
is also some FInd Macros.
I' ve also tried to build a Use file for Using CMake OSG builds into
other projects, such as osgToys.


I'm not familiar with Use files. How do these differ from the
Findosg*.cmake files?

> - Add gui/configuration options to control which components are built
> - Add detection for optional components
> - Add platform specific options (OS X framework or .dylib, etc)
> - Add preference support (built static or dynamic, 32-bit or 64-bit
> (or obese in OS X?),etc)
> - Doxygen support
>
> Secondary stuff:
> - CMake/CTest/nightly dashboard?
> - Packaging / installers

Well .. that' s secondary but is probably something really useful being
OSG a really active project where many users use latest CVS



I think I've figured out how to support Doxygen. Maybe there's a more
elegant way though. (I've sent a horribly incomplete snapshot of what
I've been working on to Jacob.) I have something for OpenThreads and
Producer. OSG has multiple Doxyfiles and a footer.html file which I
haven't figured out what to do with yet.

Detection for optional components is kind of necessary for the
osgplugins, especially on the non-OS X Unices (and maybe Windows too)
because it is hard to know what's actually installed on these systems.
For example, a GIF library may not be installed on the system. We need
to know not to build the osgdb gif plugin.

The other stuff that responds to user configuration might be
secondary, but I'm worried that because there are enough options, it
will impact the design of our CMake scripts which is why I bring it up
now. (I can imagine every CMake command will either be surrounded by
(multiple) IF cases or contain variables in the command or both.)

Thanks,
Eric
_______________________________________________
osg-users mailing list
osg-users@openscenegraph.net
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to