I had some time to continue working on this. I have now renamed the geany 
classbuilder.c file to symfony.c and would like to use that as a starting point 
for my own plugin. However, when I try to
compile it using:

gcc -c symfony.c -fPIC `pkg-config --cflags geany`

it fails on not finding PACKAGE_VERSION. PACKAGE_VERSION does not seem to be 
defined in the files geany-devel contained. Where is that variable defined? 
Which other files should I make sure I have in
order to compile this source file?

Thank you in advance.

On Sat, 2024-09-14 at 14:10 -0400, H wrote:
> Lex, thank you for your helpful reply. I did find that my distro also has a 
> geany-devel package which I downloaded. I then deleted the source code for 
> geany and geany-plugins I had downloaded from
> github and subsequently built the helloworld.c example without any problems.
>
> All good, now my plan is to take the classbuilder.c source code, rename it to 
> symfony.c and tweak this code to do what I would like it to do. I quickly 
> tried to run the same gcc command I used for
> helloworld.c for this symfony.c (renamed from classbuilder.c) but it failed 
> to compile. The first error referred to PACKAGE_VERSION being undefined. It 
> is probably defined in some other header file
> that I will search for later.
>
> On Sat, 2024-09-14 at 11:21 +1000, Lex Trotman via Users wrote:
> > On Sat, 14 Sept 2024 at 10:43, H via Users <users@lists.geany.org> wrote:
> > >
> > > Thank you. I started playing around with compiling geany and geany 
> > > plugins from the git source but after some false starts I realized that 
> > > several of the plugins did not build on my Rocky Linux
> > > 9 system, presumably to dependencies missing. I was too lazy to figure 
> > > out all of the dependencies needed so I deleted the version of geany and 
> > > geany-plugins from git I just compiled,
> > > reinstalled both geany and geany-plugins from the repository so I am back 
> > > where I started.
> > >
> > > Tomorrow I will look at writing this "separate" new plugin based on the 
> > > HelloWorld sample and go from there without touching the editor and 
> > > already-installed plugins.
> > >
> > > However, a couple of things I need to be sure on before proceeding:
> > > - I need the <geanyplugin.h> header file. Am I correct in that I need to 
> > > clone the github geany-plugin git repository to have access to that? And 
> > > I need to have the geany source code from github
> > > to have access to geany.pc?
> >
> > No, your distro should package the headers for the plugin API, but if
> > it is included by default or if it is a separate package, and where it
> > is put is a decision of your distro, not the Geany project.  On my
> > Mint system those are installed with the Geany package, but IIUC your
> > rocky distro is a redhat clone so it is unrelated to debian based
> > systems like Ubuntu/Mint and I don't know how it is arranged.  As
> > pkg-config helpfully says if it can't find the .pc file, you can add
> > the right path to its environment variable, but you need to find the
> > path from the distro installation.  Although I am astonished that some
> > distros don't seem to configure their pkg-config to look where they
> > put .pc files.
> >
> > > - I saw that the source code on github is the yet-to-be-released version 
> > > 2.1 of geany, I have to assume that when I clone the source from github 
> > > for my own plugin I need to make sure it is the
> > > 2.0 tag, not the very latest source, correct?
> >
> > You should not need to clone anything to build plugins, as I said
> > above, where headers, .pc etc are installed is distro specific.
> >
> > > - When I compiled geany and then geany-plugins from github I could not 
> > > get the ./configure step to work correctly, specifically pkg-config kept 
> > > complaining it could not find geany.pc and I had
> > > double-, and triple-checked, that I had added the correct directory to 
> > > PKG_CONFIG_PATH but no go. After many tries I was able to run ./configure 
> > > --prefix=/usr/local --with-geany-
> > > libdir=/usr/local/lib, a reference to which I found on the internet. The 
> > > README file for geany-plugins further suggest I could use 
> > > --with-geany-prefix=... but that option was not recognized.
> > > Could this be an error in the README file?
> >
> > This README is for the geany-plugins package.  You are going to build
> > a single independent plugin and should follow the instructions in the
> > plugin manual https://www.geany.org/manual/reference/howto.html
> > "Building" section.
> >
> > > - After reinstalling geany and geany-plugins from my OS repository I was 
> > > back where I started and tried to run gcc -c HelloWorld.c -fPIC 
> > > `pkg-config --cflags geany` from the directory where I
> > > had saved the HelloWorld.c sample. That failed due to pkg-config, 
> > > presumably not finding geany.pc again and now I am giving up for today.
> >
> > As I said its distro specific where the .pc file is put, I know
> > nothing about your distro but hopefully it has some method to find
> > what files the Geany package installed, if they include the .h files
> > and .pc file and where they are, or if you need to install another
> > package to get the files for building plugins.
> >
> > To be clear, every distro has its own tweaks for how its package is
> > built, and the Geany project does not build those packages because we
> > simply can't keep track of all those specific rules and processes and
> > changes for each distro.
> >
> > >
> > > Pointers around any other gotchas appreciated!
> > >
> > > On Fri, 2024-09-13 at 11:25 +1000, Lex Trotman via Users wrote:
> > >
> > > On Fri, 13 Sept 2024 at 02:13, H via Users <users@lists.geany.org> wrote:
> > >
> > >
> > > Thank you! Modifying that code would require me to build the entire 
> > > codebase, or? If correct, would a plugin be an alternative approach? My 
> > > understanding is that plugins could simply be
> > > downloaded and then become available to geany itself, or?
> > >
> > >
> > > Classbuilder _is_ a plugin.  But it is built as part of Geany build so
> > > its probably more complicated to figure out how to do it separately if
> > > you are going to modify that.
> > >
> > > You could write your own plugin based on classbuilder.c and only need
> > > to build that (see https://www.geany.org/manual/reference/).
> > >
> > > On Thu, 2024-09-12 at 10:29 +1000, Lex Trotman via Users wrote:
> > >
> > > On Thu, 12 Sept 2024 at 09:55, H via Users <users@lists.geany.org> wrote:
> > >
> > >
> > > Using geany 2.0 on Rocky Linux 9. I am spending a lot of time using 
> > > Symfony and could see value in having some custom functions implemented. 
> > > I just came across Create Class/PHP Class and would
> > > like to do something quite similar but for Symfony and to my 
> > > specifications.
> > >
> > > How would I go about that? I have no experience writing anything for 
> > > geany so I am not sure where to start. For instance, is the Create 
> > > Class/PHP Class code available somewhere and I could use
> > > that as a base for tweaking and then have e.g. Create Class/Symfony in my 
> > > editor?
> > >
> > >
> > > https://github.com/geany/geany/blob/master/plugins/classbuilder.c
> > >
> > >
> > > Pointers/suggestions most welcome!
> > > _______________________________________________
> > > Users mailing list -- users@lists.geany.org
> > > To unsubscribe send an email to users-le...@lists.geany.org
> > >
> > > _______________________________________________
> > > Users mailing list -- users@lists.geany.org
> > > To unsubscribe send an email to users-le...@lists.geany.org
> > >
> > >
> > > _______________________________________________
> > > Users mailing list -- users@lists.geany.org
> > > To unsubscribe send an email to users-le...@lists.geany.org
> > >
> > > _______________________________________________
> > > Users mailing list -- users@lists.geany.org
> > > To unsubscribe send an email to users-le...@lists.geany.org
> > >
> > >
> > > _______________________________________________
> > > Users mailing list -- users@lists.geany.org
> > > To unsubscribe send an email to users-le...@lists.geany.org
> > _______________________________________________
> > Users mailing list -- users@lists.geany.org
> > To unsubscribe send an email to users-le...@lists.geany.org
>

_______________________________________________
Users mailing list -- users@lists.geany.org
To unsubscribe send an email to users-le...@lists.geany.org

Reply via email to