MacApp takes full advantage of the new multi-target and sub-project abilities of CWPro. Instead of the multitude of projects that we had in the past for building MacApp, there is now just one main project: MacAppLib.prj. It contains all of the MacApp sources, as well as the four flavors of MacApp that can be built.
In addition, MacApp makes use of the new Apple Class Suites (ACS). ACS has its own project, ACSLib.prj, which contains all of the ACS sources as well as its four flavors.
Each example project that ships with MacApp, such as Nothing.prj, includes both MacAppLib.prj and ACSLib.prj as sub-projects. When you build a target in Nothing.prj, the corresponding targets in MacAppLib.prj and ACSLib.prj get built first. Therefore, in order to built the Nothing example, you merely need to open up its project and make it - CWPro will build everything that is needed.
Of special interest is All Examples.prj. All Examples.prj, as you might expect, contains every MacApp example as a subproject. When you build All Examples.prj, you build every example, and therefore MacApp and ACS as well.
All you need to do to build the entire MacApp release is open up All Examples.prj and hit make!
Their are four "flavors" of MacApp that you can build and a corresponding suffix given to files to identify their flavor
|
|
PowerPC Debug |
PPC_d |
PowerPC Non Debug |
PPC_nd |
68K Debug |
68K_d |
68K Non Debug |
68K_nd |
Each of the projects - MacApp, ACS, and examples - has at least one target corresponding to one of the flavors, and most have all four. There is also an extra target that has the same name as the project without the ".prj suffix". This "special target" is a collection of all the other targets in the project. In the Nothing example, selecting this target , named "Nothing" and making it will make all four flavors of the Nothing appliaction.
To create your own MacApp application CodeWarrior project:
The following libraries are required for building a MacApp application with default switches:
68K MacOS.lib ToolLibs.o CW_memcpy_glue.lib AEObjectSupportLib.o MSL Runtime68K.Lib MathLib68K Fa(4i_8d).Lib MSL C++.68K Fa(4i_8d).Lib MSL C.68K Fa(4i_8d).Lib PPC DragLib InterfaceLib MathLib ObjectSupportLib AppleScriptLib PPCToolLibs.o QuickDrawGXLib QuickTimeLib TidyHeapSharedLib MSL RuntimePPC.Lib MSL C.PPC.Lib MSL C++.PPC.Lib ThreadsLib Multiprocessing API Library TranslationLib
MacApp and ACS require that bool, RTTI and C++ exceptions be turned on in the C++ compiler settings panel.
As of MacAppRelease 13, there are some warnings that are generated when building certain examples. Most of these warnings are resource related. For instance, the project's resources are overriding one of MacApp's defaults, such as a default View, CMNU, or MBAR. There is nothing wrong as long as the link order is correct and the resource you want is linking first. We'll clean these up soon.
CWPro can use up quite a bit of RAM when building MacApp. If you have memory related problems, here's some things you can do:
Build switches that control the availability of MacApp and ACS features, and how to specify or change build switches, are described in MacApp_Switches.html.
MacApp ships with the MacApp .rsrc files/link already built, so unless you change one of the MacApp Library .r files, there is no need for you to use Resources.prj.
A complete description of MacApp resources, how they are built, naming conventions, and so on are in Resources_ReadMe.html.
Because of the cuts to Apple's tools group and the large scale changes made to MacApp for Release 13, MPW and MABuild support has been delayed. MPW support using Metrowerks compilers will be provided in a subsequent update to Release 13.
In the past there have been no Codewarrior (CW) projects for building MacApp resources. Because of the expected delay of delivering the MPW/MABuild portion of MacApp, the resources for Release 13 (R13) are now built by a CodeWarrior project.