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