Cruisers Forum
 


Reply
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 09-01-2015, 13:35   #286
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,494
Images: 2
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?
rgleason is online now   Reply With Quote
Old 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 View Post
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
nohal is online now   Reply With Quote
Old 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
Hakan is offline   Reply With Quote
Old 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
nohal is online now   Reply With Quote
Old 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
nohal is online now   Reply With Quote
Old 09-01-2015, 17:33   #291
Registered User
 
transmitterdan's Avatar

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.
transmitterdan is offline   Reply With Quote
Old 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 View Post
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
Attached Thumbnails
Click image for larger version

Name:	debug.jpg
Views:	162
Size:	159.2 KB
ID:	95259  
Hakan is offline   Reply With Quote
Old 19-01-2015, 08:43   #293
Registered User
 
transmitterdan's Avatar

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.
transmitterdan is offline   Reply With Quote
Old 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
nohal is online now   Reply With Quote
Old 19-01-2015, 09:11   #295
Registered User
 
transmitterdan's Avatar

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.
transmitterdan is offline   Reply With Quote
Old 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
nohal is online now   Reply With Quote
Old 19-01-2015, 09:22   #297
Registered User
 
transmitterdan's Avatar

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.
transmitterdan is offline   Reply With Quote
Old 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
nohal is online now   Reply With Quote
Old 19-01-2015, 14:01   #299
Registered User
 
transmitterdan's Avatar

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
transmitterdan is offline   Reply With Quote
Old 19-01-2015, 14:28   #300
Registered User
 
transmitterdan's Avatar

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.
transmitterdan is offline   Reply With Quote
Reply

Tags
environment

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Advertise Here


All times are GMT -7. The time now is 20:22.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.