Klaas Holwerda wrote:
> Malcolm Nealon wrote:
>   
>> But, having only very briefly skimmed the surface of it, haven't the 
>> wxWidgets boffins already done the lions share? Shouldn't it be 
>> relatively easy to build upon their work? Could you enlighten me as to 
>> what "tuning" is needed?
>>     
> Like detecting expat, freetype, antigrain, wxLua, wxstedit. configure needs 
> to 
> test for this, and based on that do certain things.
> Then there are several options in wxArt2D.
>   

OK OK headache coming on. Obviously much more than I originally thought.
> I think wxLua its bakefile might be a good start, and i think just using 
> contrib 
> stuff won't do.
> But if you determined to do this, best ask Francesco for advice, he knows it.
>   

Will do, when I get on to it.

>> I'll give it a go. Would the compilation files and results I have help 
>> here then? 
>>     
>
> What do you mean? I thought you wanted to install MSYS and Mingw, and try to 
> find why it does not work in release mode.
>   
I do, but I wondered if my gcc build might offer some clues as to 
where/why it fails. For example if it is possible that the smartpointers 
are being wrongly initialised, then the warnings from aggdrawer build 
might point to the general area: "In file included from 
c:/wxart2d/thirdparty/agg2/include/agg_path_storage.h:23,
                 from c:/wxart2d/modules/aggdrawer/include/aggdrawer.h:34,
                 from ../../src/aggdrawer.cpp:62:
