[CMake] xcode project and static library dependencies

David Cole david.cole at kitware.com
Tue Jan 18 09:16:47 EST 2011


Clarification: I was referring to intermediate build product files, not
final libraries and executables. For the most part, nobody should care where
their intermediate files are as long as everything works.

Sorry for the mis-communication.


On Tue, Jan 18, 2011 at 8:30 AM, Bill Hoffman <bill.hoffman at kitware.com>wrote:

> >> I have changes that cause cmake to produce an Xcode project in which the
> >> targets do not have the extra phases, and the dependencies are set up
> such
> >> that incremental builds work efficiently!
> >>
> >> But I'm having some impedance mismatches between where Xcode want the
> >> build results to be and where cmake wants them.  Xcode (like many
> makefiles)
> >> has the concept of a normal build and an "install" build.  But when
> cmake
> >> runs it builds some test programs using the xcodebuild command line, but
> >> does not specify the "install" action but then expects to find the
> resulting
> >> executable in the install location.
> >>
> >> I'm sure I could change TryCompileCode() to add "install" to the
> >> xcodebuild line, but it seems like lots of other cmake scripts will have
> the
> >> same expectations.  I playing with trying to get Xcode to always do an
> >> "install".  I tried creating xcode projects with the initial (not
> install)
> >> locations being where cmake wants them, but xcode seems to not do the
> >> internal dependency analysis properly when the intermediate results are
> not
> >> within BUILD_PRODUCTS_DIR.
> >>
> >> What is the cmake model for where the results of a build go?
> >
> > Putting the results where the native tool expects them is fine. CMake
> makes
> > no guarantees about where build products go. If a native tool has no
> > expectations, we try to hide build results underneath the "CMakeFiles/"
> > directories in the build tree to avoid cluttering a developer's view of
> the
> > build tree with stuff they mostly don't need to see...
> > I don't think there are any hard requirements w.r.t. build products
> > locations. Although where libraries and executables end up is important
> for
> > the CMake generated install rules to work.
> > Feel free to change things around experimentally if that makes it easy to
> > work with newer Xcode versions. The test suite will very likely tell us
> if
> > things have gone awry.
> >
>
> That is not entirely true....
>
> Things like EXECUTABLE_OUTPUT_PATH and target location properties have
> to work without an extra install step. What do you mean CMake expects
> to find things in install locations?  CMake does need to be able to
> find executables after the build is run.  It also needs to be able to
> place them via location properties.
>
> -Bill
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110118/f6a2a875/attachment.htm>


More information about the CMake mailing list