X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5aae8198c016def225f3afd5bcf599e6096a5a24..c56fd7a30423f266f006f549bf585925e1b0131d:/docs/osx/install.txt?ds=sidebyside diff --git a/docs/osx/install.txt b/docs/osx/install.txt index 91602e2045..f44e4831c0 100644 --- a/docs/osx/install.txt +++ b/docs/osx/install.txt @@ -1,31 +1,69 @@ -wxWidgets for Mac installation ------------------------------- +wxWidgets for Mac OS X installation +----------------------------------- -On MacOS X, you can download Apple's free developer tools (gcc -and associated headers and libraries, such as the Carbon API). -You can then use configure in a similar way to compiling -wxWidgets on Linux (or on Windows using MinGW or Cygwin). See -'Apple Developer Tools' below for more details on using -configure. +wxWidgets can be compiled using Apple's Carbon or Cocoa libraries. +Carbon is the older library, and Cocoa is the more modern library. -To target on MacOS 8 or 9, you need to buy Metrowerks -CodeWarrior. You can then compile Mac Classic or MacOS X -applications on Mac OS X, or compile Mac Classic or MacOS X -applications on Mac Classic. However you can only run and debug -each type of application on the target operating system. +In wxWidgets 2.9.x, Cocoa is the recommended library. While Carbon is still +supported by Apple, little new work is being done in Carbon. +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. -Apple Developer Tools: command line ------------------------------------ +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 directories to your wxWidgets directory and execute +one of the following sets of commands from the wxWidgets directory + +--------- + +# Build the library for Cocoa (wxWidgets 2.9.0 and later) +mkdir build-cocoa-debug +cd build-cocoa-debug +../configure --enable-unicode --enable-debug --disable-shared --with-osx_cocoa +make;cd .. +# Build the samples and demos +cd build-cocoa-debug/samples; make;cd ../.. +cd build-cocoa-debug/demos; make;cd ../.. + +--------- + +# Build the library for Carbon +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 ../.. + +--------- + +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 -As in all Unix projects, you need to do something like this under MacOS X -with the Apple Developer Tools installed: +--------- -1) cd into the base dir -2) mkdir osx-build -3) cd osx-build -4) ../configure -5) make +More advanced topics are covered below. + +--------- 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 @@ -78,9 +116,16 @@ 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. +configuring wxWidgets. This will create the libraries for all the supported +architectures, currently ppc, i386 and x86_64 when using Cocoa (Carbon isn't +available in 64 bit builds). You may explicitly specify the architectures to +use as a comma-separated list, e.g. --enable-universal_binary=i386,x86_64. + +Notice that if you use wx-config --libs to link your application, the -arch +flags are not added automatically as it is possible to link e.g. x86_64-only +program to a "fat" library containing other architectures. If you want to +build a universal application, you need to add the necessary "-arch xxx" flags +to your project or makefile separately. As an alternative to using --enable-universal_binary, you can build for each architecture separately and then use the lipo tool to glue the @@ -105,95 +150,3 @@ 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 - -