Growlを自力でビルドする
この記事はGrowlを自力でビルドする - BlueberryStream@ついったー部 - はてなグループ::ついったー部で書いたものを移植したものです。
ちょっと前、といっても半年以上前?だっけか、それくらいからGrowlが有料になってしまったけど、変わらずにオープンソースなままなのでビルドする人はどうぞって状態になっていて、んじゃいっちょビルドしてみますかーってことで試行錯誤したので最善な手順を書き残しておこうかなって。
基本見るべきもの
環境
MacOSX Mountain Lion
手順
- App StoreからXcodeをインストールする
- 1.7GBくらいあってすごい時間かかった。App Storeってなんであんなにダウンロード遅いんだろうね。
- $ defaults write com.apple.dt.XCode IDEIndexDisable 1
- XcodeがIndexingしないようにする。
- ktdbsのblog : XCode4のIndexingがめちゃめちゃ重い http://blog.livedoor.jp/ktdbs/archives/93304.html
- Apple's Command Line Developer Toolsをインストールする
- Xcodeから入れられるらしい。知らずに専用のpkgをDLしてインストールした。
- $ xcodebuild -license
- MacPortsのページにあるように忘れずにしておく
- The MacPorts Project -- Download & Installation http://www.macports.org/install.php
- MacPortsをpkgからインストールする
- Mercurialのため
- Mercurialをインストールする
- Mac OS X に MacPorts 経由で Mercurial をインストール | no rain, no rainbow http://yasakawa.blogspot.jp/2010/05/mac-os-x-macports-mercurial.html
- Growlのソースコードを取得する
- 取得する前にワークスペースを mkdir & cd しておくとか
- $ export LC_ALL="en_US.UTF-8"
- $ hg clone https://code.google.com/p/growl/
- $ hg tags | sort
- Growl.appのlatest stableのtagを覚えておく
- hg update "Growl.app 2.0"
- tagは覚えておいたやつを入れる
- Growlのビルド時に必要になるコードサイニング証明書を作る
- Growl.xcodeprojを開く
- ビルドする…といきたいところだけれど、ここからがまたひどい。
Growl.app 2.0で手直ししないといけないところ
めんどうなのでdiffでそのまま
diff -r 30319c3f160c Core/Source/GrowlOnSwitch.h --- a/Core/Source/GrowlOnSwitch.h Wed Sep 05 21:41:58 2012 -0500 +++ b/Core/Source/GrowlOnSwitch.h Mon Oct 08 18:01:09 2012 +0900 @@ -9,7 +9,10 @@ #import <Foundation/Foundation.h> #import "TMSliderControl.h" -@interface GrowlOnSwitch : TMSliderControl +@interface GrowlOnSwitch : TMSliderControl { + NSTextField *_onLabel; + NSTextField *_offLabel; +} @property (nonatomic, retain) IBOutlet NSTextField *onLabel; @property (nonatomic, retain) IBOutlet NSTextField *offLabel; diff -r 30319c3f160c Extras/HardwareGrowler/HardwareGrowler/AppDelegate.h --- a/Extras/HardwareGrowler/HardwareGrowler/AppDelegate.h Wed Sep 05 21:41:58 2012 -0500 +++ b/Extras/HardwareGrowler/HardwareGrowler/AppDelegate.h Mon Oct 08 18:01:09 2012 +0900 @@ -54,6 +54,8 @@ NSString *iconInDock; NSString *iconInBoth; NSString *noIcon; + + ProcessSerialNumber previousPSN; } @property (nonatomic, retain) IBOutlet NSString *showDevices;
つづきの手順
HardwareGrowlerのビルド
HardwareGrowlerのビルドについても書きたかったけど、やることは基本的にはGrowl.appと同じ。hg updateで目的のtagにするのだけ忘れないように。なんかビルドエラー出たらがんばってコードを直すとかプロジェクトの設定いじってコードサイニングのところいじるとか。
diffは上記のやつに混じっちゃってるっぽい。