| Summary: | Xcode project issues | ||
|---|---|---|---|
| Product: | SDL | Reporter: | Christian Walther <cwalther> |
| Component: | build | Assignee: | Eric wing <ewmailing> |
| Status: | RESOLVED FIXED | QA Contact: | Sam Lantinga <slouken> |
| Severity: | blocker | ||
| Priority: | P2 | CC: | ewmailing |
| Version: | HG 1.2 | ||
| Hardware: | PowerPC | ||
| OS: | Mac OS X (All) | ||
|
Description
Christian Walther
2006-05-01 05:18:07 UTC
- Okay, added a new shell script phase for the suggested script. - Yeah, Xcode currently has no ability to pick and choose files for different arch's within the same target. This bit us for the asm stuff too early on. Apple's official coined response seems to be to use #defines to control this somewhat as you suggested. I looked into this specific issue about including both files and saw additional weird things. (Sometimes both versions would be built for one architecture causing multiple defines, other times neither version built causing undefined symbols. I filed a formal bug report with Apple (4542369). In the meantime, the quick fix is to do what you suggested and in the macosx/SDL_sysloadso.c, do: #ifdef SDL_LOADSO_DLOPEN #include "../dlopen/SDL_sysloadso.c" #else //#ifdef SDL_LOADSO_DLCOMPAT - Okay. The path name has been fighting me. I'm not sure why. I clear it to just a file name and at some point it reverts to an absolute path. I think its fixed now, but you should double check. Renaming from Info-Framework.plist is good. I was being lazy. I'm hesitant to reuse the info-plist. I've gotten into trouble with that before. I started modifying one and forgot it was shared by several dozen other things. So I renamed it to Info-FrameworkNoX11.plist. - I bumped up the version number to 1.2.10. From past experience, I thought this would cause programs built against older SDL versions to abort when run against the new framework, but I must be misremembering as it seems to work okay. - Building a Universal Binary in the Debug version is somewhat arbitrary on my part. The thing is that I was trying to get somebody to test on Intel for me so it was easier to build and send the Universal version to the other person. Furthermore, as we've already seen once on the mailing list, there will be people who build a framework on one architecture and will be confused when it doesn't build or run on the other. I think this will preempt the question entirely. You're right that generally, the debug version is set to $(NATIVE_ARCH), but I think that is mainly because of the compile time and the file size. SDL is fairly small and quick to build so I don't think building it as a UB for development is much of a problem. (For OpenSceneGraph which eats up over a gigabyte of disk in the debug form and takes many hours to build, I leave the debug stuff set to $(NATIVE_ARCH).) - I can see it either way. I'm pretty indifferent to this. I would say be consistent though. What ever you do for the other projects (Visual Studio, KDevelop, etc), you probably should do the same thing with Xcode. FYI, there are some warnings caused by the semi-recent modifications to SDLMain.m. I recommend these be cleaned up. |