All these methods can be called for compiler configuration macros.
Static methods
staticaddClassPath(path:String):Void
Available on neko
Add a class path where ".hx" source files or packages (sub-directories) can be found.
Usage of this function outside of initialization macros is deprecated and may cause compilation server issues.
staticaddGlobalMetadata(pathFilter:String, meta:String, recursive:Bool = true, toTypes:Bool = true, toFields:Bool = false):Void
Available on neko
Adds metadata meta
to all types (if toTypes = true
) or fields (if
toFields = true
) whose dot-path matches pathFilter
.
If recursive
is true a dot-path is considered matched if it starts
with pathFilter
. This automatically applies to path filters of
packages. Otherwise an exact match is required.
If pathFilter
is the empty String ""
it matches everything (if
recursive = true
) or only top-level types (if recursive = false
).
This operation has no effect if the type has already been loaded, e.g.
through Context.getType
.
staticaddMetadata(meta:String, className:String, ?field:String, ?isStatic:Bool):Void
Available on neko
staticaddNativeLib(name:String):Void
Available on neko
Adds a native library depending on the platform (e.g. -swf-lib
for Flash).
Usage of this function outside of initialization macros is deprecated and may cause compilation server issues.
staticdefine(flag:String, ?value:String):Void
Available on neko
Set a conditional compiler flag.
Usage of this function outside of initialization macros is deprecated and may cause compilation server issues.
staticexclude(pack:String, rec:Bool = true):Void
Available on neko
Exclude a specific class, enum, or all classes and enums in a
package from being generated. Excluded types become extern
.
Parameters:
pack | The package dot-path as String. Use |
---|---|
rec | If true, recursively excludes all sub-packages. |
staticexcludeFile(fileName:String):Void
Available on neko
Exclude classes and enums listed in an extern file (one per line) from being generated.
staticgetConfiguration():Null<CompilerConfiguration>
Available on neko
Returns all the configuration settings applied to the compiler.
Usage of this function outside a macro context returns null
.
staticgetDefine(key:Dynamic):Dynamic
A conditional compilation flag can be set on the command line using
-D key=value
.
Returns the value of a compiler flag.
If the compiler flag is defined but no value is set,
Compiler.getDefine
returns "1"
(e.g. -D key
).
If the compiler flag is not defined, Compiler.getDefine
returns
null
.
Note: This is a macro and cannot be called from within other macros. Refer
to haxe.macro.Context.definedValue
to obtain defined values in macro context.
See also:
staticgetHxbWriterConfiguration():Null<WriterConfig>
Gets the current hxb writer configuration, if any.
staticinclude(pack:String, rec:Bool = true, ?ignore:Array<String>, ?classPaths:Array<String>, strict:Bool = false):Void
Available on neko
Includes all modules in package pack
in the compilation.
In order to include single modules, their paths can be listed directly
on command line: haxe ... ModuleName pack.ModuleName
.
By default Compiler.include
will search for modules in the directories defined with -cp
.
If you want to specify a different set of paths to search for modules, you can use the optional
argument classPath
.
Usage of this function outside of initialization macros is deprecated and may cause compilation server issues.
Parameters:
pack | The package dot-path as String. Use |
---|---|
rec | If true, recursively adds all sub-packages. |
ignore | Array of module names to ignore for inclusion.
You can use |
classPaths | An alternative array of paths (directory names) to use to search for modules to include. Note that if you pass this argument, only the specified paths will be used for inclusion. |
strict | If true and given package wasn't found in any of class paths, fail with an error. |
staticincludeFile(file:Dynamic, position:Dynamic):Dynamic
Available on lua, js
Embed a JavaScript or Lua file at compile time (can be called by --macro
or within an __init__
method).
statickeep(?path:String, ?paths:Array<String>, recursive:Bool = true):Void
Available on neko
Marks types or packages to be kept by DCE.
This also extends to the sub-types of resolved modules.
In order to include module sub-types directly, their full dot path
including the containing module has to be used
(e.g. msignal.Signal.Signal0
).
This operation has no effect if the type has already been loaded, e.g.
through Context.getType
.
Parameters:
path | A package, module or sub-type dot path to keep. |
---|---|
paths | An Array of package, module or sub-type dot paths to keep. |
recursive | If true, recurses into sub-packages for package paths. |
staticnullSafety(path:String, mode:NullSafetyMode = Loose, recursive:Bool = true):Void
Available on neko
Enables null safety for a type or a package.
Parameters:
path | A package, module or sub-type dot path to enable null safety for. |
---|---|
recursive | If true, recurses into sub-packages for package paths. |
staticregisterCustomDefine(define:DefineDescription, ?source:String):Void
Available on neko
Register a custom define for documentation purposes
staticregisterCustomMetadata(meta:MetadataDescription, ?source:String):Void
Available on neko
Register a custom medatada for documentation and completion purposes
staticregisterDefinesDescriptionFile(path:String, ?source:String):Void
Available on neko
Reference a json file describing user-defined defines See https://github.com/HaxeFoundation/haxe/blob/development/src-json/define.json
staticregisterMetadataDescriptionFile(path:String, ?source:String):Void
Available on neko
Reference a json file describing user-defined metadata See https://github.com/HaxeFoundation/haxe/blob/development/src-json/meta.json
staticsetCustomJSGenerator(callb:JSGenApi ‑> Void):Void
Available on neko
Change the default JS output by using a custom generator callback
staticsetHxbWriterConfiguration(config:Null<WriterConfig>):Void
Sets the hxb writer configuration to config
. If no hxb writer configuration
exists, it is created.
The intended usage is
var config = Compiler.getHxbWriterConfiguration();
config.archivePath = "newPath.zip";
// Other changes
Compiler.setHxbWriterConfiguration(config);
If config
is null
, hxb writing is disabled.
See also:
haxe.hxb.WriterConfig
staticsetPlatformConfiguration(config:PlatformConfig):Void
Available on neko
Sets the target configuration.
Usage of this function outside a macro context does nothing.