Add make as a compile task in the generator project, remove capnpc-java binary when sbt clean is run

This commit is contained in:
Adam Rosenberger 2014-05-16 13:16:00 -04:00
parent 575158ba49
commit 0c8aeb1432
3 changed files with 22 additions and 14 deletions

2
.gitignore vendored
View file

@ -4,3 +4,5 @@ project/target
.idea
*.ipr
*.iws
capnpc-java
generated/

View file

@ -5,11 +5,10 @@ CAPNPC_JAVA_SOURCES=generator/src/main/cpp/compiler/capnpc-java.c++
.PHONY: all clean addressbook
all : capnpc-java addressbook
all : capnpc-java
clean :
rm capnpc-java
sbt clean
capnpc-java : $(CAPNPC_JAVA_SOURCES)
$(CXX) $(CAPNPC_JAVA_SOURCES) $(CXX_FLAGS) -g -o capnpc-java
@ -18,4 +17,4 @@ addressbook : capnpc-java
PWD=pwd
mkdir -p examples/src/main/generated
capnp compile -I$(PWD)/generator/src/main/cpp/compiler --src-prefix=examples/src/main/schema -o./capnpc-java:examples/src/main/generated examples/src/main/schema/addressbook.capnp
sbt examples/"compile"
sbt examples/compile

View file

@ -1,6 +1,5 @@
import sbt.Keys._
import sbt._
import org.sbtidea.SbtIdeaPlugin._
object Build extends sbt.Build {
@ -9,25 +8,27 @@ object Build extends sbt.Build {
id = "capnproto-java",
base = file(".")
).aggregate(generator, examples)
.settings(cleanFiles <+= baseDirectory { base => base / "capnpc-java"})
lazy val generator =
project(
id = "generator",
base = file("generator")
).settings(Defaults.itSettings: _*)
.settings(compile <<= compile in Compile dependsOn(compile in Test, compile in IntegrationTest))
.settings(makeCppTask)
.settings(compile <<= compile in Compile dependsOn makeCpp)
lazy val examples =
project(
id = "examples",
base = file("examples")
).dependsOn(generator)
.settings(unmanagedSourceDirectories in Compile += sourceDirectory.value / "main" / "generated")
.settings(publish := {})
.settings(publishLocal := {})
.settings(fork in run := true)
.settings(outputStrategy := Some(StdoutOutput))
.settings(javaOptions in run ++= Seq(
.settings(unmanagedSourceDirectories in Compile += sourceDirectory.value / "main" / "generated")
.settings(publish := {})
.settings(publishLocal := {})
.settings(fork in run := true)
.settings(outputStrategy := Some(StdoutOutput))
.settings(javaOptions in run ++= Seq(
"-ms2g",
"-mx2g",
"-XX:+AlwaysPreTouch",
@ -43,6 +44,12 @@ object Build extends sbt.Build {
Shared.settings ++
Seq(libraryDependencies ++= Shared.testDeps)
).configs(IntegrationTest)
val makeCpp = taskKey[Unit]("Run make against the C++ code to create the Java code generator")
val makeCppTask = makeCpp := {
val makeResult = "make".!!
println(s"**** C++ Build Started\n$makeResult\n**** C++ Build Complete")
}
}
object Shared {
@ -76,9 +83,9 @@ object ShellPrompt {
}
def currBranch = (
("git status -sb" lines_! devnull headOption)
getOrElse "-" stripPrefix "## "
)
("git status -sb" lines_! devnull headOption)
getOrElse "-" stripPrefix "## "
)
val buildShellPrompt = {
(state: State) => {