quicksilver/Firefox-qsplugin — comment on commit 2a4c8c43fd1027d0d558895f7fafecdbb13ca015
File:  line 0
By tiennou:

I actually set up the .xcconfig files to support that workflow. But it was in pre-Xcode 4 days (I guess there's another way through Workspaces now, but I'm still not up to speed w.r.t to Xcode 4 changes).

> 1. make sure they’re properly including the configuration

by checking that targets and projects are dependent on the correct configuration files.

> 2. make sure they aren’t overriding it locally

by deleting overrides not coming from the xcconfig files.

But you already figured that ;-).

Right, do it like that, and changing the main Configuration/* files propagate across all plugins. There had been a time where I wanted to setup the main Quicksilver repo with a git submodule to the main plugin repo, so that cloning QS would get all the plugins with it... I don't know if it's worth the hassle for now (forcing the Plugins repo on *all* developers feels like a bad thing too).

> I'm not sure. When building 32/64 bit plugins, is it enough to change the build settings of the target? Or do you need to change the build settings of the project as well? I was never really sure what the difference was between those two.

For the record (though the Xcode 4 GUI makes that clear for once :-S) : Target-level settings overrides Target-level config file settings which override Project-level settings which override Project-level config file settings (which in turn override what Apple calls "Mac OS Defaults".

I would say it depends on what you're trying to do. If you're just tweaking stuff, keep it local to the project. If it's a setting that you would like to set as the default *everywhere* use either Common.xcconfig or Debug/Release.xconfig. If you just want to apply that to plugins, use QSPlugin.xcconfig, or QSPlugin_Debug/Release.xcconfig.

IIRC, 64bit plugins *will* require a 64bit app to link, because the plugins bundle_loader is set to the QS app (so that the linker tries to resolve missing symbols from the plugins by looking in the app & frameworks). Again, I'm not even sure what is the point of the "My 32/64bit Mac" setting, and how it influes on the universal-ness of QS.