Wincent Colaiuta [Sun, 7 Nov 2010 18:45:39 +0000 (19:45 +0100)]
Continue bootstrapping process after application launch is underway
Our "activate" method never returns because we call -[NSApplication run]
from it, which means that we need to continue the plug-in loading
process in a callback.
Wincent Colaiuta [Sun, 7 Nov 2010 18:43:06 +0000 (19:43 +0100)]
Use fusion-plugin-target.xcconfig file
Note this is the first reference we're making to a project outside of
the SRCROOT (ie. we now officially require the fusion project to be
checked out alongside this one in order to build successfully; we don't
use submodules, although in this case we probably could consider doing
so if we want to make independent builds as easily as possible).
Wincent Colaiuta [Sat, 6 Nov 2010 20:28:10 +0000 (21:28 +0100)]
Set up NSApp
Right now this doesn't do anything very useful (ie. we don't even load a
nib) but it demonstrates how a pure plug-in architecture can hand off
control to a plug-in which takes over the booting process.
Wincent Colaiuta [Sat, 6 Nov 2010 18:54:02 +0000 (19:54 +0100)]
Add stub WOFBase class
This will be the principal class for the plug-in. Note how we link
against Foundation rather than CoreFoundation in order to have access to
things like NSLog(), and evidently more later on.
Wincent Colaiuta [Sat, 6 Nov 2010 15:49:02 +0000 (16:49 +0100)]
Rationalize names (executable, identifier etc)
We really have 3 separate names here:
- the human-friendly project name: fusion-base
- this name is used for things like the official repository name, the
Xcode project file etc
- it's chosen to be easily readable, and suitable for use as part of
Git repository URLs, web page URLs etc
- the bundle indentifier: com.wincent.fusion.base
- this is used so that plug-ins can declare dependencies on one
another
- all Wincent-authored plug-ins will follow this scheme; eg.
- com.wincent.fusion.prefs (preferences window)
- com.wincent.fusion.help (help window)
- in the case of plug-ins which are not generic/re-usable "Fusion"
plug-ins, but are specific to a given app, the identifier won't
contain "fusion" as a component; eg.
- com.wincent.synergy.audioscrobbler
or a third-party plug-in:
- com.example.foo.bar
- the executable/bundle name: WOFBase
- this is used for the executable, the bundle wrapper itself, and will
be the "principal class" of the bundle
- here we stick with the three-letter "namespace" of WOF used in the
Fusion framework itself