Re: Compiling screensaver for 10.5
Re: Compiling screensaver for 10.5
- Subject: Re: Compiling screensaver for 10.5
- From: Nick Zitzmann <email@hidden>
- Date: Fri, 08 Apr 2011 12:00:47 -0600
On Apr 8, 2011, at 11:35 AM, Michael Diehr wrote:
> I'm building a .saver file -- in 3.2.5 I was able to build a universal .saver file that worked on 10.4 (PPC), 10.5-10.6 (PPC, 32 bit Intel, and 64 bit Intel).
>
> I have the exact same issue: updated XCode to 3.2.6 and now I can't build PPC any longer.
>
> I've changed my build settings to be explicit about ppc, and yet when I clean and build, file (and lipo -info) both report only the 32 and 64 bit Intel code.
>
> When I look at my .pbxproj file in a text editor I see something weird. It looks as if I have two copies of the settings, one under a list called
>
> Build configuration list for PBXProject "MySaver" (this one looks right)
> and one called
> Build configuration list for PBXNativeTarget "MySaver" (this one looks wrong)
>
> These reference the build settings by ID -- and one of the build settings looks correct:
>
> EF7AD73308BB986600CE4634 /* Release */ = {
> isa = XCBuildConfiguration;
> buildSettings = {
> ARCHS = (
> i386,
> x86_64,
> ppc,
> ppc64,
> ppc7400,
> ppc970,
> );
> "GCC_ENABLE_OBJC_GC[arch=x86_64]" = supported;
> "GCC_FAST_OBJC_DISPATCH[arch=ppc]" = NO;
> GCC_VERSION = 4.2;
> "GCC_VERSION[sdk=macosx10.4][arch=*]" = 4.0;
> GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
> GCC_WARN_ABOUT_RETURN_TYPE = YES;
> GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
> GCC_WARN_UNUSED_VARIABLE = YES;
> ONLY_ACTIVE_ARCH = NO;
> PREBINDING = NO;
> SDKROOT = "";
> "SDKROOT[arch=i386]" = macosx10.4;
> "SDKROOT[arch=ppc]" = macosx10.4;
> "SDKROOT[arch=x86_64]" = "";
> VALID_ARCHS = "i386 x86_64 ppc ppc64 ppc7400 ppc970";
> };
> name = Release;
>
>
> e.g. it includes ppc.
>
> The other build settings is not:
>
> EF7AD72F08BB986600CE4634 /* Release */ = {
> isa = XCBuildConfiguration;
> buildSettings = {
> ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
> GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
> GCC_MODEL_TUNING = G5;
> GCC_PRECOMPILE_PREFIX_HEADER = YES;
> GCC_PREFIX_HEADER = iScreensaver_Prefix.pch;
> INFOPLIST_FILE = Info.plist;
> INSTALL_PATH = "$(HOME)/Library/Screen Savers";
> ONLY_ACTIVE_ARCH = NO;
> PRODUCT_NAME = iScreensaver;
> VALID_ARCHS = "x86_64 i386 ppc ppc64 ppc7400 ppc970";
> WRAPPER_EXTENSION = saver;
> };
> name = Release;
>
> Is this perhaps an XCode bug?
No.
> Any ideas what to do here? What's the difference between PBXNativeTarget and PBXProject?
Projects and targets can have different configuration settings. Settings assigned to the target apply only to that target, while settings assigned to the project apply to all targets in the project unless they are overridden. You have the Release settings correct for the project, but not for the target, and the target overrides the project.
Also, there is no reason to disable the accelerated dispatch unless you are still targeting Panther users. And there aren't that many of them that are still around & downloading new software.
Nick Zitzmann
<http://www.chronosnet.com/>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden