From: Mattia B. <mat...@li...> - 2006-08-15 13:51:48
|
On Tue, 15 Aug 2006 08:33:15 +0200 "Mark Wardell" <ma...@ne...> wrote: Hi, > I am trying to wrap wxTreeListCtrl but for the Makefile.PL to work I had to > change line 112 of build/Utils.pm > > from: > my $top = _top_dir(); > > > to: > my $top = Wx::build::MakeMaker->get_api_directory(); > > > to get the package to build out of a folder not in the wxPerl source tree. > (Is this ok?) > [I see you use is_core and is_wxPerl_tree to determine where you are > building from] Trouble... I do not think I ever thought of exposing the whole 'overload resolution' infrastructure outside the wxPerl tree. You might want to avoid it until I figure out how exactly to do it. > I also had to copy ovl_const.h from wxPerl source tree to > /perl/site/lib/Wx/cpp and pipe.pl to a script subfolder of my package. For ovl_const see above. I will remove the requirement for pipe.pl: it is not intentional. > The files required for wxTreeListCtrl are simply two files, > (treelistctrl.cpp and treelistctrl.h). I thought it would be easier to > simply include these into my xs file rather than first compiling > wxTreeListCtrl as a DLL (under MSW). This is not working and I am getting > plenty of warnings and errors like below: > > warning : inconsistent dll linkage > error : definition of dllimport static data member not allowed The headers of wxTreeListCtrl are wrong. They use WXDLLEXPORT for their own classes. You need to replace WXDLLEXPORT with WXDLLEXPORT_TREE (or something like it) and then define WXDLLEXPORT_TREE to nothing (because you are not building a DLL that export the wxTreeListCtrl interface). Please note that if you distribute wxTreeListCtrl files you need at least point out it in the module's documentation/copyright section. Regards Mattia |