Nobody's talking about cross-compiling the whole OSG. I'm talking about
the build system picking the correct libraries for almost _everything_
- just for the GIF and the FreeType plugin it is referring to the wrong
directories.

The CMake FIND_* system is meant as a convenience for users to
automatically find installed libraries on your system. It is not meant
as a guarantee that the libraries will actually be found, nor is it a
guarantee that you find will be the version you want. This is why the
interactive process exists. It is impossible to read a person's mind
on intent. Even on OS X, where things are pretty homogeneous and
Universal Binaries hide the nastiness about 32-bit vs 64-bit, thanks
to projects like Fink, DarwinPorts, Gentoo for OS X, or
build-yourself, it is impossible to know without user intervention
which libraries the user actually wants to use.

I have tried to alleviate some of the difficulty with automation by
allowing certain environmental variables to be set. However, it is not
yet consistently implemented and we don't have control over official
Find*.cmake modules.

If you want fine and total control over which library paths are used,
you should be either specifying CMAKE_LIBRARY_PATH and
CMAKE_INCLUDE_PATH yourself (also see CMAKE_SYSTEM_LIBRARY_PATH and
CMAKE_SYSTEM_INCLUDE_PATH) or specifying -D flags explicitly for each
setting (with the caveats that we reserve the right to change variable
names in the future and that -D can be abused to produce settings that
we may deem impossible).

For automation where you know everything in advance, I recommend you
automate this per-configuration by writing a small shell script that
sets these variables locally in the script and invokes cmake on your
behalf.

-Eric
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to