Я совсем не много использовал GCJ, и я все еще довольно новичок в SBT, но я уверен, что вы могли бы написать быстрое задание, чтобы точно выполнить то, что вы ищете, с SBT 0.7.1. Вы можете использовать PathFinder , чтобы получить все файлы классов следующим образом:
val allClasses = (outputPath ##) ** "*.class"
Используя этот PathFinder и метод верхнего уровня "compileClasspath", вы можете создать задачу, подобную этой, которая будет запускать gcj с использованием classpath текущего проекта и объединять все файлы .class в один gcjFile:
val gcj = "/usr/local/bin/gcj"
val gcjFile = "target/my_executable.o"
val allClasses = (outputPath ##) ** "*.class"
lazy val gcjCompile = execTask {
<x>{gcj} --classpath={compileClasspath.get.map(_.absolutePath).mkString(":")} -c {allClasses.get.map(_.absolutePath).mkString("-c ")} -o {gcjFile}</x>
} dependsOn(compile) describedAs("Create a GCJ executable object")