Permalink
Cannot retrieve contributors at this time
Fetching contributors…

wxWidgets for Mac OS X installation | |
----------------------------------- | |
wxWidgets can be compiled using Apple's Carbon or Cocoa libraries. | |
Carbon is the older library, and Cocoa is the more modern library. | |
In wxWidgets 2.8.x, Carbon is the recommended library because it is the | |
more stable. Cocoa is incomplete in wxWidgets 2.8.x. If you are interested | |
in using Cocoa, you should start with wxWidgets 2.9.x where Cocoa is | |
much more complete. | |
Most Mac OS X developers should start by downloading and installing Xcode | |
from http://developer.apple.com. It is a free IDE from Apple that provides | |
all of the tools you need for working with wxWidgets. | |
After Xcode is installed, download either wxWidgets-{version}.tar.gz or | |
wxMac-{version}.tar.gz and then double-click on it to unpack it to create | |
a wxWidgets directory. | |
Next use Terminal (under Applications, Utilities, Terminal) to access a command | |
prompt. Use cd to change directory to your wxWidgets directory and execute | |
one of the following sets of commands: | |
--------- | |
# For Mac OS X 10.6 Snow Leopard or later, with a 64-bit processor, build the | |
# Carbon libraries like this | |
mkdir build-carbon-debug | |
cd build-carbon-debug | |
arch_flags="-arch i386" | |
../configure CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags" --enable-unicode --enable-debug --disable-shared | |
make;cd .. | |
# Build the samples and demos | |
cd build-carbon-debug/samples;make;cd ../.. | |
cd build-carbon-debug/demos; make;cd ../.. | |
--------- | |
# For Mac OS X 10.5 or older or with a 32-bit processor, build Carbon like this: | |
mkdir build-carbon-debug | |
cd build-carbon-debug | |
../configure --enable-unicode --enable-debug --disable-shared | |
make;cd .. | |
# Build the samples and demos | |
cd build-carbon-debug/samples;make;cd ../.. | |
cd build-carbon-debug/demos; make;cd ../.. | |
--------- | |
# For Mac OS X 10.5 or older or with a 32-bit processor, you can build the | |
# Cocoa libraries like this, but wxWidgets 2.9.x is really much better than 2.8.x | |
mkdir build-cocoa-debug | |
cd build-cocoa-debug | |
../configure --enable-unicode --enable-debug --disable-shared --with-cocoa | |
make;cd .. | |
# Build the samples and demos | |
cd build-cocoa-debug/samples; make;cd ../.. | |
cd build-cocoa-debug/demos; make;cd ../.. | |
--------- | |
After the compilation completes, use Finder to run the samples and demos | |
Go to build-carbon-debug/samples to experiment with the Carbon samples. | |
Go to build-carbon-debug/demos to experiment with the Carbon demos. | |
Go to build-cocoa-debug/samples to experiment with the Cocoa samples. | |
Go to biuld-cocoa-debug/demos to experiment with the Cocoa demos. | |
Double-click on the executables which have an icon showing three small squares. | |
The source code for the samples is in wxWidgets/samples | |
The source code for the demos is in wxWidgets/demos | |
--------- | |
More information about building on Mac OS X is available in the wxWiki. | |
Here are two useful links | |
http://wiki.wxwidgets.org/Guides_%26_Tutorials | |
http://wiki.wxwidgets.org/Development:_wxMac | |
--------- | |
More advanced topics are covered below. | |
--------- | |
Apple Developer Tools: command line | |
----------------------------------- | |
If you want to install the library into the system directories you'll need | |
to do this as root. The accepted way of running commands as root is to | |
use the built-in sudo mechanism. First of all, you must be using an | |
account marked as a "Computer Administrator". Then | |
6) sudo make install | |
7) type <YOUR OWN PASSWORD> | |
Note that while using this method is okay for development, it is not | |
recommended that you require endusers to install wxWidgets into their | |
system directories in order to use your program. One way to avoid this | |
is to configure wxWidgets with --disable-shared. Another way to avoid | |
it is to make a framework for wxWidgets. Making frameworks is beyond | |
the scope of this document. | |
Note: | |
We recommend you configure a static library instead: | |
4) ../configure --disable-shared | |
or activate OpenGL: | |
4) ../configure --with-opengl | |
Note: | |
It is rarely desirable to install non-Apple software into system directories. | |
By configuring the library with --disable-shared and using the full path | |
to wx-config with the --in-place option you can avoid installing the library. | |
Apple Developer Tools: XCode | |
---------------------------- | |
You can use the project in src/wxWindows.xcodeproj to build wxWidgets, | |
and there is a sample project supplied with the minimal sample. | |
Creating universal binaries | |
--------------------------- | |
The Xcode projects for the wxWidgets library and minimal project are set up | |
to create universal binaries. | |
If using the Apple command line tools, pass --enable-universal_binary when | |
configuring wxWidgets. If you use wx-config --libs to link your application, | |
he necessary linker flags will be added. When compiling your own files, | |
you need to add -arch ppc -arch i386 to your CFLAGS. | |
As an alternative to using --enable-universal_binary, you can build for | |
each architecture separately and then use the lipo tool to glue the | |
binaries together. Assuming building on a PPC system: | |
1. First build in the usual way to get the PPC library. | |
2. Then, build for Intel, in a different folder. This time use: | |
export CFLAGS="-g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386" | |
export LDFLAGS="-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" | |
./configure --disable-dependency-tracking --enable-static=yes --enable-shared=no \ | |
--target=i386-apple-darwin8 --host=powerpc-apple-darwin8 --build=i386-apple-darwin8 | |
You will need to reverse the powerpc and i386 parameters everywhere to build PPC on an Intel | |
machine. | |
3. Use lipo to glue the binaries together. | |
See also: | |
http://developer.apple.com/technotes/tn2005/tn2137.html | |
Building with CodeWarrior | |
------------------------- | |
(Note that using the Apple tools is recommended.) | |
Installing latest headers (and Carbon Support) | |
---------------------------------------------- | |
Patching headers: CodeWarrior 8.x | |
--------------------------------- | |
If you run into trouble with WCHAR_MIN and WCHAR_MAX the for | |
MacOS X Support:Headers:(wchar_t Support fix):machine:ansi.h, | |
apply the patch ansi.diff. | |
You may also need to comment out the _T definition in | |
ctype.h if you get multiple definition errors. | |
setup.h | |
------- | |
in order to build wxMac with CodeWarrior, you must copy or alias the file | |
include/wx/mac/setup0.h to include/wx/setup.h. | |
this step is not needed when using the Apple Developer Tools under Mac OS X | |
since the setup.h file is automatically generated during the configuration. | |
OpenGL | |
------ | |
In order to build opengl support with CodeWarrior, you must install the opengl | |
libraries and headers from http://developer.apple.com/opengl/index.html | |
If you want OpenGL support with CodeWarrior, set wxUSE_OPENGL to 1 in | |
include/wx/setup.h | |
If you don't want OpenGl support, set wxUSE_OPENGL to 0 (the | |
default) and remove the file OpenGLLibraryStub from the project | |
before compilation. | |
If you want OpenGL support with the Apple Developer Tools under Mac OS X, add | |
--with-opengl to the arguments of configure when configuring wxMac. | |
Project Files | |
------------- | |
The project files are stored as xml text files and converted to binary | |
CodeWarrior projects in the distribution (see AppleScript Files below): | |
- *M8.xml -> *M8.mcp for CodeWarrior 8 and above. | |
AppleScript Files | |
----------------- | |
Several AppleScript files are provided in the docs:mac directory: | |
- M8xml2mcp.applescript to convert xml files to CodeWarrior 8 projects | |
- M8mcp2xml.applescript to convert CodeWarrior 8 projects to xml files | |
- SetXMLCreator.applescript to set correct creator type (see below) | |
To run the XML to MCP conversion scripts: | |
Double click on e.g. docs/mac/M8xml2mcp.applescript, then "run" | |
the applescript and when asked for a folder pick src/. Then it | |
takes a while to scan all dirs for the xml files and convert | |
them to mcps. If some conversions fail it means an mcp already | |
exists (back them up prior to running the script). | |
To set the correct creator type for importing into CodeWarrior, | |
you may need to run SetXMLCreator.applescript. | |
Problems with .xpm files | |
------------------------ | |
if you have downloaded all the files and get errors like : | |
Error : the file 'wx/generic/tip.xpm' cannot be opened | |
tipdlg.cpp line 201 #include "wx/generic/tip.xpm" | |
then your cvs has changed the type of the .xpm files to something other than | |
text, in order to fix this either change the type by using a resource editor | |
or drag the files from /include/wx/generic/..xpm on the SetTypeFromExtension | |
application that is included in this folder. This small applet itself queries | |
the Internet Config, so you will have to associate the "xpm" extension with | |
CodeWarrior before making use of this applet. | |
Missing PLStringFuncsLib | |
------------------------ | |
You will have to build All Targets for MacOS Support:Libraries:Sources:PLStringFuncs:Glue:PLStringFuncsGlue.mcp | |