On Tue, Jan 18, 2011 at 2:30 PM, Nick Kledzik <kled...@apple.com> wrote:

>
> On Jan 18, 2011, at 11:23 AM, David Cole wrote:
>
> >
>> > 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.
>>
>>
>> Take for example a simple test case that just builds one source file into
>> an executable via"
>>  ADD_EXECUTABLE(main main.c)
>> When I use cmake to create a Makefile, the resulting main executable is
>> placed in the build directory tree next to the Makefile.
>> 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.
>>
>> The method cmCoreTryCompile::FindOutputFile() seems to know about this
>> because it looks for executables in the build directory then in <build
>> directory>/Debug and <build directory>/Release.
>>
>> None of these locations are the "native" location where Xcode would put a
>> build result.  So, I need to create xcode projects that place/copy the
>> resulting executables somewhere that cmake universe expects.
>>
>> Now I am wondering if I should add a copy-files-phase in the executable
>> target to copy the resulting binary to the build directory.  That would make
>> xcode output be like Makefile output.
>>
>> -Nick
>>
>>
>>
> Where does the Xcode equivalent of "add_executable(main main.c)" naturally
> go?
>
>
> It depends on some global xcode settings.  Some users have a one location
> in which all projects put their final projects.  Some users have a
> build/Debug and build/Release directory next to the xcode project file.
>
> That is why I'm thinking that if cmake's model is to have the final
> executable put into cmakes build directory, that I should just let xcode
> build it where the user wants, then copy it to where cmake wants.  That way
> both models are happy.
>
> -Nick
>
>
>
>
>
CMake, unless told otherwise, should produce an identical build tree to the
native tool when possible.

I think the way we do it now (by default) is a direct reflection of the fact
that Xcode used to do it that way "back in the day"... when the Xcode
generator was first produced. I don't think changing the default value of
the output location is a problem for people.

But we do have to honor EXECUTABLE_OUTPUT_PATH and the new
CMAKE_RUNTIME_OUTPUT_DIRECTORY and all of the variants thereof that people
might be setting in their CMakeLists files.
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to