JTransc unsderstand some annotations that are defined in the jtransc-rt-core repository. You can find the complete list of annotations here.
@JTranscIgnoreDependencies() - It will ignore referenced classes, methods and fields in that method because it will include a specific method body. Use this carefully.@JTranscInline - Marks a specific method as inline. When supported it will inline its body in the callee. Use this carefully, on small one-liner methods, as this could lead to worse performance in some cases.@JTranscInvisible - Marks the class, method or field as invisible reflection-wise, so no reflection information is available at runtime, reducing output size.@JTranscInvisibleExternal({"fq.class1","fq.class2"}) - From another class, externally allows to mark several other classes as invisible reflection-wise.@JTranscKeep - Keeps all methods/fields in this class, or a specific field or method on the output when performing dead code elimination.@JTranscKeepName - Keeps the original name of a class, method or field. Unadvised. Use Minitemplates to reference stuff from the outside.@JTranscNative - Keeps the original name of a class, method or field. Unadvised. Use Minitemplates to reference stuff from the outside.@JTranscNativeClass - Marks a class as Native and specifies an external fqname for it.@KeepConstructors - Keep all the constructors of the class and inherited classes even when not referenced. Used when instantiating a class reflectively at runtime.@KeepFields - Keep all fields in the class and inherited classes, so they can be written or readed reflectively.@KeepMethods - Keep all methods in the class and inherited classes, so they can be called at runtime reflectivelyWhen targeting to Haxe, there are some annotations you can use:
@HaxeAddAssets({"file1", "file2}) - Include some files as assets@HaxeAddFilesBeforeBuildTemplate({"file1", "file2"}) - Include to the target generated sources folder some files from resources folder and process using Minitemplates. Just before building, after knowing everything from the program.@HaxeAddFilesRaw({"file1", "file2"}) - Include to the target generated sources folder some files from resources folder without processing them just as they are.@HaxeAddFilesTemplate - Include to the target generated sources folder some files from resources folder and process using Minitemplates@HaxeAddLibraries({"haxe-ws:0.0.6"}) - Include one or more haxe libraries. In the form: name:version@HaxeAddMembers({"var field:Int;"}) - Add some lines at class level. This could include fields, or methods.@HaxeMeta - Adds text to the output at meta places. So you can add custom haxe metas.@HaxeMethodBody(target=name, value=...) - Body of the method for the specified target. This annotation is @Repeteable using HaxeMethodBodyList annotation. Argument names are p0, p1, p2…@HaxeMethodBodyPre - Haxe Source to be prepended to the method for all haxe subtargets@HaxeMethodBodyPost - Haxe Source to be appended to the method for all haxe subtargets@HaxeMethodBodyList({...bodies}) - A list of method bodies@HaxeNativeConversion - Specifies a custom Haxe <-> Java conversion for the annotated class.@HaxeRemoveField - The specified field won’t be included in the generated output source.JTransc allows to define custom builds. Instead of calling Haxe, you can call other command line.
jtransc-media-lime is a great example about how to create custom targets.
@HaxeAddSubtarget(...) - Add a haxe custom target that can be used with some custom tooling@HaxeAddSubtargetList{...targets} - Add a list of haxe custom targets@HaxeCustomBuildCommandLine - Specify a custom command line for building@HaxeCustomMain - Defines a custom main, in the case your tooling requires the bootstrap entry point for example to extend a class.@JTranscField("name") - Specify a field name on external classes.@JTranscMethod("name") - Specify a field name on external classes.@JTranscGetter("name") - Specify that a method is the getter of an specific field on an external class.@JTranscSetter("name") - Specify that a method is the setter of an specific field on an external class.@JTranscNativeClassImpl - Deprecated@JTranscPackageClass - Deprecated@JTranscPackageClassImpl - Deprecated@JTranscReferenceClass - Deprecated@HaxeImports - Deprecated