Hi,

On Wed, 2006-09-27 at 10:00 -0500, Allen Bierbaum wrote:
> This morning I spent some time working on getting the scons build for 
> OpenSG 2.0 working on windows. I have checked in changes that allow the 
> build to nearly complete.   I made quite a bit of progress but I ran 
> into two issues.
> 
> 1) I am getting the following linking error when trying to link the 
> OSGWindowWIN32_d library.  Any ideas?

looking at the commits this one seem to be solved.

> 2) I found a cycle in the library dependencies.  This shows up on win32 
> and on Linux.
> 
> The way we build with scons we have the build of library A depend upon 
> the build of library B if A needs to link against B.  This is a pretty 
> straight forward dependency and makes sense.  If the Base lib changes 
> then the libraries that use Base should relink against the changed library.
> 
> Unfortuantely there is a problem with OSGRenderTraversal and OSGWindow.
> 
> Source/System/NodeCores/Groups/Light/Shadow is put into the 
> OSGRenderTraversal library.  But there is code in 
> OSGSimpleShadowMapEngine.cpp that uses a MatrixCamera (it uses 
> setModelViewMatrix and setProjectionMatrix).  These methods are defined 
> in Source/System/Window/Camera/OSGMatrixCameraBase which is part of the 
> OSGWindow library.  At the same time, the Window classes use things out 
> of the OSGRenderTraversal library for rendering.  So this creates a 
> cycle where both libraries depend upon each other.
> 
> Does this make sense or am I missing something?

something is missing. The lib dependencies should be :

Window          <- Base System Group
RenderTraversal <- Base System State Drawable Group Window

The whole thing should be able to build without the RenderTraversal
part. So in nothing should depend on it, well except Util. That
one somehow needs RenderTraversal, have to check why. But than
nothing should depend on Util. Also there are RenderTraversalAction
and RenderTraversalActionBase which are in different libs (RenderTravLib
and SystemLib). One reason for this is to break circular dependencies.

At least the configure build works this way. If you run into this kind
of problems, the easiest way to check if it is a code or build problem
is to look into CommonConf/common.libs.in.

ac_package_inc_dep_<LibName> or ac_package_lib_dep_<LibName) tell you
the inter lib dependencies. 


regards,
  gerrit


-- 
It's Emergent[*], you see.

[*] [adj] A word favored by computer nerds; mandatory for DARPA research
          applications; on recent evidence, a synonym for 'doomed'.   


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to