On Tue, Sep 3, 2013 at 2:33 PM, Matthew Woehlke <matthew.woeh...@kitware.com
> wrote:

> On 2013-09-03 13:21, Felipe Menezes Machado wrote:
>
>> I'm having trouble understanding this behavior: what happens if the
>> directory of the executable doesn't exist?
>>
>> I created a minimum example CMakeLists.txt (where foo.cpp is just a hello
>> world):
>>
>> add_executable(test/test.bin foo.cpp)
>>
>> If the "test" directory doesn't exist, should the build system create it?
>>
>
> Well, ninja seems to think so :-).
>
>
>  Does that depend on the build system?
>>
>
> Yes; ninja has a feature where it creates any non-existing directories
> that are used by any outputs. At least make does not have a similar
> feature. I don't know about other generators (e.g. xcode, msvc).
>
>
>  I tested with make, it gives an error when executing "ld":
>>
>> /usr/bin/ld: cannot open output file test/test.bin: No such file or
>> directory
>>
>> The command that generates the executable and gives the error is (from
>> "make VERBOSE=1"):
>>
>> /usr/bin/c++       CMakeFiles/test/test.bin.dir/**foo.cpp.o  -o
>> test/test.bin
>> -rdynamic
>>
>> On the other hand, when I tested it with Ninja, it created the directory
>> and finished without errors.
>>
>
> Interesting question. I suppose CMake could be taught to generate make
> rules to emulate ninja's behavior.
>
> Whether or not such a thing should be done is an interesting question.
> (Especially as it probably should be done for all generators, it at all.)
>
>

It would at least be a very interesting optional feature. Like something
you specify in your CMakeLists.txt file, that every output directory should
be created.

-- 
[]s

Relax, it's only ONES and ZEROS!!!!

Felipe Menezes Machado
Mestre em Ciência da Computação - DCC - UFMG
--

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Reply via email to