<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Hi,<div><br></div><div>I'm trying to use&nbsp;target_link_libraries to add a release and debug version of a library to my debug and release config of my Visual Studyi project.</div><div><br></div><div><pre class="de1" style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 5px; padding-top: 3px; padding-left: 10px; color: rgb(0, 0, 102); background-color: rgb(240, 240, 240); ">        message(${JSONCPP_LIB_DEBUG})
&nbsp; &nbsp; &nbsp; &nbsp; message(${JSONCPP_LIB_RELEASE})
&nbsp; &nbsp; &nbsp; &nbsp; target_link_libraries(
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TEEngineTest
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TECore
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TEngine
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TEGraphics
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TEPhysics
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TETransform
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ${cg_libs}
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ${libpng_lib}
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ${ASSIMP_LIB}
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; debug ${JSONCPP_LIB_DEBUG}
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; optimized ${JSONCPP_LIB_RELEASE})</pre></div><div><br></div><div>When I'm generating it prints this:</div><div><br></div><div><pre class="de1" style="margin-top: 0px; margin-bottom: 0px; padding-bottom: 5px; padding-top: 3px; padding-left: 10px; color: rgb(0, 0, 102); background-color: rgb(240, 240, 240); ">D:/coding/tengine/Externals/jsoncpp/build/vs71/debug/lib_json/json_vc71_libmtd.lib
D:/coding/tengine/Externals/jsoncpp/build/vs71/release/lib_json/json_vc71_libmt.lib
Configuring done
Generating done</pre></div><div><br></div><div>But when I look at the properties of the project it adds the release build of the lib to both debug and the release build?</div><div><br></div><div><br></div><div>Im not sure if this is relevant, but this is how I set up &nbsp;my debug and release config for Visual Studio</div><div><br></div><div><div>if(MSVC)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set_property(GLOBAL PROPERTY USE_FOLDERS ON)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "9. CMake")</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_CONFIGURATION_TYPES "DebugOpenGL;ReleaseOpenGL;DebugDX11;ReleaseDX11")</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>"Reset the configurations to what we need"</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>#DebugOpenGL flags</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_CXX_FLAGS_DEBUGOPENGL "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1" CACHE STRING "Flags used by the C++ compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_C_FLAGS_DEBUGOPENGL "/D_DEBUG /MDd /Zi &nbsp;/Ob0 /Od /RTC1" CACHE STRING "Flags used by the C compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_EXE_LINKER_FLAGS_DEBUGOPENGL "/debug /INCREMENTAL" CACHE STRING "Flags used for linking binaries during maintainer builds." FORCE )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_SHARED_LINKER_FLAGS_DEBUGOPENGL "/debug /INCREMENTAL" CACHE STRING "Flags used by the shared libraries linker during maintainer builds." FORCE )</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>#ReleaseOpenGL flags</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_CXX_FLAGS_RELEASEOPENGL "/MD /O2 /Ob2 /D NDEBUG" CACHE STRING "Flags used by the C++ compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_C_FLAGS_RELEASEOPENGL "/MD /O2 /Ob2 /D NDEBUG" CACHE STRING "Flags used by the C compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_EXE_LINKER_FLAGS_RELEASEOPENGL "/INCREMENTAL:NO" CACHE STRING "Flags used for linking binaries during maintainer builds." FORCE )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_SHARED_LINKER_FLAGS_RELEASEOPENGL "/INCREMENTAL:NO" CACHE STRING "Flags used by the shared libraries linker during maintainer builds." FORCE )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>#DebugDX11 flags</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_CXX_FLAGS_DEBUGDX11 "/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1" CACHE STRING "Flags used by the C++ compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_C_FLAGS_DEBUGDX11 "/D_DEBUG /MDd /Zi &nbsp;/Ob0 /Od /RTC1" CACHE STRING "Flags used by the C compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_EXE_LINKER_FLAGS_DEBUGDX11 "/debug /INCREMENTAL" CACHE STRING "Flags used for linking binaries during maintainer builds." FORCE )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_SHARED_LINKER_FLAGS_DEBUGDX11 "/debug /INCREMENTAL" CACHE STRING "Flags used by the shared libraries linker during maintainer builds." FORCE )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>#ReleaseDX11 flags</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_CXX_FLAGS_RELEASEDX11 "/MD /O2 /Ob2 /D NDEBUG" CACHE STRING "Flags used by the C++ compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_C_FLAGS_RELEASEDX11 "/MD /O2 /Ob2 /D NDEBUG" CACHE STRING "Flags used by the C compiler during maintainer builds." FORCE)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_EXE_LINKER_FLAGS_RELEASEDX11 "/INCREMENTAL:NO" CACHE STRING "Flags used for linking binaries during maintainer builds." FORCE )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set(CMAKE_SHARED_LINKER_FLAGS_RELEASEDX11 "/INCREMENTAL:NO" CACHE STRING "Flags used by the shared libraries linker during maintainer builds." FORCE )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>set_directory_properties(PROPERTIES</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>COMPILE_DEFINITIONS_DEBUGOPENGL TE_OPENGL</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>COMPILE_DEFINITIONS_RELEASEOPENGL TE_OPENGL</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>COMPILE_DEFINITIONS_DEBUGDX11 TE_DX11</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>COMPILE_DEFINITIONS_RELEASEDX11 TE_DX11</div><div>)</div><div>endif()</div></div>                                               </div></body>
</html>