Clemens Arth wrote:
Hi,
-------- Original-Nachricht --------
Datum: Wed, 10 Dec 2008 13:45:05 +0100
Von: Hendrik Sattler <[EMAIL PROTECTED]>
An: [email protected]
Betreff: Re: [CMake] strange behaviour of TARGET_LINK_LIBRARIES debug/optimized 
on MacOS

Am Wednesday 10 December 2008 13:23:04 schrieb Clemens Arth:
Clemens Arth wrote:
before I submit a bug report I wanted to ask you about some strange
behaviour of TARGET_LINK_LIBRARIES on MacOS 10.5 and CMake 2.6-2;

A library is created for debug and release, named libFooD.dylib and
libFoo.dylib respectively. This works well. Then I create another
library in the following way:

link_directories(${FooDir}/build/OSX)
add_library(Bar ${BarSources})
set_target_properties(Bar PROPERTIES
 DEBUG_OUTPUT_NAME BarD
 RELEASE_OUTPUT_NAME Bar
)
You make your life hard, see property DEBUG_POSTFIX


well, that DEBUG_POSTFIX will make surely make things more readable....

It is necessary to link foo to bar, which I thought should with either
of the following ways:

TARGET_LINK_LIBRARIES(Bar Foo)

As expected, this only works for Release and not for Debug due to the
appended "D" for the debug library. Changing Foo to FooD works only
for debug, not for release.
However that's the expected behaviour, but then I've tried the
following:
TARGET_LINK_LIBRARIES(Bar debug FooD optimized Foo)
Is Foo created using add_library()?

yes it is built as a shared lib but in another project, so I have to include the output location in LINK_DIRECTORIES...

Well, maybe previously I did not describe the problem in a good way. I played around a bit and now it works but for one library only. If I use only one library (Foo and FooD respectively) to link to Bar (as indicated above) it works; if I use two libraries and do it like that,

TARGET_LINK_LIBRARIES(Toe debug BarD FooD optimized Bar Foo)

it does not work, giving me the errors already described above. BUT! If I do it like that

TARGET_LINK_LIBRARIES(Toe debug BarD debug FooD optimized Bar optimized Foo)

it works - I'm pretty sure this is not the usual way to do it. Whatever I tried, using quotation marks, colons or semicolons to indicate a list of libraries does not work...



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

Reply via email to