On Mon, 16 Sept 2024 at 11:19, H via Users <users@lists.geany.org> wrote: > > 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?
PACKAGE_VERSION is part of the geany_plugins collection and was set by that build system. As your symfony is not part of that collection PACKAGE_VERSION is not useful so just replace the use(s) of the PACKAGE_VERSION with a literal version you want to set for your plugin. > > 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 _______________________________________________ Users mailing list -- users@lists.geany.org To unsubscribe send an email to users-le...@lists.geany.org