2010年8月25日水曜日

FlexBuilder4でカスタムのswcライブラリをRSLとして使用するには?

メインプログラムのサイズを小さくするためや、LGPLなライブラリを使用するためなどの理由(LGPLは動的リンクならソース公開の義務がないため)で、FPのRSL(Runtime Shared Library)機能を使いたい場合がある。

ライブラリはメインプログラムにマージすることばかりだったので今まで気づかなかったのだけれど、FlexBuilder4のプロジェクトを作ると自動的にできるlibsフォルダに配置したswcファイル(ライブラリ)はRSL化できないようだ。「コードにマージされます」か「外部」しか選択できないから。


そこで、

1. プロジェクトに「rsl」などという適当なフォルダを作る
2. そこにRSL化したいswcを配置
3. 「プロジェクト」>「プロパティー」>「Flexビルドパス」>「ライブラリパス」と移動
4. 「SWCの追加」でswcを追加
5. 追加したswcのツリーを開く
6. 「リンクタイプ」をクリック
7. 「編集」
8. 「リンクタイプ」を「ランタイム共有ライブラリ(RSL)」に変更


するとbin-debugフォルダに追加したswcがswfと拡張子が変更されてコピーされる。swcとswfのバイト数を比較してみたら、若干swfの方が小さかったので、自動的に何らかの変換が行われる模様。

とにかく、これでswcをRSLとして動作させることができた。