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