Re: [cmake-developers] Generators and Extra Generators

2014-01-09 Thread Alexander Neundorf
On Tuesday 07 January 2014, Stephen Kelly wrote:
> David Cole wrote:
> > There's been a design issue since extra generators were introduced...
> > 
> > The question is: is it possible to resolve it with a better design and
> > still keep the existing functionality?
> 
> Hence this mail :), and my mail to cmake.users about the "Kate Extra
> Generator" being the wrong interface/design.
> 
> I'd like to see cmake generate all the info a UI would need in a simple and
> non-tied-to-a-particular-implementation way. That would be something Qt
> Creator and Kate could use as it would list the targets, the compile lines
> for objects, link targets, link lines etc. 

Actually an IDE may have somewhat different needs.
As long as it uses an existing buildtool (make or ninja), it doesn't actually 
need the commands for linking, and also not necessarily for compiling. (if the 
IDE would execute e.g. the link commands directly instead of calling "make 
foo", then the IDE would need to be a complete buildtool, i.e. with full 
dependency handling between the targets etc.).
It does need information which include dirs and definitions are used, per 
target, probably better per source file, so it can do proper completion etc.
IMO it needs information in which CMakeLists.txt a target has been added, to 
support the user by editing the cmake files.
It needs to know to which target(s) a source file belongs, and vice versa, it 
needs to know the language of each source file (since this can be overridden 
via the LANGUAGE property in cmake).
I'm quite sure IDE developers can think of more they'd like to know.

As I said, it would be really cool if this information could be put complete 
and IDE-independent in a project file. 

Alex
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-09 Thread Alexander Neundorf
On Wednesday 08 January 2014, Stephen Kelly wrote:
> Alexander Neundorf wrote:
> > On Tuesday 07 January 2014, Stephen Kelly wrote:
> >> Is there a design issue here?
> > 
> > I run cmake-gui and select the one I want from a list.
> > What is the problem, the length of the list ?
> 
> More the combinatorial expansion along multiple axes to add a new type
> indicates a 'design smell'.

this combinatorial expansion can be avoided, internally the main generator and 
the extra generator are kept separately, and the long list is basically only 
generated for presenting it to the user and letting him decide what he wants.
This could be presented simply in a different way.
As I said, in cmake-gui in some way split into two widgets, and for the CLI it 
could be split into -G  -X .
This would need changes mainly in cmake::CreateGlobalGenerator() and 
cmake::AddExtraGenerator().

Then it goes down from more or less m*n to m+n.

Alex
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Stephen Kelly
Ben Boeckel wrote:

> On Tue, Jan 07, 2014 at 18:42:37 +0100, Stephen Kelly wrote:
>> Is that all that's needed, do you think?
> 
> Well, it handles the commands required at least. Adding keys to the
> objects for targets and output file(s) would be the next step I'd think
> if IDE developers are amenable to using it. It's simple enough that
> ninja itself could even dump it out.

Lets not think/talk in terms of tying to particular tools.

> I don't know how crazy it should
> get though; you'd be getting pretty close to ninja rules files
> themselves after too much time.

That's not an absolute certainty. I don't think it's likely.

Thanks,

Steve


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Stephen Kelly
Alexander Neundorf wrote:

> On Tuesday 07 January 2014, Stephen Kelly wrote:
>> David Cole wrote:
>> > There's been a design issue since extra generators were introduced...
>> > 
>> > The question is: is it possible to resolve it with a better design and
>> > still keep the existing functionality?
>> 
>> Hence this mail :), and my mail to cmake.users about the "Kate Extra
>> Generator" being the wrong interface/design.
> 
> Sorry about that.
> But it does something useful for me, and for other users of the (existing)
> kate project plugin.
> Since one of the core features of cmake is to create project files for
> IDEs, creating project files for kate doesn't look that wrong to me.

Creating useful files for kate seems reasonable to me too, but as I said 
this 'extra generators' design doesn't seem optimal to that.

>> I'd like to see cmake generate all the info a UI would need in a simple
>> and non-tied-to-a-particular-implementation way. That would be something
>> Qt Creator and
> 
> That would be nice.
> Once this format exists, IDE developers just need to make use of it.

Right, but if that doesn't occur to any of them, it will have to be driven 
by 'us', to avoid 'us' having to deal with the combinatorial explosion of 
generators and extra generators.

>> Kate could use as it would list the targets, the compile lines
>> for objects, link targets, link lines etc.
> 
> Just to avoid misunderstandings: there is currently nothing in kate which
> uses such information, and as far as I know nothing is planned.

Perhaps more interesting to creator then - at least the compilation related 
parts.

Thanks,

Steve.


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Stephen Kelly
Alexander Neundorf wrote:

> On Tuesday 07 January 2014, Stephen Kelly wrote:
>> Is there a design issue here?
> 
> I run cmake-gui and select the one I want from a list.
> What is the problem, the length of the list ?

More the combinatorial expansion along multiple axes to add a new type 
indicates a 'design smell'.

Thanks,

