知ってると色々と世界が広がるかもしれないHaxeのコンパイルオプション


知ってると便利かなーと思ったコンパイルオプションをリストアップしてみました。
コンパイル対象はJSに限定しています。

基本オプション

-cp コンパイル対象ファイル・ディレクトリ

コンパイル対象のhxファイルが置かれたディレクトリを指定します

-main クラス名

スタートアップクラスを指定します。
packageを作成している場合は、クラス名の前に指定します

-js 出力JSファイルパス

出力するJSファイルを指定します。

-lib ライブラリ名

利用するライブラリを指定します。

--next

複数のコンパイルを記述する場合、--nextに続けてコンパイル対象ファイルなどのオプションを記述します。

-cp src/pj1
-main pj1.Main
-js pj1.js

--next

-cp src/pj2
-main pj2.Main
-js pj2.js

コンパイル制御

コンパイル対象共通

-D コンパイルフラグ

コンパイルフラグを設定した時のみ、コンパイル対象のコードをコンパイルします。

class Main {
  import js.Lib;

  public static function main() {
    #if COMPILE
    Lib.alret("defined compile flg.");
    #end
  }
}

この時、コンパイルオプションに-D COMPILEを指定しなかった場合、
Lib.alret("defined compile flg.");と記述された行は無視されてコンパイルされます。

-resource ファイルパス@キー

ファイルパスに指定したリソースファイルをプログラム中から指定したキーを利用して呼び出す事が出来ます。
指定したファイルはシリアライズされコンパイル後のコード中にインラインで埋め込まれます。

-dce no

コンパイル時に不要なコードが削除されません。

-dce std

コンパイル時に不要な標準ライブラリのコードが削除されて出力されます。
これはhaxeのコンパイル時の標準オプションです。

-dce full

コンパイル時に不要なコードが削除されて出力されます。

--no-output

コンパイル後のファイルを出力しません。

--no-traces

コード中のtrace()を無視してコンパイルします。

javascript用オプション

-D js-classic

出力するJSコードがグローバルスペースに展開されます。
(デフォルトで出力されるJSコードは即時関数でラップされ、strictモードになります)

その他

-cmd shellコマンド等

コンパイル後に実行したいコマンドを指定します。
例えば、jsファイルを生成後に圧縮するコマンドを指定しておく…といった使い方が出来ます。

-xml ファイル名.xml

コンパイル対象のコードからhaxedocで利用するためのxmlを出力します。


手元にflash環境が無いので調べられていないのですが、
--gen-hx-classes
というオプションがswfファイル?からhaxeのexternを生成するというようなオプションで非常に便利そうだなと思いました。

明日は@mandel59さんです。
よろしくおねがいします。