AutoIncludeFile plugins are used to include source code files in archives. It could be that you want to bundle a source file containing a depack macro together with a segment modifier that packs a segment.
AutoIncludeFile plugins have an interface like all other plugins, but in 99% of all cases you can use the standard implementation included in the KickAssembler jar. Suppose you have a source file (MyAutoInclude.asm) with a macro you want to auto include when importing the archive:
//FILE: MyAutoInclude.asm
.macro SetColor(color) {
lda #color
sta $d020
}Then you put MyAutoInclude.asm in your jar-file in the package 'include' and add an object of the class AutoIncludeFile to your archive. You archive could look like this:
public class MyArchive implements IArchive{
@Override
public List<IPlugin> getPluginObjects() {
ArrayList<IPlugin> plugins = new ArrayList<>();
plugins.add(new SomePlugin1());
plugins.add(new SomePlugin2());
plugins.add(new AutoIncludeFile("MyArcive.jar",getClass(),"/include/MyAutoInclude.asm"));
return plugins;
}
}
In the AutoIncludeFile-constructor you give:
-
The jar-name - for use when printing error messages
-
A random 'class'-object from the jar - this is used to open the resource.
-
A path to the resource - the placement inside the jar.
The file will now be compiled with the rest of the source if the archive is imported.
For completeness, here is the IAutoIncludeFile-interface, but as mentioned, you probably wont need it.
public interface IAutoIncludeFile extends IPlugin {
AutoIncludeFileDefinition getDefinition();
InputStream openStream();
}
public class AutoIncludeFileDefinition {
private String filePath;
private String jarName;
}




