|
|
09-01-2015, 13:35
|
#286
|
Registered User
Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,494
|
Re: Development Debugging Environment - Setup Help
Quote:
Does it make sense to have a plugin development "style guide" so that all plugins can be pulled from git into the O environment and have the build just work out of the box? This would seem to make collaboration on plugins easier. Or is it the case that plugin development is so personal that there is no desire or need for large group collaboration?
|
Yes it does. The plugin system is developing into a more robust system with Bdcat, Sean and Pavel's improvements. I have not yet figured out to turn a plugin into one that will work with both standalone/independent compile and the more traditional integrated compile (for windows) but Pavel has pretty much tamed this beast.
Pavel now has a pretty complete system that works. I am not as familiar with Linux, but I can pretty much compile most of the plugins using this system.
What we need to do now is document the process somewhere in this outlne perhaps under Standalone Independent
PlugIn API | Official OpenCPN Homepage
I'll help if you will. Thanks for developing the batch file. May I suggest you keep it in manageable pieces, so people can select what to run?
|
|
|
09-01-2015, 13:58
|
#287
|
Registered User
Join Date: Feb 2010
Location: Tierra del Fuego
Boat: Phantom 19
Posts: 6,145
|
Re: Development Debugging Environment - Setup Help
Quote:
Originally Posted by transmitterdan
O has a lot of developers (ok, maybe not a lot but more than a couple) and so it has a standard build environment making collaboration easier. Maybe I haven't looked at enough of the plugins to be certain of what I am about to say so feel free to "educate" me. My experience is that the various plugins don't integrate into the base O development tree the same as the in-built plugins. For example, almost every plugin I have tried to build has an issue with where to look for opencpn.lib. Some (most?) have Cmake dependency issues. None so far will build right out of git like O will.
Does it make sense to have a plugin development "style guide" so that all plugins can be pulled from git into the O environment and have the build just work out of the box? This would seem to make collaboration on plugins easier. Or is it the case that plugin development is so personal that there is no desire or need for large group collaboration?
|
Pretty much all the actively developed plugins now use the same system. They build both in and out of the tree. If they don't have more dependencies, all you need to do to build on Windows, out of the tree, is copy the relevant openpcn.lib to the build directory. Reason for that is that including this (or any other) external binary build product into the source tree makes no sense, IMO.
Inside the plugin directory of the main tree, everything builds out of the box (if there are no more special dependencies, see previous paragraph) even on Windows, as far as I can tell.
I'm out of ideas how to make it easier, really. If you have some new brilliant ideas what to do to make it even more straight forward, I'm of course listening.
Style guide? Yes, why not? I will gladly cooperate your efforts in the wiki.
Pavel
|
|
|
09-01-2015, 14:34
|
#288
|
Registered User
Join Date: Nov 2012
Location: Orust Sweden
Boat: Najad 34
Posts: 4,112
|
Re: Development Debugging Environment - Setup Help
Hi, a humble question, please;
In appbase.cpp: 660 we have this code interrupting every debug:
Code:
// break into the debugger
void wxTrap()
{
#if defined(__WXMSW__) && !defined(__WXMICROWIN__)
DebugBreak();
#elif defined(__WXMAC__) && !defined(__DARWIN__)
#if __powerc
Debugger();
#else
SysBreak();
#endif
#elif defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS
Debugger();
#elif defined(__UNIX__)
raise(SIGTRAP);
#else
// TODO
#endif // Win/Unix
}
I can four sure exclude it while debugging but what is the reason?
Håkan
|
|
|
09-01-2015, 14:36
|
#289
|
Registered User
Join Date: Feb 2010
Location: Tierra del Fuego
Boat: Phantom 19
Posts: 6,145
|
Re: Development Debugging Environment - Setup Help
Hakan...
Where exactly is it causing trouble? I have never ever had to care about it...
Pavel
|
|
|
09-01-2015, 14:42
|
#290
|
Registered User
Join Date: Feb 2010
Location: Tierra del Fuego
Boat: Phantom 19
Posts: 6,145
|
Re: Development Debugging Environment - Setup Help
And FWIW, don't see any call to wxTrap in OpenCPN's code...
Pavel
|
|
|
09-01-2015, 17:33
|
#291
|
Registered User
Join Date: Oct 2011
Boat: Valiant 42
Posts: 6,008
|
Re: Development Debugging Environment - Setup Help
I think wxTrap() is called by the wxWidgets library itself when some condition arises. Not totally sure about that as I'm working from old memory.
|
|
|
10-01-2015, 01:38
|
#292
|
Registered User
Join Date: Nov 2012
Location: Orust Sweden
Boat: Najad 34
Posts: 4,112
|
Re: Development Debugging Environment - Setup Help
Quote:
Originally Posted by nohal
Hakan...
Where exactly is it causing trouble? I have never ever had to care about it...
Pavel
|
Pavel...many thanks for your, maybe unconscious, solution.
This is no more a problem since when you claimed not having any such disturbances I start to reflect of my own acts;
When debugging I use to recieve the attached message and for some reason I've start to answer "Yes" instead of my usual "Quit = Escape". Then I run into a break at the refereed code in row 678. I've newer really tried to understand the message box since it makes no further problem when turned off.
Anyhow.....Thanks again for your appreciated support to us novices.
Håkan
|
|
|
19-01-2015, 08:43
|
#293
|
Registered User
Join Date: Oct 2011
Boat: Valiant 42
Posts: 6,008
|
Re: Development Debugging Environment - Setup Help
My Windows build system has become "broken". I get hundreds of warnings like this:
c:\storage\odev\master\opencpn\include\ocpndc.h(12 3): warning C4251: 'ocpnDC::m_brush' : class 'wxBrush' needs to have dll-interfce to be used by clients of class 'ocpnDC' [C:\Storage\Odev\master\OpenCPN\build\opencpn.vcxpr oj]
Recently Microsoft sent out some updates and maybe one of these caused something to break. I pulled OpenCPN fresh from github this morning and I hundreds of similar warnings. The plugins (grib and dashboard) will no longer build either.
Does anyone know the possible reasons for this? It was working last week just fine.
|
|
|
19-01-2015, 08:55
|
#294
|
Registered User
Join Date: Feb 2010
Location: Tierra del Fuego
Boat: Phantom 19
Posts: 6,145
|
Re: Development Debugging Environment - Setup Help
Dan...
"Don't build" means? You posted just some warning, not a build failure.
Pavel
|
|
|
19-01-2015, 09:11
|
#295
|
Registered User
Join Date: Oct 2011
Boat: Valiant 42
Posts: 6,008
|
Re: Development Debugging Environment - Setup Help
The plugins fail to build. Last week I did not get 1200 warnings like that. It just started happening from this weekend. This is the first of many errors:
"C:\Storage\Odev\master\OpenCPN\build\ALL_BUILD.vc xproj" (default target) (1) ->
"C:\Storage\Odev\master\OpenCPN\build\plugins\dash board_pi\dashboard_pi.vcxproj" (default target) (8) ->
(Link target) ->
wxmsw28u_core.lib(corelib_graphics.obj) : error LNK2019: unresolved external symbol _GdipFree@4 referenced in function "public: static void __cdecl Gdiplus::GdiplusBase: perator delete(void *)" (??3GdiplusBase@Gdiplus@@SAXPAX@Z) [C:\Storage\Odev\master\OpenCPN\build\plugins\dashb oard_pi\dashboard_pi.vcxproj]
I had assumed (perhaps incorrectly) that the many warnings were somehow related to the plugin link failures.
|
|
|
19-01-2015, 09:16
|
#296
|
Registered User
Join Date: Feb 2010
Location: Tierra del Fuego
Boat: Phantom 19
Posts: 6,145
|
Re: Development Debugging Environment - Setup Help
This is release build, right?
Sent from my iPhone using Cruisers Sailing Forum
|
|
|
19-01-2015, 09:22
|
#297
|
Registered User
Join Date: Oct 2011
Boat: Valiant 42
Posts: 6,008
|
Re: Development Debugging Environment - Setup Help
Yes, it is release build. Same problem happens with debug build too.
|
|
|
19-01-2015, 10:32
|
#298
|
Registered User
Join Date: Feb 2010
Location: Tierra del Fuego
Boat: Phantom 19
Posts: 6,145
|
Re: Development Debugging Environment - Setup Help
It seems that for some reason you are missing gdiplus.lib.
Check you have it and have a look at Properties -> Linker -> Input -> Additional Dependencies of the opencpn project, it should be named there.
Pavel
|
|
|
19-01-2015, 14:01
|
#299
|
Registered User
Join Date: Oct 2011
Boat: Valiant 42
Posts: 6,008
|
Re: Development Debugging Environment - Setup Help
Pavel,
Thank you for looking at this. The reference to gdiplus.lib is in the dependencies.
My system has 2 32-bit libraries:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\GdiPlus.lib
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86\gdiplus.lib
|
|
|
19-01-2015, 14:28
|
#300
|
Registered User
Join Date: Oct 2011
Boat: Valiant 42
Posts: 6,008
|
Re: Development Debugging Environment - Setup Help
Pavel,
The reference to gdiplus.lib is NOT in the dependencies for the plugins but it is there for opencpn.exe itself. I think these dependencies are supposed to be inherited but for some reason gdiplus.lib is not inherited. If I add it manually to each plugin's linker properties it will build each plugin inside VS. But the plugins will not build from cmake command line.
This could be something on my system but I'm not seeing what it could be right now.
|
|
|
|
|
Thread Tools |
Search this Thread |
|
|
Display Modes |
Rate This Thread |
Linear Mode
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
Advertise Here
Recent Discussions |
|
|
|
|
|
|
|
|
|
|
|
|
Vendor Spotlight |
|
|
|