c:/wxart2d/thirdparty/agg2/include/agg_bezier_arc.h: In member function 
`unsigned int agg::bezier_arc::vertex(double*, double*)':
c:/wxart2d/thirdparty/agg2/include/agg_bezier_arc.h:71: warning: 
enumeral and non-enumeral type in conditional expression
c:/wxart2d/modules/general/include/smrtptr.h: In copy constructor 
`a2dSmrtPtr<Clss>::a2dSmrtPtr(const a2dSmrtPtr<Clss>&) [with Clss = 
a2dRefCount]':
c:/Program Files/Dev-Cpp/include/c++/3.4.2/bits/stl_construct.h:81:   
instantiated from `void std::_Construct(_T1*, const _T2&) [with _T1 = 
a2dSmrtPtr<a2dRefCount>, _T2 = a2dSmrtPtr<a2dRefCount>]'
c:/Program Files/Dev-Cpp/include/c++/3.4.2/bits/stl_list.h:436:   
instantiated from `std::_List_node<_Tp>* std::list<_Tp, 
_Alloc>::_M_create_node(const _Tp&) [with _Tp = a2dSmrtPtr<a2dRefCount>, 
_Alloc = std::allocator<a2dSmrtPtr<a2dRefCount> >]'
c:/Program Files/Dev-Cpp/include/c++/3.4.2/bits/stl_list.h:1161:   
instantiated from `void std::list<_Tp, 
_Alloc>::_M_insert(std::_List_iterator<_Tp>, const _Tp&) [with _Tp = 
a2dSmrtPtr<a2dRefCount>, _Alloc = std::allocator<a2dSmrtPtr<a2dRefCount> >]'
c:/Program Files/Dev-Cpp/include/c++/3.4.2/bits/stl_list.h:783:   
instantiated from `void std::list<_Tp, _Alloc>::push_back(const _Tp&) 
[with _Tp = a2dSmrtPtr<a2dRefCount>, _Alloc = 
std::allocator<a2dSmrtPtr<a2dRefCount> >]'
c:/wxart2d/modules/general/include/gen.h:783:   instantiated from here
c:/wxart2d/modules/general/include/smrtptr.h:131: warning: base class 
`class a2dSmrtPtrBase' should be explicitly initialized in the copy 
constructor
c:/wxart2d/thirdparty/agg2/include/agg_pixfmt_rgb.h: At global scope:
c:/wxart2d/thirdparty/agg2/include/agg_pixfmt_rgb.h:90: warning: unused 
parameter 'cover'
../../src/aggdrawer.cpp:904: warning: unused parameter 'x'
../../src/aggdrawer.cpp:904: warning: unused parameter 'y'
../../src/aggdrawer.cpp: In member function `void 
a2dAggDrawer::_ras_add_stroked_path(PathT&) [with PathT = 
agg::path_storage]':
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_SOLID' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_TRANSPARENT' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_USER_DASH' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_BDIAGONAL_HATCH' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_CROSSDIAG_HATCH' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_FDIAGONAL_HATCH' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_CROSS_HATCH' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_HORIZONTAL_HATCH' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_VERTICAL_HATCH' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_STIPPLE' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_STIPPLE_MASK_OPAQUE' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_STIPPLE_MASK_OPAQUE_TRANSPARENT' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_OBJECTS' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_INHERIT' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_LAYER' not handled in switch
../../src/aggdrawer.cpp:1859: warning: enumeration value 
`a2dSTROKE_NULLSTROKE' not handled in switch"



> It is a matter of finding where exactly the first exception comes from in 
> release mode. So printf or wxLogDebug statements.
>   
Investigative playtime - cool :-D

> There should be one for each module, you could look at the
>   
>> compiler output for one of the modules, maybe this would offer some help 
>> as to where (or more accurately what) is possibly causing the failure?
>>     
>
> It will be a digital search with printf in code. Lucky enough it happens 
> during 
> startup.
>   
Point me in the general direction and I'll see where I come out. I have 
my win2k computer compiling wxWidgets in MSYS as I write.

>> By the way, I have VS2008 express. I managed a debug build with no 
>> errors and almost no warnings, and tested several samples, they ran.
>>     
>
> Can you tell want is needed to setup such a IDE? Or is it ver straightforward?
> What are the limitations?
>   
In the case of wxWidgets and wxArt2D it is very straightforward. Since 
VS2008 already has the windows platform sdk, it is really just a matter 
of install and run. Once successfully installed, open the wxWidgets dsw 
file, import it into VS2008. Then the only really tricky part is setting 
the project configurations (it seems that on importing all the projects 
get a little screwed up, so for example to make a static debug build, 
you need to select all the projects, then go to Project - Options - 
linker - runtime library and make it multi threaded debug and no longer 
multi threaded debug dll) thats about it. I f you can do that you can 
figure the rest out simply enough.

>> I had to change several options in the generated project (add a 
>> preprocessor - _CRT_SECURE_NO_WARNINGS I think) change the run time 
>> library option to Multi threaded debug,
>>     
>
> Why was that?
>   

_CRT_SECURE_NO_WARNINGS because the compiler gives oodles of warnings about 
certain functions not being secure (microsofts word), and this turns the 
warnings off, and the run time library option because this is my build (static 
library release) If you want wxWidgets to be built as dll's then this would be 
multi threaded (debug) dll  


>   and turn off manifest creation
>
> This is something i had with VC2005. Something with duplicate blah blah.
> I removed the manifest stuff in wx.rc of wxwidgets.
> But i don't know what it is for. Is it an option to the compiler?
>   
I didn't edit the wx.rc file, I simply told the compiler/linker not to 
create a manifest file and the problem went away. I understand that 
manifests are needed in XP+ OS's. Something to do with themes I  
believe. Anyway just go to Project - properties - linker - Generate 
Manifest File and set this to NO.

>> in the Linker section of the executables projects, for some reason the 
>> project forgets this every time I reopen it as well as, ignore specific 
>> library MSVCRTD.lib, and then build.
>>     
>
> Is this last one a warning?
>   

Yes, you get many many many warnings (or errors I don't remember) about 
something being defined twice. Since MSVCRT(D).lib is really the MFC 
library, I ignore this library since wxWidgets alone doesn't need it. It 
does need the functions etc. defined in the other library (I believe). 
Ignoring the mfc lib allows the program to successfully compile and execute.
>   
>> 5>genprop.obj : warning LNK4221: no public symbols found; archive member 
>> will be inaccessible
>> warning C4996: 'stricmp': The POSIX name for this item is deprecated. 
>> Instead, use the ISO C++ conformant name: _stricmp. See online help for 
>> details.
>> warning C4996: 'hypot': The POSIX name for this item is deprecated. 
>> Instead, use the ISO C++ conformant name: _hypot. See online help for 
>> details.
>>     
>
> Those ones i see too. I find it a bit weird to have _functions like this.
>   
We're talking about Microsoft here, when have they ever NOT been weird?

>> I think that this is it. Perhaps there could be some change to the 
>> required  cMake files to perform these changes? Then I could build 
>> wxArt2d under VS2008 express with no errors and no warnings.
>>     
>
> That would be great. If you run CMakeSetup, and toggle Show advanged values, 
> you 
> can easily test any flags needed. Just add them, and configure again.
> Once we know what they should be, it is easy to add them always

I'll investigate when I get the chance. Currently building wxW with 
expat  under MSYS.

It's going to be a long evening

Best Regards
Mal


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Wxart2d-users_dev mailing list
Wxart2d-users_dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxart2d-users_dev

Reply via email to