Another issue...<div><br></div><div>At what point is it most important for the values of CMAKE_SHARED_LINK_FLAGS to exist? I set the value of this variable before my call to add_library(), however after that at some point the flags will get reverted because I&#39;m stepping out of function scope. Does it need to exist up to the end of the current cmake script? My flow is basically this (pseudo call stack):</div>
<div><br></div><div>Enter CMakeLists.txt</div><div>- Call define_project() function (in a separate cmake module)</div><div>- - Call ignore_libs() function</div><div>- - - Set CMAKE_SHARED_LINK_FLAGS with PARENT_SCOPE</div>
<div>- - Call create_target() function</div><div>- - - Call add_library() command</div><div>Leave CMakeLists.txt</div><div><br></div><div>I&#39;ve done some testing and I find that before the call to add_library(), my flags are setup properly in the CMAKE_SHARED_LINK_FLAGS variable.<br clear="all">
<div><br></div><div>---------</div>Robert Dailey<br>
<br><br><div class="gmail_quote">On Mon, Dec 12, 2011 at 2:20 PM, Michael Wild <span dir="ltr">&lt;<a href="mailto:themiwi@gmail.com">themiwi@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 12/12/2011 09:13 PM, Robert Dailey wrote:<br>
&gt; On Mon, Dec 12, 2011 at 2:10 PM, David Cole &lt;<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a><br>
</div><div><div class="h5">&gt; &lt;mailto:<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     Apparently, they are undocumented, but there are also:<br>
&gt;<br>
&gt;     CMAKE_SHARED_LINKER_FLAGS and CMAKE_MODULE_LINKER_FLAGS (and their<br>
&gt;     per-config variants) for SHARED and MODULE library targets as well.<br>
&gt;<br>
&gt;     Use CMAKE_SHARED_LINKER_FLAGS instead.<br>
&gt;<br>
&gt;<br>
&gt; Thanks for the information guys. I&#39;m having a minor problem with these<br>
&gt; variables though.<br>
&gt;<br>
&gt; Here is how I use it:<br>
&gt;<br>
&gt; set( CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}<br>
&gt; /NODEFAULTLIB:\&quot;${lib}\&quot; )<br>
&gt;<br>
&gt; Prior to calling the set above, the shared linker flags look like this:<br>
&gt;<br>
&gt;  /STACK:10000000 /machine:X86<br>
&gt;<br>
&gt; After calling the set above, it looks like this:<br>
&gt;<br>
&gt;   /STACK:10000000 /machine:X86 ;/NODEFAULTLIB:&quot;LIBC&quot;<br>
&gt;<br>
&gt; For some reason a semi-colon is being inserted prior to the<br>
&gt; /NODEFAULTLIB part. I don&#39;t know why this is happening but visual studio<br>
&gt; is complaining about it. Any reason why this is happening? Thanks.<br>
&gt;<br>
<br>
</div></div>That&#39;s how CMake works.<br>
<br>
set(VAR val1 val2 val3)<br>
<br>
defines a *list* where the elements are separated by a semi-colon (;).<br>
To prevent that, quote the assignment:<br>
<br>
set(VAR &quot;val1 val2 val3&quot;)<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
Michael<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
--<br>
<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
</div></div></blockquote></div><br></div>