Thanks for the info. It's a bit disappointing that it doesn'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?
--------- Robert Dailey On Mon, Dec 12, 2011 at 11:26 PM, Michael Wild <them...@gmail.com> wrote: > It needs to exist **at the end** of the CMakeLists.txt file containing > the target. If you don't want to do that (or can't, as in your case), > you can use the LINK_FLAGS target property instead. > > HTH > > Michael > > On 12/12/2011 11:39 PM, Robert Dailey wrote: > > I have attached a small CMake project that reproduces the issue I'm > > referring to. Please take a look :) > > > > --------- > > Robert Dailey > > > > > > On Mon, Dec 12, 2011 at 4:11 PM, Robert Dailey <rcdai...@gmail.com > > <mailto:rcdai...@gmail.com>> wrote: > > > > I forgot to say that the main issue is that my /NODEFAULTLIB link > > flag isn't showing up in visual studio. > > > > --------- > > Robert Dailey > > > > > > > > On Mon, Dec 12, 2011 at 4:10 PM, Robert Dailey <rcdai...@gmail.com > > <mailto:rcdai...@gmail.com>> wrote: > > > > Another issue... > > > > 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'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): > > > > Enter CMakeLists.txt > > - Call define_project() function (in a separate cmake module) > > - - Call ignore_libs() function > > - - - Set CMAKE_SHARED_LINK_FLAGS with PARENT_SCOPE > > - - Call create_target() function > > - - - Call add_library() command > > Leave CMakeLists.txt > > > > I'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. > > > > --------- > > Robert Dailey > > > > > > > > On Mon, Dec 12, 2011 at 2:20 PM, Michael Wild <them...@gmail.com > > <mailto:them...@gmail.com>> wrote: > > > > On 12/12/2011 09:13 PM, Robert Dailey wrote: > > > On Mon, Dec 12, 2011 at 2:10 PM, David Cole > > <david.c...@kitware.com <mailto:david.c...@kitware.com> > > > <mailto:david.c...@kitware.com > > <mailto:david.c...@kitware.com>>> wrote: > > > > > > Apparently, they are undocumented, but there are also: > > > > > > CMAKE_SHARED_LINKER_FLAGS and > > CMAKE_MODULE_LINKER_FLAGS (and their > > > per-config variants) for SHARED and MODULE library > > targets as well. > > > > > > Use CMAKE_SHARED_LINKER_FLAGS instead. > > > > > > > > > Thanks for the information guys. I'm having a minor > > problem with these > > > variables though. > > > > > > Here is how I use it: > > > > > > set( CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} > > > /NODEFAULTLIB:\"${lib}\" ) > > > > > > Prior to calling the set above, the shared linker flags > > look like this: > > > > > > /STACK:10000000 /machine:X86 > > > > > > After calling the set above, it looks like this: > > > > > > /STACK:10000000 /machine:X86 ;/NODEFAULTLIB:"LIBC" > > > > > > For some reason a semi-colon is being inserted prior to the > > > /NODEFAULTLIB part. I don't know why this is happening but > > visual studio > > > is complaining about it. Any reason why this is happening? > > Thanks. > > > > > > > That's how CMake works. > > > > set(VAR val1 val2 val3) > > > > defines a *list* where the elements are separated by a > > semi-colon (;). > > To prevent that, quote the assignment: > > > > set(VAR "val1 val2 val3") > > > > > > Michael > > > > -- > > > > Powered by www.kitware.com <http://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 > > > > > > > > > >
-- 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