Add make
as a compile task in the generator project, remove capnpc-java binary when sbt clean
is run
This commit is contained in:
parent
575158ba49
commit
0c8aeb1432
3 changed files with 22 additions and 14 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -4,3 +4,5 @@ project/target
|
|||
.idea
|
||||
*.ipr
|
||||
*.iws
|
||||
capnpc-java
|
||||
generated/
|
5
Makefile
5
Makefile
|
@ -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
|
||||
|
|
|
@ -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) => {
|
||||
|
|
Loading…
Reference in a new issue