OpenCPN / plugins

Container Project for an Integrated Plugin Management Facility
17 stars 20 forks source link

TP local builds #1032

Open rgleason opened 11 months ago

rgleason commented 11 months ago

@transmitterdan @seandepagnier

How to build locally in Linux,RPI and Android?? Does not work on RPI #38 We would like to provide guidance on how to do this. Any suggestions?

Sean would like a simple direct way to build and test plugins on linux, RPI and Android. He does not like the many steps required to "import plugin" tarballs and would like to simply install to binary to the right location with a script. Is this possible?

jongough commented 8 months ago

Copying the dll/so/whatever to the requisite location is how I do testing without going through the packaging. But I am running debugging to fix stuff up so I am building OCPN as well as the plugins I am working on. I use an IDE to do this, I am not really sure why command line building is such a problem. If you want command line then use 'circleci local' if you want cloud build use the ones in cloudsmith, if you want debug code then use an IDE, if you really need command line then create the environment variables needed (there are only a couple for most builds) then execute the script that circleci does. I do this occasionally when debugging the circleci process.

Not really sure how many other ways to build need to be done. The testplugin/FE2 build process is to help create plugins easily and build and deploy them. It is not intended to be the ultimate tool for all development on all platforms as everyone works differently. But the build processes do work and they concentrate all plugin specific changes in one file, the CMakeList.txt file (for out of the ordinary builds it is flexible enough to allow 'extras' to be added).

seandepagnier commented 8 months ago

It used to be I could type "sudo make install" in the build folder of a plugin, and start opencpn and test it. In fact I still can if I apply:

` diff --git a/src/plugin_loader.cpp b/src/plugin_loader.cpp index 97a8de4a4..10259c44e 100644 --- a/src/plugin_loader.cpp +++ b/src/plugin_loader.cpp @@ -316,7 +316,7 @@ bool PluginLoader::LoadPluginCandidate(wxString file_name, bool load_enabled) { base_plugin_path += wxFileName::GetPathSeparator();

if (base_plugin_path.IsSameAs(plugin_file_path)){

What is the process now instead? I prefer a simple single command. Is there some reason opencpn really needs to ignore plugins in /usr/local considering that only developers or people who build from source and use make install will have this?

transmitterdan commented 8 months ago

There is another thread discussing this. I think we will soon have it back to how it was.

https://github.com/OpenCPN/OpenCPN/discussions/3553