<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<p class=MsoNormal>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.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>CMake snippet:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>FIND_PACKAGE ("OpenSceneGraph")<o:p></o:p></p>
<p class=MsoNormal>IF (OPENSCENEGRAPH_FOUND)<o:p></o:p></p>
<p class=MsoNormal> INCLUDE_DIRECTORIES
(${OPENSCENEGRAPH_INCLUDE_DIRS})<o:p></o:p></p>
<p class=MsoNormal> ADD_LIBRARY
(LtfSceneBuilder ${SOURCES})<o:p></o:p></p>
<p class=MsoNormal> TARGET_LINK_LIBRARIES
(LtfSceneBuilder ${OPENSCENEGRAPH_LIBRARIES})<o:p></o:p></p>
<p class=MsoNormal> INSTALL
(TARGETS LtfSceneBuilder RUNTIME DESTINATION bin LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)<o:p></o:p></p>
<p class=MsoNormal>ENDIF ()<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>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.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>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.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Ideas?<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Thanks,<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Gregory Peele, Jr.<o:p></o:p></p>
<p class=MsoNormal>Senior Scientist<o:p></o:p></p>
<p class=MsoNormal>Applied Research Associates, Inc.<o:p></o:p></p>
<p class=MsoNormal>Central Florida Division<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>