15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HaxeAdvent Calendar 2013

Day 1

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

Last updated at Posted at 2013-12-01

知ってると便利かなーと思ったコンパイルオプションをリストアップしてみました。
コンパイル対象は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さんです。
よろしくおねがいします。

15
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?