Revision: 111716 https://trac.macports.org/changeset/111716 Author: mojca@macports.org Date: 2013-09-29 13:27:31 -0700 (Sun, 29 Sep 2013) Log Message: ----------- codeblocks: experimental support for wxWidgets 2.9 (#40390) Modified Paths: -------------- trunk/dports/devel/codeblocks/Portfile Added Paths: ----------- trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-core.diff trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-NassiShneiderman.diff trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-codesnippets.diff trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-exporter.diff trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-wxcontrib.diff Modified: trunk/dports/devel/codeblocks/Portfile =================================================================== --- trunk/dports/devel/codeblocks/Portfile 2013-09-29 20:09:14 UTC (rev 111715) +++ trunk/dports/devel/codeblocks/Portfile 2013-09-29 20:27:31 UTC (rev 111716) @@ -28,6 +28,7 @@ # TODO: maybe more dependencies are needed in this version, please help complete the list (see also the list below) depends_build path:bin/pkg-config:pkgconfig +# TODO: if hunspell is updated, fix post-configure below (or patch configure[.in]) depends_lib port:boost \ port:hunspell @@ -39,6 +40,9 @@ # patch-src-plugins-contrib-profiler-cbprofiler.cpp.diff: https://developer.berlios.de/patch/?func=detailpatch&patch_id=3496&group_id=... # patch-src-sdk-wxscintilla-src-PlatWX.cpp.diff: fixed upstream # patch-src-src-Makefile.in.diff: https://trac.macports.org/ticket/40531 +# patch-wxWidgets30-compatibility-core.diff: https://developer.berlios.de/patch/?func=detailpatch&patch_id=3499&group_id=... +# patch-wxWidgets30-compatibility-plugins-codesnippets.diff: https://developer.berlios.de/patch/?func=detailpatch&patch_id=3500&group_id=... +# patch-wxWidgets30-compatibility-plugins-wxcontrib.diff: https://developer.berlios.de/patch/?func=detailpatch&patch_id=3501&group_id=... patchfiles patch-MouseSap-Makefile.diff \ patch-Makefile.diff \ patch-src-include-prep.h.diff \ @@ -46,6 +50,9 @@ patch-src-plugins-contrib-profiler-cbprofiler.cpp.diff \ patch-src-sdk-wxscintilla-src-PlatWX.cpp.diff \ patch-src-src-Makefile.in.diff \ + patch-wxWidgets30-compatibility-core.diff \ + patch-wxWidgets30-compatibility-plugins-codesnippets.diff \ + patch-wxWidgets30-compatibility-plugins-wxcontrib.diff \ # not sure what this patch was used for # patch-sdk-configmanager.cpp @@ -107,8 +114,23 @@ variant aqua {} variant x11 {} +variant wxwidgets30 conflicts wxwidgets28 wxgtk28 description {Use wxWidgets 2.9 (experimental)} { + wxWidgets.use wxWidgets-3.0 + depends_lib-append port:${wxWidgets.port} + # TODO: maybe the patch for NassiShneiderman also solves the issue with wxWidgets 2.8 + patchfiles-append patch-wxWidgets30-compatibility-plugins-NassiShneiderman.diff \ + patch-wxWidgets30-compatibility-plugins-exporter.diff + configure.args-append --with-wxdir=${wxWidgets.wxdir} \ + --with-contrib-plugins=all,-FileManager + + # TODO: this should be patched in configure[.in] + post-configure { + reinplace "s|CB_HUNSPELL_LIBS =|CB_HUNSPELL_LIBS = -lhunspell-1.3.0|" ${worksrcpath}/src/plugins/contrib/SpellChecker/Makefile + } +} + # this variant seems to be broken -variant wxwidgets28 conflicts wxgtk28 description {Use 32-bit Carbon-based wxWidgets 2.8} { +variant wxwidgets28 conflicts wxwidgets30 wxgtk28 description {Use 32-bit Carbon-based wxWidgets 2.8} { wxWidgets.use wxWidgets-2.8 depends_lib-append port:${wxWidgets.port} # NassiShneiderman seems to be broken (http://trac.macports.org/ticket/40389) @@ -119,7 +141,7 @@ configure.sdkroot ${wxWidgets.sdk} } } -variant wxgtk28 conflicts wxwidgets28 description {Use wxWidgets 2.8 with GTK} { +variant wxgtk28 conflicts wxwidgets30 wxwidgets28 description {Use wxWidgets 2.8 with GTK} { wxWidgets.use wxGTK-2.8 patchfiles-append patch-src-plugins-contrib-source_exporter-Makefile.diff # TODO: someone needs to do a careful check of this list of dependencies @@ -152,7 +174,7 @@ --with-contrib-plugins=all,-FileManager } -if {![variant_isset wxwidgets28] && ![variant_isset wxgtk28]} { +if {![variant_isset wxwidgets30] && ![variant_isset wxwidgets28] && ![variant_isset wxgtk28]} { if {[variant_isset aqua]} { default_variants +wxwidgets28 } elseif {[variant_isset x11]} { Added: trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-core.diff =================================================================== --- trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-core.diff (rev 0) +++ trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-core.diff 2013-09-29 20:27:31 UTC (rev 111716) @@ -0,0 +1,65 @@ +https://developer.berlios.de/patch/?func=detailpatch&patch_id=3499&group_id=... +--- src/sdk/configmanager.cpp.orig ++++ src/sdk/configmanager.cpp +@@ -36,7 +36,11 @@ + #endif + + #ifdef __WXMAC__ ++#if wxCHECK_VERSION(2,9,0) ++#include "wx/osx/core/cfstring.h" ++#else + #include "wx/mac/corefoundation/cfstring.h" ++#endif + #include "wx/intl.h" + + #include <CoreFoundation/CFBundle.h> +@@ -121,7 +125,11 @@ + CFRelease(resourcesURL); + CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kCFURLPOSIXPathStyle); + CFRelease(absoluteURL); +- wxString str = wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #if wxCHECK_VERSION(2,9,0) ++ wxString str = wxCFStringRef(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #else ++ wxString str = wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #endif + if (!str.Contains(wxString(_T("/Resources")))) + return ::DetermineExecutablePath() + _T("/.."); // not a bundle, use relative path + return str; +--- src/sdk/xtra_res.cpp.orig ++++ src/sdk/xtra_res.cpp +@@ -15,6 +15,7 @@ + #include <wx/wx.h> + #endif + ++#include <wx/xml/xml.h> + + ///////////////////////////////////////////////////////////////////////////// + // Name: xh_toolb.cpp +--- src/src/app.cpp.orig ++++ src/src/app.cpp +@@ -271,7 +271,11 @@ + END_EVENT_TABLE() + + #ifdef __WXMAC__ ++#if wxCHECK_VERSION(2,9,0) ++#include "wx/osx/core/cfstring.h" ++#else + #include "wx/mac/corefoundation/cfstring.h" ++#endif + #include "wx/intl.h" + + #include <CoreFoundation/CFBundle.h> +@@ -286,7 +290,11 @@ + CFRelease(resourcesURL); + CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kCFURLPOSIXPathStyle); + CFRelease(absoluteURL); +- return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #if wxCHECK_VERSION(2,9,0) ++ return wxCFStringRef(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #else ++ return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #endif + } + #endif + Added: trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-NassiShneiderman.diff =================================================================== --- trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-NassiShneiderman.diff (rev 0) +++ trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-NassiShneiderman.diff 2013-09-29 20:27:31 UTC (rev 111716) @@ -0,0 +1,22 @@ +This patch might not work with wxGTK, but it's needed for wxMAC and wxOSX (2.8 and 2.9). +It needs to be fixed upstream, but a better patch is needed to deal with the problem. +See also http://docs.wxwidgets.org/2.9.5/overview_bitmap.html + +--- src/plugins/contrib/NassiShneiderman/NassiView.cpp.orig ++++ src/plugins/contrib/NassiShneiderman/NassiView.cpp +@@ -1048,15 +1048,9 @@ + + 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); Added: trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-codesnippets.diff =================================================================== --- trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-codesnippets.diff (rev 0) +++ trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-codesnippets.diff 2013-09-29 20:27:31 UTC (rev 111716) @@ -0,0 +1,76 @@ +https://developer.berlios.de/patch/?func=detailpatch&patch_id=3500&group_id=... +--- src/plugins/contrib/codesnippets/codesnippetsapp.cpp.orig ++++ src/plugins/contrib/codesnippets/codesnippetsapp.cpp +@@ -95,7 +95,11 @@ + END_EVENT_TABLE() + + #ifdef __WXMAC__ +- #include "wx/mac/corefoundation/cfstring.h" ++ #if wxCHECK_VERSION(2,9,0) ++ #include "wx/osx/core/cfstring.h" ++ #else ++ #include "wx/mac/corefoundation/cfstring.h" ++ #endif + #include "wx/intl.h" + + #include <CoreFoundation/CFBundle.h> +@@ -112,7 +116,11 @@ + CFRelease(resourcesURL); + CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kCFURLPOSIXPathStyle); + CFRelease(absoluteURL); +- return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #if wxCHECK_VERSION(2,9,0) ++ return wxCFStringRef(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #else ++ return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); ++ #endif + } + #endif + +@@ -268,8 +276,6 @@ + m_KeepAliveFileName = wxEmptyString; + m_pFilesHistory = 0; + +- wxStandardPaths stdPaths; +- + // ------------------------------- + // initialize version and logging + // ------------------------------- +@@ -325,7 +331,7 @@ + // Find Config File + // ----------------------------------------- + // Create filename like {%HOME%}\codesnippets.ini +- m_ConfigFolder = Normalize(stdPaths.GetUserDataDir()); ++ m_ConfigFolder = Normalize(wxStandardPaths::Get().GetUserDataDir()); + wxString m_ExecuteFolder = Normalize(FindAppPath(wxTheApp->argv[0], ::wxGetCwd(), wxEmptyString)); + + #if defined(LOGGING) +@@ -1387,8 +1393,6 @@ + void CodeSnippetsAppFrame::ImportCBResources() + // ---------------------------------------------------------------------------- + { +- wxStandardPaths stdPaths; +- + // Location of app config folder + wxString appConfigFolder = Normalize(m_ConfigFolder) ; + +@@ -1399,7 +1403,7 @@ + wxString cbExeFolder = Normalize(GetCBExeFolder()); + + // location of CodeBlocks config folder +- wxString cbConfigFolder = Normalize(stdPaths.GetUserDataDir()); ++ wxString cbConfigFolder = Normalize(wxStandardPaths::Get().GetUserDataDir()); + wxString appParent = GetConfig()->GetAppParent(); + if ( appParent.empty()) appParent =_T("codeblocks"); + wxString prefixPath; +--- src/plugins/contrib/codesnippets/snippetsconfig.cpp.orig ++++ src/plugins/contrib/codesnippets/snippetsconfig.cpp +@@ -128,8 +128,6 @@ + { + // file will be saved in $HOME/codesnippets.ini + +- wxStandardPaths stdPaths; +- + #ifdef LOGGING + wxString fn(__FUNCTION__, wxConvUTF8); + LOGIT( _T("--- [%s] ---"),fn.c_str() ); Added: trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-exporter.diff =================================================================== --- trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-exporter.diff (rev 0) +++ trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-exporter.diff 2013-09-29 20:27:31 UTC (rev 111716) @@ -0,0 +1,75 @@ +This patch is only needed and only works with wxWidgets >= 2.9.5. +This should be fixed upstream, but a better patch is needed for backward compatibility. + +--- 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 @@ + 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/include/wx/pdfprint.h.orig ++++ src/plugins/contrib/source_exporter/wxPdfDocument/include/wx/pdfprint.h +@@ -867,7 +867,7 @@ + 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); +@@ -874,7 +874,7 @@ + UpdateBoundingBox(); + } + +- virtual void DoDrawPolygon(int n, wxPoint points[], ++ virtual void DoDrawPolygon(int n, const wxPoint points[], + wxCoord xoffset, wxCoord yoffset, + wxPolygonFillMode fillStyle = wxODDEVEN_RULE) + { +--- src/plugins/contrib/source_exporter/wxPdfDocument/src/pdfdc29.inc.orig ++++ src/plugins/contrib/source_exporter/wxPdfDocument/src/pdfdc29.inc +@@ -1032,7 +1032,7 @@ + } + + 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(); +@@ -1039,7 +1039,7 @@ + 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 @@ + } + + 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 @@ + 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); Added: trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-wxcontrib.diff =================================================================== --- trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-wxcontrib.diff (rev 0) +++ trunk/dports/devel/codeblocks/files/patch-wxWidgets30-compatibility-plugins-wxcontrib.diff 2013-09-29 20:27:31 UTC (rev 111716) @@ -0,0 +1,49 @@ +https://developer.berlios.de/patch/?func=detailpatch&patch_id=3501&group_id=... +This needs to be fixed upstream. +The first three patches are safe, but I'm not sure how to properly fix +the last one to achieve the desired functionality. +The constants are already deprecated on 2.8. +--- src/plugins/contrib/wxContribItems/KWIC/include/wx/KWIC/AngularRegulator.h.orig ++++ src/plugins/contrib/wxContribItems/KWIC/include/wx/KWIC/AngularRegulator.h +@@ -11,6 +11,7 @@ + // + ///////////////////////////////////////////////////////////////////////////// + ++#include <wx/control.h> + + const int kwxEVT_ANGREG_FIRST = wxEVT_FIRST + 5402; + +--- src/plugins/contrib/wxContribItems/KWIC/include/wx/KWIC/LinearRegulator.h.orig ++++ src/plugins/contrib/wxContribItems/KWIC/include/wx/KWIC/LinearRegulator.h +@@ -11,6 +11,7 @@ + // + ///////////////////////////////////////////////////////////////////////////// + ++#include <wx/control.h> + + const int kwxEVT_LINEARREG_FIRST = wxEVT_FIRST + 5401; + +--- 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" + +@@ -2017,8 +2021,6 @@ + const wxString& name) { + + #ifdef __WXMAC__ +- if (style & wxTR_HAS_BUTTONS) style |= wxTR_MAC_BUTTONS; +- if (style & wxTR_HAS_BUTTONS) style &= ~wxTR_HAS_BUTTONS; + style &= ~wxTR_LINES_AT_ROOT; + style |= wxTR_NO_LINES; +
participants (1)
-
mojca@macports.org