Hi again and thanks for your answer.
I'll have a look at your included example but it seems more for debugging Cmake 
and finding why it doesn't work, and I don't think I have time for that 
unfortunately.
Otherwise, I'll probably try to make a custom command that uses the MSVC 
lib.exe (or ld or ar on gnu/linux) to assemble the lib in a final step, if 
possible. Otherwise I'll have to script it externally, but that defeats the 
purpose..

Also, I was talking about using ld and the -whole-archive flag, but it's maybe 
more of a job for the archiver than the linker.. I've looked in the cmake doc 
but I only found CMAKE_<LANG>_ARCHIVE_APPEND that I don't know how to use yet.

Thanks again
Armand



From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Philip Lowman
Sent: September 9, 2008 10:43 PM
To: Armand Filippi (Temp)
Cc: cmake@cmake.org
Subject: Re: [CMake] Including object/archive/library in a static lib

On Tue, Sep 9, 2008 at 12:42 PM, Armand Filippi (Temp) <[EMAIL PROTECTED]> 
wrote:
Hi all,

I am trying to _include_ an externally built library B in a static lib A that 
I'm building with Cmake.

For MSVC, I would like it to end up in the Librarian>Additional Dependencies 
(and have its path in the Additional Library Directories). Also, this would add 
some /LIBPATH: and the library names at the end of the linker command.

For Linux ld, the equivalent result would be to have the B library appended to 
the linker command, with the -whole-archive parameter.

Apparently, using the Cmake command: target_link_libraries(<my lib A> <my lib 
B>) with Cmake 2.6.0 patch0 does not produce this result (nothing in the 
additional dependencies field in MSVC)

Is that supported by Cmake ?
I don't think they've added built-in support to do what you want to do in CMake 
because it's not portable everywhere.

With GNU ld on Linux you can simply pass any flags you might need to 
TARGET_LINK_LIBRARIES to grab the libraries you need:
http://www.mail-archive.com/cmake@cmake.org/msg01890.html


I couldn't figure out a way to do what you want to do with CMake's MSVC 
generator.  It looks like this may be a coding oversight in CMake.  A suggested 
fix would be for CMake to allow SET_TARGET_PROPERTIES(... LINK_FLAGS) to work 
on Visual Studio static libraries.  Right now this doesn't appear to work, at 
least with specifying additional ".lib" files to link against.

Here's a test example for this if someone wants to have a look.  I wasn't sure 
that MSVC even supported this use case until I modified the Visual Studio 
project manually and verified that it does work.
--
Philip Lowman
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to