[MacPorts] #20952: wxWidgets fails to build 64-bit
MacPorts
noreply at macports.org
Fri Oct 2 15:21:07 PDT 2009
#20952: wxWidgets fails to build 64-bit
---------------------------------------+------------------------------------
Reporter: andrius.laikina@… | Owner: mww@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Keywords: LP64 | Port: wxWidgets
---------------------------------------+------------------------------------
Comment(by software@…):
I did manage to compile wxWidgets today. There are three, possibly four,
'bugs' to solve before it compiles. I'll list them here and include my
Portfile and patch script. However, I had a busy day and did not have time
to test it yet. If someone has that time, please do!
Also, the settings probably only work for OS 10.5 and higher. If this
portfile is to be used on other platforms as well, it will be necessary to
make a variant for this specific Darwin version. I have not done that yet.
I encountered the following bugs:
Bug number 1:
{{{
../src/osx/carbon/utils.cpp: In function 'void wxGetMousePosition(int*,
int*)':
../src/osx/carbon/utils.cpp:161: error: 'GetGlobalMouse' was not declared
in this scope
}}}
Problem: The osx_carbon GUI toolkit is selected. This ought to be the
osx_cocoa GUI toolkit.
or
{{{
../include/wx/cocoa/cursor.h:42: error: default argument for parameter of
type 'wxBitmapType' has type 'int'
}}}
Problem: The cocoa GUI toolkit is selected. This ought to be the osx_cocoa
GUI toolkit.
Some Carbon libraries are no longer available in 64-bit. You should use
Cocoa instead.
solution: change
{{{ ./configure --with-mac
./configure --with-osx_carbon
./configure --with-carbon}}}
or
{{{ ./configure --with-cocoa}}}
to:
{{{ ./configure --with-osx_cocoa}}}
Bug number 2:
{{{
wxWidgets/src/osx/core/printmac.cpp: In member function ‘virtual bool
wxOSXPrintData::TransferFrom(const wxPrintData&)’:
wxWidgets/src/osx/core/printmac.cpp:142: error: ‘PMPaperCreate’ was not
declared in this scope"
}}}
This is a PMPaperCreate() is a deprecated function since Mac OS 10.5.
PMPrinterGetPaperList() should be used instead. There are two solutions:
either install XCode 3.2 with Tiger (10.4) support enabled, or compile
wxWdigets without 10.4 support:
{{{ ./configure --with-macosx-version-min=10.5}}}
See http://trac.wxwidgets.org/ticket/11183
Bug number 3:
{{{
wxWidgets/src/osx/cocoa/textctrl.mm: In function 'void
-[wxNSTextFieldEditor keyDown:](wxNSTextFieldEditor*, _message_ref_t*,
NSEvent*)':
wxWidgets/src/osx/cocoa/textctrl.mm:144: error: no matching function for
call to 'wxWidgetImpl::FindFromWXWidget(objc_object*)'
}}}
This is a bug in src/osx/cocoa/textctrl.mm, which was later fixed in
subversion, and will be fixed in 2.9.1.
See src/osx/cocoa/textctrl.mm
solution: see attached patch
http://groups.google.com/group/wx-
dev/browse_thread/thread/8af9dd06f1a1a867
and http://svn.wxwidgets.org/viewvc/wx?view=rev&revision=61383
Bug number 4:
{{{
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime,
missing required architecture x86_64 in file
}}}
This is due to the settings in the configure script. The QuickTime library
is included is (($USE_MAC and $USE_DARWIN) or $USE_COCOA) are set.
If ./configure is called with --with-osx_cocoa, it seems that USE_MAC and
USE_DARWIN are set, while USE_COCOA is not set.
This is utterly confusing, and since it is "only" a warning, I did not
look further in this matter.
--
Ticket URL: <http://trac.macports.org/ticket/20952#comment:16>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list