Hello James,

I think you're mixing things up. There are three different issues here:

1. The choice to use Config headers.
2. The fact that the Atomic header includes windows.h.
3. The fact that your version of CMake chooses the wrong configuration and does not generate the Config header.

Number 1 is a design choice. The choice is basically between having a file that defines options that affect the build, and needing to specify those options as defines in *each* project that uses OSG. I can see why the choice to have a Config file was taken. Otherwise, you would have to support people configuring their OSG build one way and then linking to it in a project where the incorrect define was being used, which would happen more often than you'd think. Having a Config header ensures that both the built version of OSG and your project use the same options (as long as the same Config header is included for both).

Number 2 was a mistake (by the person who made the change, but still unrelated to the choice in number 1), and is being rectified as we speak. Check the messages from yesterday. *That* is what's breaking the build on Windows right now.

As for Number 3, I believe that is caused by CMake 2.4.x. This can be investigated and fixed *after* the windows.h issue is fixed, which is much more major (as it affects *everyone* building on Windows, independently of the version of CMake they use). A workaround for you would be to get CMake 2.6 from cmake.org. Then you would get the right configuration (interlocked), the Config header would be generated and used, and you would see the windows.h include problem... At least that's what I think. :-)

"
 you don't need anything different than
before, since the Config headers are installed with your other OSG
headers.
"
Do you have an "out-of-source" configuration or in source?
I use the "out-of-source" configuration and so the config headers are
installed in the <build> directory.

I use an out-of-source build with CMake 2.6, and the Config header is being generated just fine. But what I was talking about in the line you quoted above is that OSG headers are including the Config headers. If you don't do an INSTALL (or make install), then the Config headers are not together with your other OSG headers.

Config headers:
OpenSceneGraph/<build>/include/OpenThreads/Config
OpenSceneGraph/<build>/include/osg/Config

Other headers:
OpenSceneGraph/include/OpenThreads/*
OpenSceneGraph/include/osg/*

So the other headers won't find #include <OpenThreads/Config> or #include <osg/Config> unless you add the directories above (in <build>) to your include file search path. Which was not required before.

But if you do an INSTALL, you don't have that problem, because the INSTALL target copies the Config headers to the same place as the other headers, and so #include <OpenThreads/Config> will work without any change to your project files.

I hope that clears things up.


(FYI this is in plain text so you should be able to see it) :)

Thanks :-)


J-S
--
______________________________________________________
Jean-Sebastien Guay    [EMAIL PROTECTED]
                               http://www.cm-labs.com/
                        http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to