Unfortunately this does not work. It seems that CMake generates all
libraries defined in one CMakeLists.txt with the setting of
CMAKE_SHARED_LINKER_FLAGS at the end of the file.
This causes this setting to be applied to all libraries in the
CMakeLists.txt. As I have 4 libraries in this one CMakeLists.txt, this
doesn't help much.

I tried to do something like the following:
SET (CMAKE_SHARED_LINKER_FLAGS "${ORIG_SHARED_LINKER_FLAGS}")
ADD_LIBRARY (FortranInterface ${OBJS})
SET (CMAKE_SHARED_LINKER_FLAGS "${MODIFIED_SHARED_LINKER_FLAGS}")
but the FortranInterface library gets built with
MODIFIED_SHARED_LINKER_FLAGS in effect.

I would suggest to change the order of items in the build rules for a
future CMake release, such that it's possible to override general flags
with a target specific property. Today the link
rules look as follows:
SET(CMAKE_CXX_CREATE_SHARED_LIBRARY "<CMAKE_CXX_COMPILER> ...
<LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> ....")
>From my point of view it would be better to put LINK_FLAGS to the end of
the list (not only for shared libraries, but in general).

Regards,

Martin

David Cole wrote:
> Maybe save and restore the CMAKE_SHARED_LINKER_FLAGS around your reset
> of it in the sub-CMakeLists.txt...?
>
>
> On Wed, Sep 3, 2008 at 10:41 AM, Martin Apel <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     Hi,
>
>     I have defined the following in a top-level CMakeLists.txt:
>      SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
>     -Wl,--unresolved-symbols=ignore-in-shared-libs")
>
>     Now I'd like to reset this for one specific library in a subdirectory
>     (in a separate CMakeLists.txt added with ADD_SUBDIRECTORY to the main
>     CMakeLists.txt). I tried to use
>      SET_TARGET_PROPERTIES (FortranInterface PROPERTIES LINK_FLAGS
>     -Wl,--unresolved-symbols=ignore-in-object-files")
>     which reverses the effect of "ignore-in-shared-libs".
>     Unfortunately the
>     linker rule contains the LINK_FLAGS before
>     CMAKE_SHARED_LINKER_FLAGS, so
>     this cannot be used to override the setting. I have also tried
>     resetting
>     CMAKE_SHARED_LINKER_FLAGS in the sub-CMakeLists.txt, but then it
>     applies
>     to all other
>     libraries handled in this CMakeLists.txt as well.
>
>     Any ideas, how I can solve this problem?
>
>     Regards,
>
>     Martin
>
>     ____________
>     Virus checked by G DATA AntiVirus
>     Version: AVF 19.21 from 03.09.2008
>
>
>     _______________________________________________
>     CMake mailing list
>     [email protected] <mailto:[email protected]>
>     http://www.cmake.org/mailman/listinfo/cmake
>
>


-- 

Martin Apel                                     Tel:     0049 8153 9288-47
Software Architect                              E-Mail:  [EMAIL PROTECTED]

INTEC GmbH                                      Tel:     0049 8153 9288-0
Argelsrieder Feld 13                            Fax:     0049 8153 9288-11
82234 Wessling                                  E-Mail:  [EMAIL PROTECTED]
Germany                                         URL:     http://www.simpack.com

____________
Virus checked by G DATA AntiVirus
Version: AVF 19.22 from 03.09.2008


_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to