Thanks for the info. It&#39;s a bit disappointing that it doesn&#39;t work like I expect. The CMAKE_MFC_FLAG should work as you say the link flags should, but it does not. As long as CMAKE_MFC_FLAG is set before I create my target, it works. Since CMAKE_SHARED_LINK_FLAGS does not work the same, I consider this a bug. There is no reason for it to exist up to the end of the file... it should only exist up to the call to create the target. For example, if I want to have 2 calls to add_library() in the same file, but specify link flags differently for each, how am I expected to do this without using the target specific property?<br clear="all">
<div><br></div><div>---------</div>Robert Dailey<br>
<br><br><div class="gmail_quote">On Mon, Dec 12, 2011 at 11:26 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">
It needs to exist **at the end** of the CMakeLists.txt file containing<br>
the target. If you don&#39;t want to do that (or can&#39;t, as in your case),<br>
you can use the LINK_FLAGS target property instead.<br>
<br>
HTH<br>
<br>
Michael<br>
<div class="im"><br>
On 12/12/2011 11:39 PM, Robert Dailey wrote:<br>
&gt; I have attached a small CMake project that reproduces the issue I&#39;m<br>
&gt; referring to. Please take a look :)<br>
&gt;<br>
&gt; ---------<br>
&gt; Robert Dailey<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Dec 12, 2011 at 4:11 PM, Robert Dailey &lt;<a href="mailto:rcdailey@gmail.com">rcdailey@gmail.com</a><br>
</div><div class="im">&gt; &lt;mailto:<a href="mailto:rcdailey@gmail.com">rcdailey@gmail.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     I forgot to say that the main issue is that my /NODEFAULTLIB link<br>
&gt;     flag isn&#39;t showing up in visual studio.<br>
&gt;<br>
&gt;     ---------<br>
&gt;     Robert Dailey<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     On Mon, Dec 12, 2011 at 4:10 PM, Robert Dailey &lt;<a href="mailto:rcdailey@gmail.com">rcdailey@gmail.com</a><br>
</div><div class="im">&gt;     &lt;mailto:<a href="mailto:rcdailey@gmail.com">rcdailey@gmail.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;         Another issue...<br>
&gt;<br>
&gt;         At what point is it most important for the values of<br>
&gt;         CMAKE_SHARED_LINK_FLAGS to exist? I set the value of this<br>
&gt;         variable before my call to add_library(), however after that at<br>
&gt;         some point the flags will get reverted because I&#39;m stepping out<br>
&gt;         of function scope. Does it need to exist up to the end of the<br>
&gt;         current cmake script? My flow is basically this (pseudo call stack):<br>
&gt;<br>
&gt;         Enter CMakeLists.txt<br>
&gt;         - Call define_project() function (in a separate cmake module)<br>
&gt;         - - Call ignore_libs() function<br>
&gt;         - - - Set CMAKE_SHARED_LINK_FLAGS with PARENT_SCOPE<br>
&gt;         - - Call create_target() function<br>
&gt;         - - - Call add_library() command<br>
&gt;         Leave CMakeLists.txt<br>
&gt;<br>
&gt;         I&#39;ve done some testing and I find that before the call to<br>
&gt;         add_library(), my flags are setup properly in the<br>
&gt;         CMAKE_SHARED_LINK_FLAGS variable.<br>
&gt;<br>
&gt;         ---------<br>
&gt;         Robert Dailey<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;         On Mon, Dec 12, 2011 at 2:20 PM, Michael Wild &lt;<a href="mailto:themiwi@gmail.com">themiwi@gmail.com</a><br>
</div><div class="im">&gt;         &lt;mailto:<a href="mailto:themiwi@gmail.com">themiwi@gmail.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;             On 12/12/2011 09:13 PM, Robert Dailey wrote:<br>
&gt;             &gt; On Mon, Dec 12, 2011 at 2:10 PM, David Cole<br>
&gt;             &lt;<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a> &lt;mailto:<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a>&gt;<br>
</div>&gt;             &gt; &lt;mailto:<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a><br>
<div><div class="h5">&gt;             &lt;mailto:<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a>&gt;&gt;&gt; wrote:<br>
&gt;             &gt;<br>
&gt;             &gt;     Apparently, they are undocumented, but there are also:<br>
&gt;             &gt;<br>
&gt;             &gt;     CMAKE_SHARED_LINKER_FLAGS and<br>
&gt;             CMAKE_MODULE_LINKER_FLAGS (and their<br>
&gt;             &gt;     per-config variants) for SHARED and MODULE library<br>
&gt;             targets as well.<br>
&gt;             &gt;<br>
&gt;             &gt;     Use CMAKE_SHARED_LINKER_FLAGS instead.<br>
&gt;             &gt;<br>
&gt;             &gt;<br>
&gt;             &gt; Thanks for the information guys. I&#39;m having a minor<br>
&gt;             problem with these<br>
&gt;             &gt; variables though.<br>
&gt;             &gt;<br>
&gt;             &gt; Here is how I use it:<br>
&gt;             &gt;<br>
&gt;             &gt; set( CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS}<br>
&gt;             &gt; /NODEFAULTLIB:\&quot;${lib}\&quot; )<br>
&gt;             &gt;<br>
&gt;             &gt; Prior to calling the set above, the shared linker flags<br>
&gt;             look like this:<br>
&gt;             &gt;<br>
&gt;             &gt;  /STACK:10000000 /machine:X86<br>
&gt;             &gt;<br>
&gt;             &gt; After calling the set above, it looks like this:<br>
&gt;             &gt;<br>
&gt;             &gt;   /STACK:10000000 /machine:X86 ;/NODEFAULTLIB:&quot;LIBC&quot;<br>
&gt;             &gt;<br>
&gt;             &gt; For some reason a semi-colon is being inserted prior to the<br>
&gt;             &gt; /NODEFAULTLIB part. I don&#39;t know why this is happening but<br>
&gt;             visual studio<br>
&gt;             &gt; is complaining about it. Any reason why this is happening?<br>
&gt;             Thanks.<br>
&gt;             &gt;<br>
&gt;<br>
&gt;             That&#39;s how CMake works.<br>
&gt;<br>
&gt;             set(VAR val1 val2 val3)<br>
&gt;<br>
&gt;             defines a *list* where the elements are separated by a<br>
&gt;             semi-colon (;).<br>
&gt;             To prevent that, quote the assignment:<br>
&gt;<br>
&gt;             set(VAR &quot;val1 val2 val3&quot;)<br>
&gt;<br>
&gt;<br>
&gt;             Michael<br>
&gt;<br>
&gt;             --<br>
&gt;<br>
</div></div>&gt;             Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a> &lt;<a href="http://www.kitware.com" target="_blank">http://www.kitware.com</a>&gt;<br>
<div class="HOEnZb"><div class="h5">&gt;<br>
&gt;             Visit other Kitware open-source projects at<br>
&gt;             <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt;             Please keep messages on-topic and check the CMake FAQ at:<br>
&gt;             <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
&gt;<br>
&gt;             Follow this link to subscribe/unsubscribe:<br>
&gt;             <a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br>