git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@67041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
250 lines
8.7 KiB
Plaintext
250 lines
8.7 KiB
Plaintext
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
|
|
|
|
|