Good point-- a non-power-user would say that the project 'failed'. <div><br></div><div>But I'm kind of leaning towards the idea that if the project cannot be built from default settings, then yes, that's a problem that should be fixed by the program maintainer. If the user starts messing with settings that also causes the build to fail, shouldn't the program maintainer know about that?<br>
<br><div class="gmail_quote">On Tue, Aug 31, 2010 at 2:39 PM, Eric Noulard <span dir="ltr"><<a href="mailto:eric.noulard@gmail.com">eric.noulard@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">2010/8/31 David Cole <<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a>>:<br>
</div><div class="im">> Steps 7 thru 10 on your list may be performed by the command lines:<br>
> cmake --build . --config Release<br>
> cmake --build . --target install --config Release<br>
> (equivalent to the "make; make install" parts of your example command<br>
> line)<br>
> Causing that to happen in delicious GUI form would be simple enough... But<br>
> do enough people want this...?<br>
<br>
</div><div class="im">Speaking for a one-line install (or buid package) command<br>
using CMake would be nice.<br>
<br>
I did craft one small (not bulletproof at all) CMake script<br>
which can be called as<br>
<br>
$ cmake -P CMake-autoinstall.cmake<br>
-- Trying to autoinstall CMake version using<br>
<a href="http://www.cmake.org/files/v2.8/cmake-2.8.2.tar.gz" target="_blank">http://www.cmake.org/files/v2.8/cmake-2.8.2.tar.gz</a> file...<br>
-- Downloading...<br>
-- Already there: nothing to do<br>
-- Unarchiving the file<br>
-- CMake version 2.8.2 has been unarchived in /home/eric/CMake/tmp/cmake-2.8.2.<br>
-- Configuring with CMake...<br>
-- Building with cmake --build ...<br>
-- Create package RPM with CPack...<br>
-- CMake version 2.8.2 has been built in /home/eric/CMake/tmp/cmake-2.8.2.<br>
-- CMake package(s) are:<br>
/home/eric/CMake/tmp/cmake-2.8.2-build/cmake-2.8.2-Linux-x86_64.rpm<br>
<br>
The example file is attached. It does not handle error case very nicely<br>
and should probable put all logs in files instead of var.<br>
<br>
In my case the "autoinstall" file is building an RPM and in my case I don't<br>
want the 3) to 5) steps (default configure option should be enough).<br>
<br>
May be a GUI would help to chose some parameters of the "autoinstall script"<br>
version, CPack generator etc... but I don't think it must be the current<br>
"cmake-gui".<br>
<br>
</div><div class="im">> We've talked about a "build" button in the cmake-gui before, but if errors<br>
> occur, you have to go elsewhere to edit code anyhow.<br>
> If we have a build button, we have to:<br>
> - make sure we handle voluminous output from the build tools<br>
> - provide a way to interrupt a build in progress when the observer can't<br>
> wait any longer...<br>
> It shouldn't be hard, but it's not entirely trivial either. Deliciousness<br>
> never is.<br>
<br>
</div><div class="im">My opinion is that "automagicall one big button (or small script) makes it all"<br>
shouldn't handle error case at all.<br>
<br>
Average user won't go and inspect why it fails.<br>
He would probably just tell the project releaser that he/she did a poor job<br>
and wait for him/her to fix that :-)<br>
<br>
</div><div class="im">> What do others think? Is this a thing you've always wanted, or something<br>
> you've never even wished for...?<br>
<br>
</div><div class="im">One-line install command (or one button)<br>
would be great but I think that if for any reason the automagic process<br>
fails don't try to help the user with that but just point out the error file.<br>
<br>
If it's a "power user" he will go back to current cmake UI.<br>
If it's an average user he may file the error file back to the project releaser.<br>
<br>
--<br>
Erk<br>
</div>Membre de l'April - « promouvoir et défendre le logiciel libre » -<br>
<a href="http://www.april.org" target="_blank">http://www.april.org</a><br>
</blockquote></div><br></div>