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