[CMake] xcode project and static library dependencies

Bill Hoffman bill.hoffman at kitware.com
Thu Jan 13 16:57:23 EST 2011


On 1/13/2011 4:49 PM, Nick Kledzik wrote:
> On Jan 13, 2011, at 12:41 PM, Bill Hoffman wrote:
>> This is because Xcode provides no way to order static libraries as
>> far as I can tell, or to repeat them.   Also, no way to depend on a
>> static library or a file directly, forcing the makefile usage.
>> This may have changed, so, if you can so native Xcode projects that
>> can do the following we can change cmake:
>>
>> - have a static library show up more than once on a link line
> This is unnecessary.  Unlike most unix linkers, the Xcode linker
> repeatedly iterators over all archives on the command line.  You
> never need to add the same archive more than once on the command
> line.
>
That was not true when I implemented this the first time.  We have a 
test in CMake that counts on library ordering and it failed.
>
>> - be able to specify the order of static libraries on the link
>> line
> The order that the libraries appear in the PBXFrameworksBuildPhase is
> the order that they are passed to the linker.
>
OK, sounds good...
>
>> - be able to relink an executable when a static library that it
>> depends on is rebuilt.
> This is normal behavior for the Xccde build system.  If one target
> depends on the product of another target, the build system follows
> the chain and builds everything needed for the target requested to be
> built.

If you can get all the CMake tests to pass with these changes, I would 
be very happy to get rid of the extra stuff.  It may have changed, but 
when I first did the implementation, it was required to do it the way it 
is. That said, I have not revisited this stuff since Xcode 1.5, so 
things may have changed for the better.


-Bill


More information about the CMake mailing list