@Override
public void build(@NotNull MonkeyBuildTarget target, @NotNull DirtyFilesHolder<MonkeySourceRootDescriptor, MonkeyBuildTarget> holder,
@NotNull BuildOutputConsumer outputConsumer, @NotNull CompileContext context) throws ProjectBuildException, IOException {
LOG.debug(target.getPresentableName());
if (!target.isTests() && !holder.hasDirtyFiles() && !holder.hasRemovedFiles()) {
return;
}
JpsModule jpsModule = target.getModule();
if (jpsModule.getModuleType() != JpsMonkeyModuleType.INSTANCE) return;
JpsTypedModule<JpsSimpleElement<JpsMonkeyModuleProperties>> module = jpsModule.asTyped(JpsMonkeyModuleType.INSTANCE);
assert module != null;
JpsMonkeyModuleProperties monkeyModuleProperties = getModuleProperties(target);
JpsSdk<JpsDummyElement> sdk = getSdk(context, jpsModule);
JpsMonkeySdkType.SdkVersion sdkVersion = JpsMonkeySdkType.getSdkVersion(sdk);
if (target.isTests() && !JpsMonkeySdkType.hasUnitTestsSupport(sdkVersion)) {
return;
}
for (String contentRootUrl : jpsModule.getContentRootsList().getUrls()) {
String outputPrg = buildPrgForSimulator(target, context, contentRootUrl, sdk, false, monkeyModuleProperties);
File outputPrgFile = new File(outputPrg);
Set<String> sourcePaths = Collections.singleton(contentRootUrl);
outputConsumer.registerOutputFile(outputPrgFile, sourcePaths);
}
}