I trying to support multiple configurations in a single binary directory (in my 
case for MSVC 2010) and ran into a situation that I'm not sure how to tackle.   
I have a library target which links against OpenSceneGraph.  If OpenSceneGraph 
is not found, that target and everything that depends on it is not built since 
the 3D GUI is optional.

CMake snippet:

FIND_PACKAGE ("OpenSceneGraph")
IF (OPENSCENEGRAPH_FOUND)
                INCLUDE_DIRECTORIES (${OPENSCENEGRAPH_INCLUDE_DIRS})
                ADD_LIBRARY (LtfSceneBuilder ${SOURCES})
                TARGET_LINK_LIBRARIES (LtfSceneBuilder 
${OPENSCENEGRAPH_LIBRARIES})
                INSTALL (TARGETS LtfSceneBuilder RUNTIME DESTINATION bin 
LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
ENDIF ()

With a multi-configuration build it is possible for Debug OSG to be found and 
not Release (or vice-versa) and I would like to support that case if possible.  
  Since this is Windows and OSG is heavy on memory allocation across DLL 
boundaries, it is not a good thing to mix and match Release and Debug.   Is 
there a way to add my library target only for a specific configuration based on 
whether the appropriate OSG libraries for that configuration were found?  I 
know the MSVC IDE has a way of setting projects to be built only in certain 
configurations but I am not sure if there is a way to do it from CMake and, if 
so, whether it plays nicely with INSTALL.

Currently if only Debug OSG is found, CMake generation fails due to NOT_FOUND 
values for the Release OSG libraries being referenced by the MSVC project.  If 
only Release OSG is found, CMake generation succeeds and the Debug build links 
against Release OSG libraries.

Ideas?

Thanks,

Gregory Peele, Jr.
Senior Scientist
Applied Research Associates, Inc.
Central Florida Division

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to