Alexander Neundorf wrote:
Hi,

it seems there's a problem with EXPORT_LIBRARY_DEPENDENCIES(). If there is a 
library where both the debug and the optimized version are available, both end 
up in the dependency lib, but not separated by the debug/optimized keywords.
A testcase is attached. At first build and install demo/dbgtest/, and after 
that run cmake on demo/dbgtestapp/, then have a look at the file blub.deps.
I think if you have something like
set(SOMELIB optimized somelib debug somelibd)
target_link_libraries(mycoollib ${SOMELIB})
export_library_dependencies(depsfile)

then it should be either
SET(mycoollib_LIB_DEPENDS "optimized;somelib;debug;somelibd")
or SET(mycoollib_LIB_DEPENDS "somelib") or SET(mycoollib_LIB_DEPENDS "somelibd") depending on which library was actually used when building.

This affects building KDE on windows, since there both versions of QtCore are 
found and linked, and so there will be random crashes due to this from what I 
heard.

I just tried your example in VS 2005 and it seemed to work. When I built release
it said it could not find dbgtest.lib:

1>------ Build started: Project: blubblub, Configuration: Release Win32 ------
1>Compiling...
1>dbglib.c
1>Linking...
1>LINK : fatal error LNK1181: cannot open input file 'dbgtest.lib'

But if I build Debug:  it fails to find dbgtestd.lib.


1>------ Build started: Project: blubblub, Configuration: Debug Win32 ------
1>Linking...
1>LINK : fatal error LNK1104: cannot open file 'dbgtestd.lib'
1>Build log was saved at "file://c:\hoffman\My Builds\CMakeTests\package\demo\dbgapptest\b\blubblub.dir\Debug\BuildLog.htm"
1>blubblub - 1 error(s), 0 warning(s)

$ less blub.deps
SET(blubblub_LIB_DEPENDS "dbgtest;dbgtestd;")
SET(dbgtest_LINK_TYPE "optimized")
SET(dbgtestd_LINK_TYPE "debug")

library_LINK_TYPE is looked up before a library is output.

So, the example seems to be working ok...

-Bill



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

Reply via email to