Subject: Xcode 2.2 is now available Date: November 10, 2005 11:37:17 AM PST
Xcode 2.2 has been released and is now available at http://connect.apple.com for ADC online, Select, and Premiere members. This update of Xcode is intended for Tiger-based PowerPC Macintosh systems, and will build Universal binaries for PowerPC and Intel-based Macs.
Principal features of Xcode 2.2 include:
• GCC 4.0.1 The version of the compiler has been bumped to 4.0.1. Certain directory paths for C and C++ headers and libraries have changed accordingly. The 10.3.9 and 10.4.u SDKs with Xcode 2.2 can be used with either the 4.0.0 or 4.0.1 compiler.
• Improved Distributed Builds Xcode has been updated to include distcc-2.18.3. This version of distcc includes many enhancements over the version included with Xcode 2.1, particularly in the areas of scheduling and error handling. In addition, xcodebuild has been enhanced to support distributed building from the command line. It will use the set of build machines configured in the distributed builds preferences pane. (If xcodebuild is configured to discover build machines via Bonjour they may not be immediately discovered at the beginning of the build. The first few files may be compiled locally, but as machines on the network are discovered compilations are distributed remotely.) See the xcodebuild man page for more information.
• Finally, the distributed build daemon (distccd) is now started by the system launch service, launchd. In addition to the preferences panel, the command line tool launchctl can be used to enable a machine as a distributed build server by issuing the following command: sudo /bin/launchctl load -w /System/Library/LaunchDaemons/distccd.plist
• New Target contextual menus items Now you can control-click on a target to build, clean, build and run, or build and debug the selected target(s). When running or debugging the target after building the active executable is used.
• Separate PCH Symbols GCC now supports building executables with debugging symbols from the PCH physically separated from the Mach-O binary files. This results in smaller binaries, faster link times, and helps avoid out-of-memory errors with extremely large executables.
• Symbol separation cannot be used with static libraries and static frameworks. It only functions when generating ‘full’ debugging symbols (-gfull), and is disabled automatically when ZeroLink is enabled. Symbol separation is controlled by the “Separate PCH Symbols” build setting (GCC_ENABLE_SYMBOL_SEPARATION), and is enabled by default for products other than static libraries.
• Only Link In Essential Symbols The linker now supports only linking in those symbols essential to debug a binary. This will result in shorter link times, but potentially longer debugger startup and the final linked binary will not be debuggable without all the .o files being present. This feature can be turned on with the “Only Link In Essential Symbols” build setting (ONLY_LINK_ESSENTIAL_SYMBOLS).
• Ability to disallow ZeroLink Now you can globally turn off ZeroLink via the Build→Allow ZeroLink menu item. When not checked, ZeroLink is turned off, overriding any settings in the project or target.
• ‘Attach’ in Xcode debugger You can now use the Xcode IDE debugger to attach to and debug an executable that was launched externally. In addition, if an application that was launched from Xcode’s ‘Run’ command crashes, Xcode will automatically attach its debugger to the crashed application. This can be disabled in the “Debugging” tab of the executable inspector.
• Breakpoint Actions The Log, Shell Command, and AppleScript Breakpoint Actions now support gdb expressions. To use, simpy place the _expression_ to be evaluated in the relevant text field, surrounded by the @ character. For example, to echo to the debug console the name of the program, you could include the Log action "Program ‘@(const char *)getprogname()@’ has loaded" on a breakpoint. Simple variable evaluation is also possible via the same syntax, such as "The value of my integer i is @i@". Note that in order to include an actual @ character in the _expression_, you must prefix the character with \ such as "A string is @(const char *)[\@"MyString" cString]@" in a log action. In addition to the above, other improvements have also been made. The output of Shell Command actions is now sent to the console log. Also, Log actions default to the console.
• Executables support build setting expansion For all executables (target and custom), the following properties support build setting expansion: The path to the application or binary to launch. The path to the directory in which the executable should be launched (working directory). The arguments to the executable. The environment variables to be passed down to the executable. The different executable types support expanding against the following sets of build settings: For target executables, it means anything defined at the target level for the executable’s owning target, or lower (including project settings and defaults). For custom executables, it means anything defined at the project level or lower (specifically *not* including any settings defined in any target, since custom executables are independent of targets). For the executable path and the working directory, if the path resolves to a relative path, then it will be considered to be relative to the project directory (PROJECT_DIR).
|