<div dir="ltr">ADD_SUBDIRECTORY is the "right" thing to be using. SUBDIRS is deprecated, but they process things subtly differently, so I just wanted to rule out that you might be encountering a "SUBDIRS side effect"...<div>
<br></div><div>You've ruled it out.<br><br></div><div>Could you re-organize such that libraries with different flags are in different CMakeLists files?</div><div><br></div><div><br><div class="gmail_quote">On Mon, Sep 8, 2008 at 3:02 AM, Martin Apel <span dir="ltr"><<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I am using ADD_SUBDIRECTORY. I did'nt know, that anything like SUBDIRS<br>
exists and haven't found anything in the documentation about it.<br>
<br>
Martin<br>
<div class="Ih2E3d"><br>
<br>
David Cole wrote:<br>
> Are you using SUBDIRS or ADD_SUBDIRECTORY in your project...?<br>
><br>
><br>
> On Thu, Sep 4, 2008 at 2:42 AM, Martin Apel <<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a><br>
</div><div><div></div><div class="Wj3C7c">> <mailto:<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a>>> wrote:<br>
><br>
> Unfortunately this does not work. It seems that CMake generates all<br>
> libraries defined in one CMakeLists.txt with the setting of<br>
> CMAKE_SHARED_LINKER_FLAGS at the end of the file.<br>
> This causes this setting to be applied to all libraries in the<br>
> CMakeLists.txt. As I have 4 libraries in this one CMakeLists.txt, this<br>
> doesn't help much.<br>
><br>
> I tried to do something like the following:<br>
> SET (CMAKE_SHARED_LINKER_FLAGS "${ORIG_SHARED_LINKER_FLAGS}")<br>
> ADD_LIBRARY (FortranInterface ${OBJS})<br>
> SET (CMAKE_SHARED_LINKER_FLAGS "${MODIFIED_SHARED_LINKER_FLAGS}")<br>
> but the FortranInterface library gets built with<br>
> MODIFIED_SHARED_LINKER_FLAGS in effect.<br>
><br>
> I would suggest to change the order of items in the build rules for a<br>
> future CMake release, such that it's possible to override general<br>
> flags<br>
> with a target specific property. Today the link<br>
> rules look as follows:<br>
> SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ...<br>
> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> ....")<br>
> >From my point of view it would be better to put LINK_FLAGS to the<br>
> end of<br>
> the list (not only for shared libraries, but in general).<br>
><br>
> Regards,<br>
><br>
> Martin<br>
><br>
> David Cole wrote:<br>
> > Maybe save and restore the CMAKE_SHARED_LINKER_FLAGS around your<br>
> reset<br>
> > of it in the sub-CMakeLists.txt...?<br>
> ><br>
> ><br>
> > On Wed, Sep 3, 2008 at 10:41 AM, Martin Apel<br>
> <<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a> <mailto:<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a>><br>
</div></div>> > <mailto:<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a> <mailto:<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a>>>><br>
<div><div></div><div class="Wj3C7c">> wrote:<br>
> ><br>
> > Hi,<br>
> ><br>
> > I have defined the following in a top-level CMakeLists.txt:<br>
> > SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}<br>
> > -Wl,--unresolved-symbols=ignore-in-shared-libs")<br>
> ><br>
> > Now I'd like to reset this for one specific library in a<br>
> subdirectory<br>
> > (in a separate CMakeLists.txt added with ADD_SUBDIRECTORY to<br>
> the main<br>
> > CMakeLists.txt). I tried to use<br>
> > SET_TARGET_PROPERTIES (FortranInterface PROPERTIES LINK_FLAGS<br>
> > -Wl,--unresolved-symbols=ignore-in-object-files")<br>
> > which reverses the effect of "ignore-in-shared-libs".<br>
> > Unfortunately the<br>
> > linker rule contains the LINK_FLAGS before<br>
> > CMAKE_SHARED_LINKER_FLAGS, so<br>
> > this cannot be used to override the setting. I have also tried<br>
> > resetting<br>
> > CMAKE_SHARED_LINKER_FLAGS in the sub-CMakeLists.txt, but then it<br>
> > applies<br>
> > to all other<br>
> > libraries handled in this CMakeLists.txt as well.<br>
> ><br>
> > Any ideas, how I can solve this problem?<br>
> ><br>
> > Regards,<br>
> ><br>
> > Martin<br>
> ><br>
> > ____________<br>
> > Virus checked by G DATA AntiVirus<br>
> > Version: AVF 19.21 from 03.09.2008<br>
> ><br>
> ><br>
> > _______________________________________________<br>
> > CMake mailing list<br>
> > <a href="mailto:CMake@cmake.org">CMake@cmake.org</a> <mailto:<a href="mailto:CMake@cmake.org">CMake@cmake.org</a>><br>
</div></div>> <mailto:<a href="mailto:CMake@cmake.org">CMake@cmake.org</a> <mailto:<a href="mailto:CMake@cmake.org">CMake@cmake.org</a>>><br>
<div class="Ih2E3d">> > <a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
> ><br>
> ><br>
><br>
><br>
> --<br>
><br>
> Martin Apel Tel: 0049 8153<br>
> 9288-47<br>
> Software Architect E-Mail:<br>
</div>> <a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a> <mailto:<a href="mailto:martin.apel@simpack.de">martin.apel@simpack.de</a>><br>
<div class="Ih2E3d">><br>
> INTEC GmbH Tel: 0049 8153<br>
> 9288-0<br>
> Argelsrieder Feld 13 Fax: 0049 8153<br>
> 9288-11<br>
> 82234 Wessling E-Mail:<br>
</div>> <a href="mailto:intec@simpack.de">intec@simpack.de</a> <mailto:<a href="mailto:intec@simpack.de">intec@simpack.de</a>><br>
<div class="Ih2E3d">> Germany URL:<br>
> <a href="http://www.simpack.com" target="_blank">http://www.simpack.com</a><br>
><br>
> ____________<br>
> Virus checked by G DATA AntiVirus<br>
> Version: AVF 19.22 from 03.09.2008<br>
><br>
><br>
><br>
<br>
<br>
</div><div class="Ih2E3d">____________<br>
Virus checked by G DATA AntiVirus<br>
</div>Version: AVF 19.27 from 07.09.2008<br>
<br>
<br>
</blockquote></div><br></div></div>