fcshを使う

Flex SDKのbinディレクトリ内にはいろいろな実行ファイルがあるのですが、その中にfcshというモノがあります。いろいろなblogでたまに書かれているのですが、どうやらキャッシュを使って2回目以降のコンパイルを高速に行ってくれるモノらしいです。

というわけで、ちょっとfcsh (Flex Compiler SHell)を使ってみます。

fcsh

まず、mxmlcコンパイルできるソースを用意します。
最初に、fcshを立ち上げてから、その中でmxmlcを呼び出しコンパイルします。

C:\prj\test>fcsh
Adobe Flex Compiler SHell (fcsh)
Version 3.0.0 build 477
Copyright (c) 2004-2007 Adobe Systems, Inc. All rights reserved.

(fcsh) mxmlc Test.as
fcsh: コンパイルのターゲット ID として 1 が割り当てられました
Loading configuration file C:\FlexSDK\frameworks\flex-config.xml
Loading configuration file C:\prj\Test\Test-config.xml
C:\prj\Test\Test.swf (93284 bytes)

上記メッセージから、このコンパイル実行にターゲット IDというものが割り当てられ、それが1であることが分かります。
ソースを修正しないで、もう一度コンパイルしてみます。今度は先ほど割り当てられたターゲットIDを使って、compile 1と実行します。

(fcsh) compile 1
Loading configuration file C:\FlexSDK\frameworks\flex-config.xml
Loading configuration file C:\prj\Test\Test-config.xml
最後のコンパイル以降何も変更されていません。スキップします...
C:\prj\Test\Test.swf (93285 bytes)

実はこのあたりが高速に行われており、ソースを修正しても、最低限の再コンパイルのみ行うようになっています。この速度がかなり速いので、規模が大きくなってきたプロジェクトは必須ですね。

fcshで使えるコマンド

以下のようにして、fcshヘルプを使ってみるが、以下のように何も表示されない。

(fcsh) help
fcsh コマンドのリスト :

しかし、Adobeのlivedocs内のドキュメントを探したらコマンド一覧があったので、簡単に抜粋します。

clear [id] メモリからターゲットIDを削除します。ID引数を指定しなかった場合、すべてののターゲットIDをクリアします。
compile id (上記参照)
compc arg1 [...] 特定のソースの SWC ファイルをコンパイルします。
info [id] コンパイラターゲットの情報を表示します。ID引数を指定しなかった場合、すべてのターゲットの情報が表示されます。
mxmlc arg1 [...] (上記参照)
quit fcshを終了します。

以上でさらにFlex SDKが使いやすくなりました。

関連書籍

もしかして?と思い、手元にあった「Adobe Flex 2 プロフェッショナルガイド」を見てみたら、p.40に載っていました。

Adobe Flex 2プロフェッショナルガイド Windows & Macintosh対応

Adobe Flex 2プロフェッショナルガイド Windows & Macintosh対応