<div class="gmail_quote">On Thu, Aug 23, 2012 at 2:24 PM, Robert Dailey <span dir="ltr"><<a href="mailto:rcdailey.lists@gmail.com" target="_blank">rcdailey.lists@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="HOEnZb"><div class="h5">On Thu, Aug 23, 2012 at 1:03 PM, David Cole <<a href="mailto:david.cole@kitware.com">david.cole@kitware.com</a>> wrote:<br>
> On Thu, Aug 23, 2012 at 11:50 AM, Robert Dailey <<a href="mailto:rcdailey.lists@gmail.com">rcdailey.lists@gmail.com</a>><br>
> wrote:<br>
>><br>
>> On Thu, Aug 23, 2012 at 10:48 AM, Robert Dailey<br>
>> <<a href="mailto:rcdailey.lists@gmail.com">rcdailey.lists@gmail.com</a>> wrote:<br>
>> > On Thu, Aug 23, 2012 at 10:43 AM, John Drescher <<a href="mailto:drescherjm@gmail.com">drescherjm@gmail.com</a>><br>
>> > wrote:<br>
>> >>> Is the separation between configuration & generation really necessary<br>
>> >>> for cmake-gui? I ask because several of my co-workers are confused<br>
>> >>> between the differences in the two, even though I explain it.<br>
>> >>><br>
>> >>> Honestly there isn't really a reason that I can think of to do a<br>
>> >>> configure without a generate, unless you're testing the integrity of<br>
>> >>> your CMake script changes maybe, but even then, if its broken<br>
>> >>> generation won't take place.<br>
>> >>><br>
>> >>> The command line program does not separate the two, so I simply think<br>
>> >>> cmake-gui should eliminate the configure button, and simply have a<br>
>> >>> generate button. Does this seem fair? Is there a reason why they are<br>
>> >>> separated?<br>
>> >><br>
>> >> I can think of one use case that I use that the separation is a good<br>
>> >> thing. What about when you have options and variables that are<br>
>> >> conditional depending on other CMake variables so that setting the<br>
>> >> variables / options may take more than 1 configure.<br>
>> ><br>
>> > Well, think of this from the perspective of Linux users. They don't<br>
>> > get to configure seperately, so only Windows users get special<br>
>> > treatment here (and maybe Mac too, since it's using Qt). Basically, if<br>
>> > two configures are necessary, you simply just hit the "generate"<br>
>> > button twice, and the wait may be slightly longer because of the<br>
>> > generation. However, usually it's the configure step that takes 99% of<br>
>> > the time and generation is quick since it's just spitting out files to<br>
>> > disk it seems.<br>
>> ><br>
>> > I would also argue that any CMake project should have appropriate<br>
>> > defaults OR logic to calculate the defaults for you, so that even if a<br>
>> > user decides to not modify any cache variables, generation should<br>
>> > always succeed. CMake can't assume that 2 passes will be necessary<br>
>> > (and it really shouldn't).<br>
>><br>
>> Oh and also, if two configures are necessary (say that, a library or<br>
>> package can't be found intelligently), then the configuration step<br>
>> would fail and be interrupted, so you get a chance to correct any<br>
>> errors and adjust appropriate cache variables. So, in this case it<br>
>> doesn't really matter if you've hit configure or generate.<br>
>> --<br>
>><br>
>> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
>><br>
>> Visit other Kitware open-source projects at<br>
>> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>><br>
>> Please keep messages on-topic and check the CMake FAQ at:<br>
>> <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
>><br>
>> Follow this link to subscribe/unsubscribe:<br>
>> <a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
><br>
><br>
><br>
> Iterative configuring through the gui is useful for some people/projects,<br>
> and generating is time-consuming too on some larger projects with some<br>
> generators.<br>
><br>
> So we probably won't be eliminating the Configure button anytime soon. On<br>
> the other hand, you can just click "Generate" if that's what you want and<br>
> ignore the configure button altogether nowadays. "Generate" will<br>
> configure-first if necessary, and then generate.<br>
><br>
> Here are some related issues indicating some people want the exact opposite<br>
> (i.e., separate configure and generate steps for the command line cmake)<br>
> <a href="http://public.kitware.com/Bug/view.php?id=13359" target="_blank">http://public.kitware.com/Bug/view.php?id=13359</a><br>
><br>
> And a request for a "build" button in cmake-gui:<br>
> <a href="http://public.kitware.com/Bug/view.php?id=8260" target="_blank">http://public.kitware.com/Bug/view.php?id=8260</a><br>
<br>
</div></div>I definitely hear your point, and I realize not everyone has my<br>
specific workflow, but usually I only hit configure to see if there<br>
are any failures that do NOT stop the generation process (such as<br>
status messages that print in red, but do not indicate an actual<br>
error). In that case, I do not want generation to proceed but instead<br>
I want to address the alert / error in the logs. However, if<br>
configuration succeeds I only end up hitting generate right after that<br>
anyway.<br>
<br>
I am only bringing this up since I was surprised to see how my team<br>
struggled to understand the differences between the two, and when to<br>
use one or the other. Most of the time I just say "Ignore the<br>
configure button, just always hit generate". If it wasn't there, it<br>
would be more clear to people that are new to CMake. I'm trying to<br>
migrate my company to CMake, so I thought this might be valuable<br>
feedback, as it was one of the surprising little things we got hung up<br>
on that you just never really think about.<br>
</blockquote></div><div><br></div><br><div>We hear you, too. But there are lots of people who like the separate buttons, so we're keeping them.</div><div><br></div>