in sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveFeature.java [143:165]
public void afterImageWrite(AfterImageWriteAccess access) {
FeatureImpl.AfterImageWriteAccessImpl a = (FeatureImpl.AfterImageWriteAccessImpl) access;
Path outputDirectory = NativeImageGenerator.generatedFiles(a.getUniverse().getBigBang().getOptions());
Path tempDirectory = ImageSingletons.lookup(TemporaryBuildDirectoryProvider.class).getTemporaryBuildDirectory();
try {
if (Files.notExists(outputDirectory)) {
Files.createDirectory(outputDirectory);
}
Files.walkFileTree(tempDirectory, new SimpleFileVisitor<>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
String fileName = file.getFileName().toString();
if (fileName.endsWith(".o") || fileName.endsWith(".h")) {
Path target = outputDirectory.resolve(fileName).toAbsolutePath();
Files.copy(file, target, StandardCopyOption.REPLACE_EXISTING);
}
return FileVisitResult.CONTINUE;
}
});
} catch (IOException e) {
VMError.shouldNotReachHere("Fail to copy file from temporary", e);
}
}