[CMake] xcode project and static library dependencies

Brad King brad.king at kitware.com
Tue Jan 18 14:40:56 EST 2011


On 1/18/2011 2:12 PM, Nick Kledzik wrote:
> When I use cmake to create a Makefile, the resulting main executable
> is placed in the build directory tree next to the Makefile.

This is where CMake puts files in single-configuration generators.

> When I use cmake to create a xcode project, the resulting main
> executable is placed  in a subdirectory named Debug of the build
> directory tree.

This is where CMake puts files in multi-configuration generators.

Both of the above are expected default behaviors.  Both can be
changed by CMake properties like RUNTIME_OUTPUT_DIRECTORY and
its per-configuration equivalent.  All CMake generators must
honor these.

> None of these locations are the "native" location
> where Xcode would put a build result.

Xcode has settings like CONFIGURATION_BUILD_DIR to control
where the build outputs go.  This already works.  Is there
some reason your changes cannot use these?

My understanding is that the main problem with the current generator
is all the extra build phases and OTHER_LDFLAGS stuff used to deal
with link line ordering and static libraries.  This is what Bill
summarized:

On 1/13/2011 3:41 PM, Bill Hoffman wrote:
> - have a static library show up more than once on a link line
> - be able to specify the order of static libraries on the link line
> - be able to relink and executable when a static library that it
depends on is rebuilt.

I'm more interested in a solution to implementation issues like these
than in interface details like where output files go.

-Brad


More information about the CMake mailing list