[MacPorts] #40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 ---------------------+------------------------ Reporter: mojca@… | Owner: afb@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Keywords: | Port: codeblocks ---------------------+------------------------ This ticket should serve the collection of compile errors and patches needed to make Code::Blocks compile against wxWidgets 2.9/3.0. -- Ticket URL: <https://trac.macports.org/ticket/40390> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+----------------- Reporter: mojca@… | Owner: Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+----------------- Changes (by afb@…): * owner: afb@… => Comment: This sounds like an upstream development effort, rather than just porting. And it doesn't even say what the issues are. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+----------------- Reporter: mojca@… | Owner: Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+----------------- Changes (by mojca@…): * cc: afb@… (added) Comment: Yes, it would be nice if the upstream would fix the issues, but they might do it faster if they get patches. Or at least that is an optimistic point of view. Citing http://developer.berlios.de/bugs/?func=detailbug&bug_id=19113&group_id=5358:
I see you send a lot of bug report about C::B on Mac, but as far as I know, we don't have a C::B developer working on Mac OS, so I'm not sure these bug will be fixed soon.
I know that the ticket doesn't list the issues (yet), but reproducing them is trivial. Just compile against wxWidgets 2.9. I have a bunch of patches already, but they are not complete yet (I spent a few hours compiling/fixing compile error/compiling again/fixing another error/...), but I suspect it would be easier if I would disable all the modules to start with. What I had in mind was a ticket similar to #40386 where problems/patches could be collected one-by-one (if necessary). -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:3> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+----------------- Reporter: mojca@… | Owner: Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+----------------- Comment (by mojca@…): I attached a bunch of patches now, but from what I remember from my last experiments that wasn't sufficient, at least not when compiling with all the modules included. I'll take a look again when I have time unless someone else wants to play with this. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Changes (by mojca@…): * owner: => mojca@… -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): I submitted three patch files. From that point on I'll report the errors here. First one from `wxContribItems`: {{{ /bin/sh ../../../../../libtool --tag=CXX --mode=compile /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../../../../../src/include -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib/wx/include /osx_cocoa-unicode-2.9 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I./include -I/opt/local/include -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 -DCB_PRECOMP -Winvalid- pch -fPIC -DPIC -fexceptions -MT treelistctrl.lo -MD -MP -MF .deps/treelistctrl.Tpo -c -o treelistctrl.lo `test -f './src/treelistctrl.cpp' || echo './'`./src/treelistctrl.cpp libtool: compile: /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../../../../../src/include -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib/wx/include /osx_cocoa-unicode-2.9 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I./include -I/opt/local/include -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 -DCB_PRECOMP -Winvalid- pch -fPIC -DPIC -fexceptions -MT treelistctrl.lo -MD -MP -MF .deps/treelistctrl.Tpo -c ./src/treelistctrl.cpp -fno-common -DPIC -o .libs/treelistctrl.o ./src/treelistctrl.cpp:52:10: fatal error: 'wx/mac/private.h' file not found #include "wx/mac/private.h" ^ 1 error generated. }}} Solution: {{{ --- src/plugins/contrib/wxContribItems/wxTreeList/src/treelistctrl.cpp.orig +++ src/plugins/contrib/wxContribItems/wxTreeList/src/treelistctrl.cpp @@ -49,8 +49,12 @@ #include <wx/hashmap.h> #ifdef __WXMAC__ +#if wxCHECK_VERSION(2,9,0) +#include "wx/osx/private.h" +#else #include "wx/mac/private.h" #endif +#endif #include "wx/treelistctrl.h" }}} -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:6> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Then one in `NassiShneiderman`: {{{ /bin/sh ../../../../libtool --tag=CXX --mode=compile /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../../../../src/include -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib/wx/include /osx_cocoa-unicode-2.9 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I../../../../src/include -I../../../../src/sdk/wxscintilla/include -I/opt/local/include -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 -DCB_PRECOMP -Winvalid-pch -fPIC -DPIC -fexceptions -MT NassiView.lo -MD -MP -MF .deps/NassiView.Tpo -c -o NassiView.lo NassiView.cpp libtool: compile: /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../../../../src/include -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib/wx/include /osx_cocoa-unicode-2.9 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I../../../../src/include -I../../../../src/sdk/wxscintilla/include -I/opt/local/include -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 -DCB_PRECOMP -Winvalid-pch -fPIC -DPIC -fexceptions -MT NassiView.lo -MD -MP -MF .deps/NassiView.Tpo -c NassiView.cpp -fno-common -DPIC -o .libs/NassiView.o NassiView.cpp:1062:22: error: no matching constructor for initialization of 'wxDropSource' wxDropSource dndSource(m_diagramwindow, copycursor, movecursor, nonecursor); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9/wx/osx/dnd.h:78:5: note: candidate constructor not viable: no known conversion from 'wxIcon' to 'const wxCursor' for 2nd argument wxDropSource( wxWindow *win = NULL, ^ /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9/wx/osx/dnd.h:84:5: note: candidate constructor not viable: no known conversion from 'NassiDiagramWindow *' to 'wxDataObject &' for 1st argument wxDropSource( wxDataObject& data, ^ /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9/wx/osx/dnd.h:71:24: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 4 were provided class WXDLLIMPEXP_CORE wxDropSource: public wxDropSourceBase ^ 1 error generated. make[4]: *** [NassiView.lo] Error 1 }}} I'm not exactly sure what the proper patch should be, but this allowed me to proceed with compilation: {{{ --- src/plugins/contrib/NassiShneiderman/NassiView.cpp.orig +++ src/plugins/contrib/NassiShneiderman/NassiView.cpp @@ -1048,15 +1048,9 @@ void NassiView::DragStart() if ( dataptr ) { - #if defined(__WXMSW__) wxCursor copycursor(dnd_copy_cur_xpm); wxCursor movecursor(dnd_move_cur_xpm); wxCursor nonecursor(dnd_none_cur_xpm); - #else - wxIcon copycursor(dnd_copy_cur_xpm); - wxIcon movecursor(dnd_move_cur_xpm); - wxIcon nonecursor(dnd_none_cur_xpm); - #endif //wxDragResult result; wxDropSource dndSource(m_diagramwindow, copycursor, movecursor, nonecursor); }}} I would be grateful for any hints about a proper solution to report upstream. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:7> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Next comes the `exporter` plugin: {{{ libtool: compile: /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../../../../../src/include -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib/wx/include /osx_cocoa-unicode-2.9 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I../../../../../src/plugins/contrib/source_exporter/wxPdfDocument/include -DwxPDF_USE_WXMODULE=0 -I/opt/local/include -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 -DCB_PRECOMP -Winvalid-pch -fPIC -DPIC -fexceptions -MT libwxPdfDocument_la-pdfdc.lo -MD -MP -MF .deps /libwxPdfDocument_la-pdfdc.Tpo -c src/pdfdc.cpp -fno-common -DPIC -o .libs/libwxPdfDocument_la-pdfdc.o In file included from src/pdfdc.cpp:26: src/pdfdc29.inc:30:14: error: allocating an object of abstract class type 'wxPdfDCImpl' : wxDC(new wxPdfDCImpl(this)) ^ /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9/wx/dc.h:609:18: note: unimplemented pure virtual method 'DoDrawLines' in 'wxPdfDCImpl' virtual void DoDrawLines(int n, const wxPoint points[], ^ /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9/wx/dc.h:614:18: note: unimplemented pure virtual method 'DoDrawPolygon' in 'wxPdfDCImpl' virtual void DoDrawPolygon(int n, const wxPoint points[], ^ In file included from src/pdfdc.cpp:26: src/pdfdc29.inc:35:14: error: allocating an object of abstract class type 'wxPdfDCImpl' : wxDC(new wxPdfDCImpl(this, printData)) ^ src/pdfdc29.inc:40:14: error: allocating an object of abstract class type 'wxPdfDCImpl' : wxDC(new wxPdfDCImpl(this, pdfDocument, templateWidth, templateHeight)) ^ 3 errors generated. make[5]: *** [libwxPdfDocument_la-pdfdc.lo] Error 1 }}} The (partial cure) seems to be the following: {{{ --- src/plugins/contrib/source_exporter/wxPdfDocument/include/wx/pdfdc29.h.orig +++ src/plugins/contrib/source_exporter/wxPdfDocument/include/wx/pdfdc29.h @@ -162,9 +162,9 @@ protected: virtual void DoGetSize(int* width, int* height) const; virtual void DoGetSizeMM(int* width, int* height) const; - virtual void DoDrawLines(int n, wxPoint points[], + virtual void DoDrawLines(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset); - virtual void DoDrawPolygon(int n, wxPoint points[], + virtual void DoDrawPolygon(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset, wxPolygonFillMode fillStyle = wxODDEVEN_RULE); virtual void DoDrawPolyPolygon(int n, int count[], wxPoint points[], --- src/plugins/contrib/source_exporter/wxPdfDocument/src/pdfdc29.inc.orig +++ src/plugins/contrib/source_exporter/wxPdfDocument/src/pdfdc29.inc @@ -1032,7 +1032,7 @@ wxPdfDCImpl::DoGetSizeMM(int* width, int* height) const } void -wxPdfDCImpl::DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset) +wxPdfDCImpl::DoDrawLines(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset) { wxCHECK_RET(m_pdfDocument, wxT("Invalid PDF DC")); SetupPen(); @@ -1056,7 +1056,7 @@ wxPdfDCImpl::DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffs } void -wxPdfDCImpl::DoDrawPolygon(int n, wxPoint points[], +wxPdfDCImpl::DoDrawPolygon(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset, wxPolygonFillMode fillStyle /* = wxODDEVEN_RULE*/) { }}} See http://forums.wxwidgets.org/viewtopic.php?t=37517&p=152780. The real patch needs to take into account that the change apparently happened at version 2.9.5, so that it will work with any version of wxWidgets. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Related error: {{{ libtool: compile: /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../../../../../src/include -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib/wx/include /osx_cocoa-unicode-2.9 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I../../../../../src/plugins/contrib/source_exporter/wxPdfDocument/include -DwxPDF_USE_WXMODULE=0 -I/opt/local/include -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 -DCB_PRECOMP -Winvalid-pch -fPIC -DPIC -fexceptions -MT libwxPdfDocument_la-pdfdc.lo -MD -MP -MF .deps /libwxPdfDocument_la-pdfdc.Tpo -c src/pdfdc.cpp -fno-common -DPIC -o .libs/libwxPdfDocument_la-pdfdc.o In file included from src/pdfdc.cpp:26: src/pdfdc29.inc:1042:14: error: binding of reference to type 'wxPoint' to a value of type 'const wxPoint' drops qualifiers wxPoint& point = points[i]; ^ ~~~~~~~~~ src/pdfdc29.inc:1071:14: error: binding of reference to type 'wxPoint' to a value of type 'const wxPoint' drops qualifiers wxPoint& point = points[i]; ^ ~~~~~~~~~ 2 errors generated. make[5]: *** [libwxPdfDocument_la-pdfdc.lo] Error 1 }}} This turns the previous patch into: {{{ --- src/plugins/contrib/source_exporter/wxPdfDocument/src/pdfdc29.inc.orig +++ src/plugins/contrib/source_exporter/wxPdfDocument/src/pdfdc29.inc @@ -1032,14 +1032,14 @@ wxPdfDCImpl::DoGetSizeMM(int* width, int* height) const } void -wxPdfDCImpl::DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset) +wxPdfDCImpl::DoDrawLines(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset) { wxCHECK_RET(m_pdfDocument, wxT("Invalid PDF DC")); SetupPen(); int i; for (i = 0; i < n; ++i) { - wxPoint& point = points[i]; + const wxPoint& point = points[i]; double xx = ScaleLogicalToPdfX(xoffset + point.x); double yy = ScaleLogicalToPdfY(yoffset + point.y); CalcBoundingBox(point.x+xoffset, point.y+yoffset); @@ -1056,7 +1056,7 @@ wxPdfDCImpl::DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffs } void -wxPdfDCImpl::DoDrawPolygon(int n, wxPoint points[], +wxPdfDCImpl::DoDrawPolygon(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset, wxPolygonFillMode fillStyle /* = wxODDEVEN_RULE*/) { @@ -1068,7 +1068,7 @@ wxPdfDCImpl::DoDrawPolygon(int n, wxPoint points[], int i; for (i = 0; i < n; ++i) { - wxPoint& point = points[i]; + const wxPoint& point = points[i]; xp.Add(ScaleLogicalToPdfX(xoffset + point.x)); yp.Add(ScaleLogicalToPdfY(yoffset + point.y)); CalcBoundingBox(point.x + xoffset, point.y + yoffset); }}} -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:9> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Next related error: {{{ libtool: compile: /usr/bin/clang++ -DHAVE_CONFIG_H -I. -I../../../../../src/include -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib/wx/include /osx_cocoa-unicode-2.9 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ -I../../../../../src/plugins/contrib/source_exporter/wxPdfDocument/include -DwxPDF_USE_WXMODULE=0 -I/opt/local/include -Ulinux -Uunix -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 -DCB_PRECOMP -Winvalid-pch -fPIC -DPIC -fexceptions -MT libwxPdfDocument_la-pdfprint.lo -MD -MP -MF .deps /libwxPdfDocument_la-pdfprint.Tpo -c src/pdfprint.cpp -fno-common -DPIC -o .libs/libwxPdfDocument_la-pdfprint.o In file included from src/pdfprint.cpp:59: ../../../../../src/plugins/contrib/source_exporter/wxPdfDocument/include/wx/pdfprint.h:904:16: error: allocating an object of abstract class type 'wxPdfPreviewDCImpl' : wxDC(new wxPdfPreviewDCImpl(this, *dc.GetImpl(), pdfdc)) { } ^ /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9/wx/dc.h:609:18: note: unimplemented pure virtual method 'DoDrawLines' in 'wxPdfPreviewDCImpl' virtual void DoDrawLines(int n, const wxPoint points[], ^ /opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/include/wx-2.9/wx/dc.h:614:18: note: unimplemented pure virtual method 'DoDrawPolygon' in 'wxPdfPreviewDCImpl' virtual void DoDrawPolygon(int n, const wxPoint points[], ^ 1 error generated. make[5]: *** [libwxPdfDocument_la-pdfprint.lo] Error 1 }}} and the patch: {{{ --- src/plugins/contrib/source_exporter/wxPdfDocument/include/wx/pdfprint.h.orig +++ src/plugins/contrib/source_exporter/wxPdfDocument/include/wx/pdfprint.h @@ -867,14 +867,14 @@ public: return rval; } - virtual void DoDrawLines(int n, wxPoint points[], + virtual void DoDrawLines(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset) { m_dc.DoDrawLines(n, points,xoffset, yoffset); UpdateBoundingBox(); } - virtual void DoDrawPolygon(int n, wxPoint points[], + virtual void DoDrawPolygon(int n, const wxPoint points[], wxCoord xoffset, wxCoord yoffset, wxPolygonFillMode fillStyle = wxODDEVEN_RULE) { }}} -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:10> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): The `spellchecker` plugin fails with the same error that has been bugging me with `+wxwidgets28` on 10.6 (see #40389): {{{ libtool: link: /usr/bin/clang++ -o .libs/libSpellChecker.so -bundle .libs/DictionariesNeededDialog.o .libs/MySpellingDialog.o .libs/OnlineSpellChecker.o .libs/SpellCheckHelper.o .libs/SpellCheckSettingsPanel.o .libs/SpellCheckerConfig.o .libs/SpellCheckerPlugin.o .libs/StatusField.o .libs/Thesaurus.o .libs/ThesaurusDialog.o .libs/mythes.o .libs/wxThes.o -Wl,-force_load,wxspellchecker/.libs/libwxSpellChecker.a -L/opt/local/lib -L/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/2.9/lib -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL ../../../sdk/.libs/libcodeblocks.dylib -lwx_osx_cocoau_aui-2.9 -lwx_osx_cocoau_propgrid-2.9 -lwx_osx_cocoau_richtext-2.9 -lwx_osx_cocoau_xrc-2.9 -lwx_osx_cocoau_webview-2.9 -lwx_osx_cocoau_html-2.9 -lwx_osx_cocoau_qa-2.9 -lwx_osx_cocoau_adv-2.9 -lwx_osx_cocoau_core-2.9 -lwx_baseu_xml-2.9 -lwx_baseu_net-2.9 -lwx_baseu-2.9 -lpthread -ldl -O2 -Os -arch x86_64 -Wl,-headerpad_max_install_names -arch x86_64 -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL Undefined symbols for architecture x86_64: "Hunspell::get_dic_encoding()", referenced from: HunspellInterface::GetCharacterEncoding() in libwxSpellChecker.a(HunspellInterface.o) "Hunspell::spell(char const*, int*, char**)", referenced from: HunspellInterface::IsWordInDictionary(wxString const&) in libwxSpellChecker.a(HunspellInterface.o) "Hunspell::suggest(char***, char const*)", referenced from: HunspellInterface::GetSuggestions(wxString const&) in libwxSpellChecker.a(HunspellInterface.o) "Hunspell::Hunspell(char const*, char const*, char const*)", referenced from: HunspellInterface::InitializeSpellCheckEngine() in libwxSpellChecker.a(HunspellInterface.o) "Hunspell::~Hunspell()", referenced from: HunspellInterface::UninitializeSpellCheckEngine() in libwxSpellChecker.a(HunspellInterface.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[5]: *** [libSpellChecker.la] Error 1 }}} I believe that I need some help solving this one, so I will disable the plugin for a moment and try to continue with other issues. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:11> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Actually, the compile command works if I manually add `/opt/local/lib/libhunspell-1.3.0.dylib` at the end of the command or if I added the following to the `Makefile`, but I'm not sure about the proper patch: {{{ --- src/plugins/contrib/SpellChecker/Makefile.orig +++ src/plugins/contrib/SpellChecker/Makefile @@ -223,7 +223,7 @@ BUILD_WXSMITHCONTRIB = CB_GAMIN_CFLAGS = CB_GAMIN_LIBS = CB_HUNSPELL_CFLAGS = -CB_HUNSPELL_LIBS = +CB_HUNSPELL_LIBS = -lhunspell-1.3.0 CC = /usr/bin/clang CCDEPMODE = depmode=gcc3 CFLAGS = -O2 -ffast-math -DCB_AUTOCONF -pipe -Os -arch x86_64 }}} -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:12> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): In the meantime I tried to compile Code::Blocks without any plugin. While starting it the following Debug Alert is shown: {{{ ../src/osx/carbon/region.cpp(1017): assert "m_refData" failed in DoOffset(): invalid wxRegion Call stack: [00] wxRegionBase::Offset(int, int) [01] wxWidgetCocoaImpl::drawRect(void*, NSView*, void*) [02] wxOSX_drawRect(NSView*, objc_selector*, CGRect) [03] -[NSView _drawRect:clip:] [04] -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] [05] -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] [06] -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] [07] -[NSNextStepFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] [08] -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] [09] -[NSView displayIfNeeded] [10] -[NSNextStepFrame displayIfNeeded] [11] -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] [12] -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] [13] -[NSWindow orderWindow:relativeTo:] [14] -[NSWindow makeKeyAndOrderFront:] [15] wxNonOwnedWindowCocoaImpl::Show(bool) [16] wxNonOwnedWindow::Show(bool) [17] cbSplashScreen::cbSplashScreen(wxBitmap&, long, wxWindow*, int, long) [18] CodeBlocksApp::OnInit() [19] wxApp::CallOnInit() [20] wxEntry(int&, wchar_t**) Do you want to stop the program? You can also choose [Cancel] to suppress further warnings. }}} -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:13> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Actually, the patches listed above are sufficient to build Code::Blocks with all the plugins other than `FileManager`. I see that I disabled `NassiShneiderman` in the `wxwidgets28` variant and I suspect there is a high probability that the patch above would also make that particular plugin work with wxWidgets 2.8. The plugin for `spellchecker` is also likely the same for both `wxwidgets28` and `wxwidgets30`. Despite the debug alert shown above the program seems to work fine, at least the basic functionality seems to be there. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:14> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Committed in r111716. A proper patch for Hunspell, finishing upstream reports and some additional testing might be in place before closing the ticket. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:15> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): There seem to be some upstream patches in the trunk. It might be worth looking at least into commits 9362 and 9363. See http://forums.codeblocks.org/index.php/topic,18278.0.html -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:16> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): For future reference: Code::Blocks now seems to be compatible with wxWidgets 2.9. Most patches for compatibility with wx2.9 for Mac have already been applied upstream. The trunk version also contains a bunch of fixes (mentioned above) that haven't been back-ported here yet. But I believe that the next release could safely depend on `wxWidgets-3.0` only (dropping the variants). The summary of remaining issues is here: http://forums.codeblocks.org/index.php/topic,18394.0.html -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:17> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): I attached a new issue with compilation. Curiously it didn't happen before. I upgraded wxWidgets in the meantime, but I don't know if that was the problem or not as it doesn't seem strictly related. -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:18> MacPorts <http://www.macports.org/> Ports system for OS X
#40390: codeblocks: fix compatibility with wxWidgets 2.9/3.0 -------------------------+--------------------- Reporter: mojca@… | Owner: mojca@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: codeblocks | -------------------------+--------------------- Comment (by mojca@…): Upgrade to 13.12 committed in r118548. There are still a number of issues. Among others: {{{ ../src/osx/carbon/region.cpp(1016): assert "m_refData" failed in DoOffset(): invalid wxRegion Call stack: [00] wxWidgetCocoaImpl::drawRect(void*, NSView*, void*) [01] wxOSX_drawRect(NSView*, objc_selector*, CGRect) [02] -[NSView _drawRect:clip:] [03] -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] [04] -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] [05] -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] [06] -[NSNextStepFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] [07] -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] [08] -[NSView displayIfNeeded] [09] -[NSNextStepFrame displayIfNeeded] [10] -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] [11] -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] [12] -[NSWindow orderWindow:relativeTo:] [13] -[NSWindow makeKeyAndOrderFront:] [14] wxNonOwnedWindowCocoaImpl::Show(bool) [15] wxNonOwnedWindow::Show(bool) [16] cbSplashScreen::cbSplashScreen(wxBitmap&, long, wxWindow*, int, long) [17] CodeBlocksApp::OnInit() [18] wxApp::CallOnInit() [19] wxEntry(int&, wchar_t**) [20] main Do you want to stop the program? You can also choose [Cancel] to suppress further warnings. }}} {{{ ../src/osx/carbon/region.cpp(1048): assert "region.IsOk()" failed in DoCombine(): invalid wxRegion Call stack: [00] wxRegionWithCombine::DoIntersect(wxRegion const&) [01] wxWidgetCocoaImpl::drawRect(void*, NSView*, void*) [02] wxOSX_drawRect(NSView*, objc_selector*, CGRect) [03] -[NSView _drawRect:clip:] [04] -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] [05] -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] [06] -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] [07] -[NSNextStepFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] [08] -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] [09] -[NSView displayIfNeeded] [10] -[NSNextStepFrame displayIfNeeded] [11] -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] [12] -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] [13] -[NSWindow orderWindow:relativeTo:] [14] -[NSWindow makeKeyAndOrderFront:] [15] wxNonOwnedWindowCocoaImpl::Show(bool) [16] wxNonOwnedWindow::Show(bool) [17] cbSplashScreen::cbSplashScreen(wxBitmap&, long, wxWindow*, int, long) [18] CodeBlocksApp::OnInit() [19] wxApp::CallOnInit() [20] wxEntry(int&, wchar_t**) Do you want to stop the program? You can also choose [Cancel] to suppress further warnings. }}} -- Ticket URL: <https://trac.macports.org/ticket/40390#comment:19> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts