summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2014-06-06 17:08:58 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-06-06 17:08:58 -0400
commitf34682f11247910aff663eee2b4020234c65702f (patch)
tree38d35b3bfcbedb6ec88cf7fd477f3f7339df460a
parent8d8befb89e68217a61ce63399bb58d930332c1a4 (diff)
add QDox 2
-rw-r--r--conf/dependencies.mk2
-rw-r--r--conf/sources.mk1
-rw-r--r--rules/generic/Makefile2
-rw-r--r--rules/qdox/delete.list1
-rw-r--r--rules/qdox/generated-sourced.mk26
5 files changed, 31 insertions, 1 deletions
diff --git a/conf/dependencies.mk b/conf/dependencies.mk
index 76d0ea8..fa9ab97 100644
--- a/conf/dependencies.mk
+++ b/conf/dependencies.mk
@@ -72,6 +72,8 @@ build/packages/plexus-container-default: \
build/packages/guava: \
$(dep-jsr305)
+build/packages/qdox: \
+ build/packages/jflex
build/packages/jdom1: \
build/packages/jaxen-bootstrap \
diff --git a/conf/sources.mk b/conf/sources.mk
index 0c75153..e96b0de 100644
--- a/conf/sources.mk
+++ b/conf/sources.mk
@@ -22,6 +22,7 @@ plexus-interpolation = git|git://github.com/sonatype/ple
plexus-utils = git|git://github.com/sonatype/plexus-utils.git|plexus-utils-3.0.17
guava = git|https://code.google.com/p/guava-libraries/|v17.0/guava
+qdox = tar|http://nexus.codehaus.org/content/repositories/releases/com/thoughtworks/qdox/qdox/2.0-M1/qdox-2.0-M1-project.tar.bz2
# Is missing support for jom4j and xom
jaxen-bootstrap = tar|http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.6-src.tar.gz
diff --git a/rules/generic/Makefile b/rules/generic/Makefile
index 89e2afc..c54d714 100644
--- a/rules/generic/Makefile
+++ b/rules/generic/Makefile
@@ -68,7 +68,7 @@ target/META-INF/maven/$(groupId)/$(artifactId)/pom.properties: pom.xml
target/classes: $(call dep_optdir,$(sourceDirectory))
$(MKDIRS) $@
- $(if $^,$(FIND) $(sourceDirectory) -name '*.java' -exec $(JAVAC) -d $@ {} + || { $(RM) -r $@; exit 1; })
+ @echo JAVAC; $(if $^,$(JAVAC) -d $@ $(filter %.java,$^) || { $(RM) -r $@; exit 1; })
# install
diff --git a/rules/qdox/delete.list b/rules/qdox/delete.list
new file mode 100644
index 0000000..b7c200a
--- /dev/null
+++ b/rules/qdox/delete.list
@@ -0,0 +1 @@
+bootstrap
diff --git a/rules/qdox/generated-sourced.mk b/rules/qdox/generated-sourced.mk
new file mode 100644
index 0000000..350512e
--- /dev/null
+++ b/rules/qdox/generated-sourced.mk
@@ -0,0 +1,26 @@
+BYACCJ = byaccj
+JAVA = java
+JFLEX = $(JAVA) -jar $(call jarfind,jflex)
+qdox.javaparser.stack = 500
+
+basedir = $(shell pwd)
+jarfind = $(firstword $(foreach path,$(subst :, ,$(CLASSPATH)),$(if $(findstring $1,$(path)),$(path))))
+parserpkg = com.thoughtworks.qdox.parser.impl
+parserdir = target/generated-sources/parser/$(subst .,/,$(parserpkg))
+byaccj_flags = -Jnorun -Jnoconstruct -Jpackage=$(parserpkg)
+
+$(parserdir)/DefaultJavaCommentLexer.java: src/grammar/commentlexer.flex
+ $(JFLEX) -d $(@D) $<
+
+$(parserdir)/JFlexLexer.java: src/grammar/lexer.flex
+ $(JFLEX) -d $(@D) $<
+
+$(addprefix $(parserdir)/DefaultJavaCommentParser,.java Val.java): src/grammar/commentparser.y
+ $(MKDIRS) $(@D)
+ cd $(@D) && $(BYACCJ) $(byaccj_flags) -Jclass=DefaultJavaCommentParser ${basedir}/$<
+
+$(parserdir)/Parser.java: src/grammar/parser.y
+ $(MKDIRS) $(@D)
+ cd $(@D) && $(BYACCJ) $(byaccj_flags) -Jclass=Parser -Jimplements=CommentHandler -Jsemantic=Value -Jstack=${qdox.javaparser.stack} ${basedir}/$<
+
+target/classes: $(addprefix $(parserdir)/,DefaultJavaCommentLexer.java JFlexLexer.java DefaultJavaCommentParser.java DefaultJavaCommentParserVal.java Parser.java)