Where's the HXML docs?
Asked Answered
J

3

10

I've looked all over the Haxe Flash Command-line compiler website but was unable to find any detailed documentation of the HXML files (scroll down to the "Changing SWF properties" section) which describe the compile.

Anybody know of a reference source?


Found HXML:

  • -swf MyApp.swf .... Compile to SWF
  • -main MyAppClass .... Entry-point Class (.AS file)
  • -swf-header 200:300:25:FFFFFF .... Width:Height:FPS:BackColor (of SWF)

Edit: Scroll down for my answer with the complete list of commands.

Janessa answered 10/1, 2009 at 3:48 Comment(0)
C
6

Have you tried:

haxe --help

.hxml files are just a convenient way to pass commandline parameters as far as I know.

Carboni answered 10/1, 2009 at 13:14 Comment(2)
Is there any difference between the syntax of the command line parameters and the syntax of an .hxml file?Academe
I think that the .hxml’s support for comments is something that the commandline parser doesn’t support. E.g., I get an error if I try to pass "comment" to haxe but I can write that in .hxml just fine.Sungod
J
10

Got it! Here's the complete list of HXML / command line Options for the Haxe compiler

  • —cp : add a directory to find source files
  • —js : compile code to JavaScript file
  • —as3 : generate AS3 code into target directory
  • —swf : compile code to Flash SWF file
  • —swf9 : compile code to Flash9 SWF file
  • —swf—version : change the SWF version (6 to 10)
  • —swf—header : define SWF header (width:height:fps:color)
  • —swf—lib : add the SWF library to the compiled SWF
  • —neko : compile code to Neko Binary
  • —php : generate PHP code into target directory
  • —x : shortcut for compiling and executing a neko file
  • —xml : generate XML types description
  • —main : select startup class
  • —lib : use an haxelib library
  • —D : define a conditional compilation flag
  • —resource [@name] : add a named resource file
  • —exclude : don’t generate code for classes listed in this file
  • —v : turn on verbose node
  • —debug : add debug informations to the compiled code
  • —prompt : prompt on error
  • —cmd : run the specified command after successful compilation
  • ——flash—strict : more type strict flash API
  • ——no—traces : don’t compile trace calls in the program
  • ——flash—use—stage : place objects found on the stage of the SWF lib
  • ——neko—source : keep generated neko source
  • ——gen—hx—classes : generate hx headers from SWF9 file
  • ——next : separate several haxe compilations
  • ——display : display code tips
  • ——no—output : compiles but does not generate any file
  • ——times : measure compilation times
  • —-no—inline : disable inlining
  • ——php—front : select the name for the PHP front file
  • ——remap : remap a package to another one
  • —help : Display this list of options
  • ——help : Display this list of options
Janessa answered 10/1, 2009 at 13:49 Comment(0)
C
6

Have you tried:

haxe --help

.hxml files are just a convenient way to pass commandline parameters as far as I know.

Carboni answered 10/1, 2009 at 13:14 Comment(2)
Is there any difference between the syntax of the command line parameters and the syntax of an .hxml file?Academe
I think that the .hxml’s support for comments is something that the commandline parser doesn’t support. E.g., I get an error if I try to pass "comment" to haxe but I can write that in .hxml just fine.Sungod
T
2

For an advanced usage and some tips here is a great article by Andy Li (https://stackoverflow.com/users/267998/andy-li)

http://blog.onthewings.net/2013/03/04/hxml-tricks-every-haxe-user-should-know/


Commenting a hxml file

Lines starting with hash (#) won't be treated as arguments.

#Yay! Comments!

Run project right after compilation

Use -cmd to run any command line after successful compilation.

#C++
-cpp bin
-main Test
-cmd ./bin/Test

#Flash
-swf Test.swf  
-main Test  
-cmd path/to/FlashDebugger Test.swf

#Neko
-neko Test.n  
-main Test  
-cmd neko Test.n

For Neko target there is special shortcut for building and running -x Test.

Extra arguments

Appending arguments also works, for example if you want to build debug version

haxe project.hxml -debug

Multiple compilations at once

Use --next to separate different target/configuration builds. Use --each to apply arguments to every build within hxml.

#lib will be used in every '--next' build
-lib jQueryExtern  
--each  

#build MainPage
-js script/MainPage.js  
-main MainPage  
--next  

#build ContactPage
-js script/ContactPage.js  
-main ContactPage  

#build AlbumPage
--next  
-js script/AlbumPage.js  
-main AlbumPage

Including hxmls

You can further separate different build configurations by creating an hxml for every configuration.

client.hxml:

-main Client
-js client.js

server.hxml:

-main Server
-neko server.n

all.hxml:

client.hxml
--next
server.hxml

Builds both: haxe all.hxml

Tully answered 18/3, 2016 at 16:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.