[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cmake
Subject:    Re: [CMake] Why simple `cmake` does not launch default generator on current directory?
From:       Eric Noulard <eric.noulard () gmail ! com>
Date:       2014-06-12 11:52:34
Message-ID: CAPASGLrJNZcR-KDBxCnTUvbtn4QguagNg5yNDU-jkHPxFhCyNQ () mail ! gmail ! com
[Download RAW message or body]

2014-06-12 12:18 GMT+02:00 Adam Strzelecki <ono@java.pl>:
> > Because that would create an in-source build, and you almost never want that.
> > One wants to build out of source. Sadly CMake will stumble if you try to
> > create an out-of-source build from a directory that is an in-source build, so
> > not having that default of "cmake ." actually saves everyone a lot of trouble.
> 
> It is clear to me that out-of-source builds are better for many reasons, but I \
> don't see how `cmake` dumping 3 pages of usage not mentioning anything about that \
> lets user to understand that.

The appropriate info is at the top:

Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>


that said the invocation of cmake without any argument may generated
smaller and more readable message.
May be you can propose a patch for that.

> 
> Moreover there is a lack of consequence whether path argument is obligatory or not, \
> because `cmake -GNinja` or `cmake -DDUMMY=1` works in source directory without \
> needing to specify extra dot. 
> In-source builds may be convenient too if you're working remotely via ssh in git \
> managed folder, which I do a lot. This saves you lot of `cd` typing and it is \
> quicker to do `git clean ...` than move forth and back to build folder.

CMake respect his users so backward compatibility is very important.
Forbidding in-source build should be user controllable:
http://public.kitware.com/Bug/view.php?id=6672

> 
> If CMake is supposed to be meta-`make`, why it doesn't behave like `make`? If it \
> suppose to help understand what is going on it should output rather: 
> ===
> CMake Warning: Current directory is source directory. Out-of-source builds are \
> recommended. Specify `cmake .` to skip this warning or create separate build \
> folder. ===
> 
> But I am really against that, since command line user shouldn't be treated like \
> stupid user. Anyway for beginners GUI is preferred way to go.

I think CMake is made for developers and not for "stupid" user,
developer should at least read the doc of the tool they use.

That said if average user is to be supported then developper of
project using CMake and expecting their user to use CMake
should probably provide a script which provide "simple dummy usage",
this script could invoke CMake with appropriate
default argument value.

Regards,
Eric

> 
> Regards,
> --
> Adam
> --
> 
> 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



-- 
Erk
L'élection n'est pas la démocratie -- http://www.le-message.org
-- 

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic