Hello,
I've been searching the web for some time (including these lists), and I'm sorry if I've missed it, but is there any feature (now in Geany, in a plugin, planned, or otherwise) that allows Geany to automatically make makefiles (this would be for projects)? This feature was in Dev-C++, my former favourite IDE, and was really handy because managing makefiles for large projects that have special requirements and quite some files can be cumbersome I imagine.
Since Geany doesn't attempt to specifically target one programming language, I would estimate that this kind of functionality is not in the core package, has someone perhaps made a plugin out of this once? And if not, would it be possible to create it? (either myself when I get some time or someone else).
Kind regards, Nicolas
P.S.: Geany for projects is now not very useful for me, because I haven't learned makefiles yet, but for all other things it's a superb IDE! P.P.S: Also, would it be possible to create a plugin that enforeces "strong" projects? Because the current Geany version is extremely weak, it sounds like a session to me (as I believe it has been described by one of the devs). Note that I don't want to see Geany turn into the next Eclipse (you'd have to put in some serious effort to be as slow as that, though), but not having basic project support is just an excercise in frustration to me.
Nicolas Hillegeer wrote:
I've been searching the web for some time (including these lists), and I'm sorry if I've missed it, but is there any feature (now in Geany, in a plugin, planned, or otherwise) that allows Geany to automatically make makefiles (this would be for projects)? This feature was in Dev-C++, my former favourite IDE, and was really handy because managing makefiles for large projects that have special requirements and quite some files can be cumbersome I imagine.
Hmm, I understand ... modern IDE spoils developers :-) I really like to manage these by hand too, as it provides good insight so I like to have a tool that provide readable make files (cmake), and respect user defined content too.
Since Geany doesn't attempt to specifically target one programming language, I would estimate that this kind of functionality is not in the core package, has someone perhaps made a plugin out of this once?
I was working on a cmake plugin, but some other projects have got more attention at the moment (this is a bit daytime work related :-)). But it is certainly possible, and I miss it too and I really hope I will have time for this geany plugin in the near future.
/BL
On Thu, 28 May 2009 10:49:52 +0200, Nicolas wrote:
Hello,
I've been searching the web for some time (including these lists), and I'm sorry if I've missed it, but is there any feature (now in Geany, in a plugin, planned, or otherwise) that allows Geany to automatically make makefiles (this would be for projects)? This feature was in Dev-C++, my former favourite IDE, and was really handy because managing makefiles for large projects that have special requirements and quite some files can be cumbersome I imagine.
Since Geany doesn't attempt to specifically target one programming language, I would estimate that this kind of functionality is not in the core package, has someone perhaps made a plugin out of this once? And if not, would it be possible to create it? (either myself when I get some time or someone else).
I don't think we need this in Geany's core but a Makefile generator would be ok as a plugin. But as usual, it needs to be written, as Bo mentioned he maybe creates something for cmake. My suggestion is to have a look at existing Makefile generators or other (easy) build systems which take the work from you. E.g. cmake or waf or scons are relatively easy to get something done quickly, so you are able to compile your code without spending hours of getting it compiled. There are many more other build systems, Makefile generators and alike. Just have a look.
IDE! P.P.S: Also, would it be possible to create a plugin that enforeces "strong" projects? Because the current Geany version is extremely weak, it sounds like a session to me (as I believe it has
This is by design. Geany's project management is more than just session saving, it affects also the build system (currently for running Make commands in the project's base directory and an alternative Run command, this will be improved in the future). It also allows you to choose different indentation settings and a few things more.
Geany turn into the next Eclipse (you'd have to put in some serious effort to be as slow as that, though), but not having basic project
Lol.
Regards, Enrico
I'd be all for the plugin, but unfortunately my rusty programming skills (currently dusting off the rust though), make this one out of my league, but would love to hear of any developments in this area. I would be a most eager student :-)
Enrico Tröger wrote:
On Thu, 28 May 2009 10:49:52 +0200, Nicolas wrote:
Hello,
I've been searching the web for some time (including these lists), and I'm sorry if I've missed it, but is there any feature (now in Geany, in a plugin, planned, or otherwise) that allows Geany to automatically make makefiles (this would be for projects)? This feature was in Dev-C++, my former favourite IDE, and was really handy because managing makefiles for large projects that have special requirements and quite some files can be cumbersome I imagine.
Since Geany doesn't attempt to specifically target one programming language, I would estimate that this kind of functionality is not in the core package, has someone perhaps made a plugin out of this once? And if not, would it be possible to create it? (either myself when I get some time or someone else).
I don't think we need this in Geany's core but a Makefile generator would be ok as a plugin. But as usual, it needs to be written, as Bo mentioned he maybe creates something for cmake. My suggestion is to have a look at existing Makefile generators or other (easy) build systems which take the work from you. E.g. cmake or waf or scons are relatively easy to get something done quickly, so you are able to compile your code without spending hours of getting it compiled. There are many more other build systems, Makefile generators and alike. Just have a look.
IDE! P.P.S: Also, would it be possible to create a plugin that enforeces "strong" projects? Because the current Geany version is extremely weak, it sounds like a session to me (as I believe it has
This is by design. Geany's project management is more than just session saving, it affects also the build system (currently for running Make commands in the project's base directory and an alternative Run command, this will be improved in the future). It also allows you to choose different indentation settings and a few things more.
Geany turn into the next Eclipse (you'd have to put in some serious effort to be as slow as that, though), but not having basic project
Lol.
Regards, Enrico
Geany mailing list Geany@uvena.de http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
Hi Nicolas,
On Thu, May 28, 2009 at 18:49, Nicolas Hillegeer nicolashillegeer@gmail.com wrote:
I've been searching the web for some time (including these lists), and I'm sorry if I've missed it, but is there any feature?
I haven't been following this thread much but surely it would be daft to re-invent the wheel inside geany for this when there is already cmake, genmake, and of course my favourite automake/autoconf the venerable old dinosaurs that they are. Surely such a thing in geany would just call an external script (of some description, perl? python? bash?) that created the Makefile.am and configure.ac and then called the appropriate things.
ie: (replace all the things in <>)
For Makefile.am:
----- AUTOMAKE_OPTIONS = check-news ACLOCAL_AMFLAGS = -I m4
bin_PROGRAMS = <program_name> dist_man1_MANS = <man pages>
<program_name>_SOURCES = <headers.h sourcefiles.c sourcefiles.cxx> -----
for configure.ac
---- # Require autoconf 2.57 or newer. AC_PREREQ([2.57])
AC_INIT([<program_name>],[<version>],[<username>]) AC_CONFIG_SRCDIR([<first source file.c>])
AM_INIT_AUTOMAKE
# The argument is the name of the generated header file. # It is recommended to leave it as "config.h". AC_CONFIG_HEADERS([config.h])
# Checks for programs. AC_PROG_CC AC_PROG_INSTALL
# Finish up by writing output files. AC_CONFIG_FILES([Makefile]) ----
Then all you have to do is call these:
aclocal -I m4 autoheader automake --add-missing --copy autoreconf
and from there:
configure make
I am sure there are (simpler) recipes for doing this with cmake and the likes, but this is what I do for GNU style projects that I want to have build cross-platform.
-- Andrew Janke (a.janke@gmail.com || http://a.janke.googlepages.com/) Canberra->Australia +61 (402) 700 883
Hi Andrew!
You're completely right about that, although Dev-C++ seems to have its own makefile generator (and then calls the MingW or MSYS make, not sure), it wouldn't be necessary to reinvent the wheel. So the sensible solution would indeed be to make a plugin that is kind off like a front-end for a tool that makes makefiles (I'm actually baffled by the amount of indirection here ;) ). Even though currently I'm preparing for my exams, I can't quite keep my mind off more interesting things like this.
That being said, I think a direct SCons file generator would be pretty easy to make, since everyone is saying how simple it really is. Then I'd need to make some kind of dialog where you can select all kinds of options (probably per language then, in the beginning only C would be supported), like the optimisation level, or to strip the executable afterwards, or even to make a debug version et cetera. The plugin could also be made to be buildtool-backend agnostic, with several modules providing support for each (plugins for a plugin?!). So you could choose in the plugin dialog for your project whether you want SCons or Make or something else. You'd probably also need a general setup to point to the paths where the buildtools are located (SCons directory, ...).
So basically in the beginning it could be:
tool | language -------------------- SCons | C
But later there could be:
------------------- Ant | Java Ant | C Ant | C++
Or some other crazy stuff :)
Some languages also don't need buildtools I presume, but the plugin wouldn't interfere unless activated. Maybe it could store options in the project .geany file, or maybe it would use a .geany-buildopt file.
Well, enough ranting out of me, need to get back to studying (which is to say this plugin isn't for tomorrow, or even next month).
Thanks for the files Andrew, now I can at least try if they work when I'm taking a break.
Cheers, Nicolas
On Fri, May 29, 2009 at 1:50 AM, Andrew Janke a.janke@gmail.com wrote:
Hi Nicolas,
On Thu, May 28, 2009 at 18:49, Nicolas Hillegeer nicolashillegeer@gmail.com wrote:
I've been searching the web for some time (including these lists), and
I'm
sorry if I've missed it, but is there any feature?
I haven't been following this thread much but surely it would be daft to re-invent the wheel inside geany for this when there is already cmake, genmake, and of course my favourite automake/autoconf the venerable old dinosaurs that they are. Surely such a thing in geany would just call an external script (of some description, perl? python? bash?) that created the Makefile.am and configure.ac and then called the appropriate things.
ie: (replace all the things in <>)
For Makefile.am:
AUTOMAKE_OPTIONS = check-news ACLOCAL_AMFLAGS = -I m4
bin_PROGRAMS = <program_name> dist_man1_MANS = <man pages>
<program_name>_SOURCES = <headers.h sourcefiles.c sourcefiles.cxx>
for configure.ac
# Require autoconf 2.57 or newer. AC_PREREQ([2.57])
AC_INIT([<program_name>],[<version>],[<username>]) AC_CONFIG_SRCDIR([<first source file.c>])
AM_INIT_AUTOMAKE
# The argument is the name of the generated header file. # It is recommended to leave it as "config.h". AC_CONFIG_HEADERS([config.h])
# Checks for programs. AC_PROG_CC AC_PROG_INSTALL
# Finish up by writing output files. AC_CONFIG_FILES([Makefile])
Then all you have to do is call these:
aclocal -I m4 autoheader automake --add-missing --copy autoreconf
and from there:
configure make
I am sure there are (simpler) recipes for doing this with cmake and the likes, but this is what I do for GNU style projects that I want to have build cross-platform.
-- Andrew Janke (a.janke@gmail.com || http://a.janke.googlepages.com/) Canberra->Australia +61 (402) 700 883 _______________________________________________ Geany mailing list Geany@uvena.de http://lists.uvena.de/cgi-bin/mailman/listinfo/geany