Steve.


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Alexander Neundorf
On Tuesday 07 January 2014, Stephen Kelly wrote:
> David Cole wrote:
> > There's been a design issue since extra generators were introduced...
> > 
> > The question is: is it possible to resolve it with a better design and
> > still keep the existing functionality?
> 
> Hence this mail :), and my mail to cmake.users about the "Kate Extra
> Generator" being the wrong interface/design.

Sorry about that.
But it does something useful for me, and for other users of the (existing) 
kate project plugin.
Since one of the core features of cmake is to create project files for IDEs, 
creating project files for kate doesn't look that wrong to me.

> I'd like to see cmake generate all the info a UI would need in a simple and
> non-tied-to-a-particular-implementation way. That would be something Qt
> Creator and 

That would be nice.
Once this format exists, IDE developers just need to make use of it.

> Kate could use as it would list the targets, the compile lines
> for objects, link targets, link lines etc. 

Just to avoid misunderstandings: there is currently nothing in kate which uses 
such information, and as far as I know nothing is planned.

Alex
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Alexander Neundorf
On Tuesday 07 January 2014, Stephen Kelly wrote:
> Hi,
> 
> With the addition of the Kate Project stuff, we got 4 new generators rather
> than a single option to generate the information needed by Kate in a
> generator independent way, similar to CMAKE_EXPORT_COMPILE_COMMANDS.
> 
>  http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/48412/focu
> s=48471
> 
> The addition of an "Android Makefiles" generator would also require
> 
>  "Kate Project - Android Makefiles"
>  "Eclipse - Android Makefiles"
>  "CodeBlocks - Android Makefiles"
>  "CodeLight - Android Makefiles"
> 
> etc.
> 
> If android decides Ninja is a good idea someday, we get more dimensional
> expansion.
> 
> Is there a design issue here?

I run cmake-gui and select the one I want from a list.
What is the problem, the length of the list ?
Then just split the GUI into two dependent comboboxes.

Alex
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Ben Boeckel
On Tue, Jan 07, 2014 at 18:42:37 +0100, Stephen Kelly wrote:
> Is that all that's needed, do you think?

Well, it handles the commands required at least. Adding keys to the
objects for targets and output file(s) would be the next step I'd think
if IDE developers are amenable to using it. It's simple enough that
ninja itself could even dump it out. I don't know how crazy it should
get though; you'd be getting pretty close to ninja rules files
themselves after too much time.

--Ben
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Stephen Kelly
Ben Boeckel wrote:

> On Tue, Jan 07, 2014 at 17:37:11 +0100, Stephen Kelly wrote:
>> I'd like to see cmake generate all the info a UI would need in a simple
>> and non-tied-to-a-particular-implementation way. That would be something
>> Qt Creator and Kate could use as it would list the targets, the compile
>> lines for objects, link targets, link lines etc. As far as I know,
>> QtCreator uses the CodeBlocks generator because it contains all that
>> relevant information as an xml file.
> 
> Something like this[1]?

Is that all that's needed, do you think?

Thanks,

Steve.


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Ben Boeckel
On Tue, Jan 07, 2014 at 17:37:11 +0100, Stephen Kelly wrote:
> I'd like to see cmake generate all the info a UI would need in a simple and 
> non-tied-to-a-particular-implementation way. That would be something Qt 
> Creator and Kate could use as it would list the targets, the compile lines 
> for objects, link targets, link lines etc. As far as I know, QtCreator uses 
> the CodeBlocks generator because it contains all that relevant information 
> as an xml file.

Something like this[1]?

--Ben

[1]http://clang.llvm.org/docs/JSONCompilationDatabase.html
--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread Stephen Kelly
David Cole wrote:

> There's been a design issue since extra generators were introduced...
> 
> The question is: is it possible to resolve it with a better design and
> still keep the existing functionality?

Hence this mail :), and my mail to cmake.users about the "Kate Extra 
Generator" being the wrong interface/design.

I'd like to see cmake generate all the info a UI would need in a simple and 
non-tied-to-a-particular-implementation way. That would be something Qt 
Creator and Kate could use as it would list the targets, the compile lines 
for objects, link targets, link lines etc. As far as I know, QtCreator uses 
the CodeBlocks generator because it contains all that relevant information 
as an xml file.

It's almost possible to do that with a macro and file(GENERATE), but more 
genex API will be needed for that. I think it would be fine/better to do it 
in C++ implementation though anyway.

Thanks,

Steve.


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Generators and Extra Generators

2014-01-07 Thread David Cole

There's been a design issue since extra generators were introduced...

The question is: is it possible to resolve it with a better design and 
still keep the existing functionality?


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] Generators and Extra Generators

2014-01-07 Thread Stephen Kelly

Hi,

With the addition of the Kate Project stuff, we got 4 new generators rather 
than a single option to generate the information needed by Kate in a 
generator independent way, similar to CMAKE_EXPORT_COMPILE_COMMANDS.

 
http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/48412/focus=48471

The addition of an "Android Makefiles" generator would also require 

 "Kate Project - Android Makefiles"
 "Eclipse - Android Makefiles"
 "CodeBlocks - Android Makefiles"
 "CodeLight - Android Makefiles"

etc.

If android decides Ninja is a good idea someday, we get more dimensional 
expansion.

Is there a design issue here?

Thanks,

Steve.


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers