gnu: Add java-tunnelvisionlabs-antlr4-runtime.
* gnu/packages/java.scm (java-tunnelvisionlabs-antlr4-runtime): New variable.
This commit is contained in:
		
							parent
							
								
									7d26b017d8
								
							
						
					
					
						commit
						ac292a1aa1
					
				
					 1 changed files with 76 additions and 0 deletions
				
			
		|  | @ -8555,6 +8555,82 @@ parse trees."))) | |||
|     (description "This package contains annotations used during the build of | ||||
| the runtime library of ANTLR."))) | ||||
| 
 | ||||
| ;; the runtime of this library requires a lexer that is generated by antlr4. | ||||
| ;; However, antlr4 itself requires this library at build and run-time.  We | ||||
| ;; use antlr4@4.1, the closest version of antlr that doesn't need this | ||||
| ;; bootstrap process, to generate the lexer.  The generated lexer is built | ||||
| ;; for the 4.1 runtime, which is slightly different from this runtime. | ||||
| ;; So, we build the runtime with antlr 4.1, with a broken xml lexer, that we | ||||
| ;; use to build antlr4.  We then re-use this antlr4 to build the runtime, and | ||||
| ;; the proper, working, runtime to build antlr4 again. | ||||
| (define java-tunnelvisionlabs-antlr4-runtime-bootstrap | ||||
|   (package | ||||
|     (inherit java-antlr4-runtime) | ||||
|     (name "java-tunnelvisionlabs-antlr4-runtime") | ||||
|     (version (package-version java-tunnelvisionlabs-antlr4-runtime-annotations)) | ||||
|     (source (package-source java-tunnelvisionlabs-antlr4-runtime-annotations)) | ||||
|     (arguments | ||||
|      `(#:jar-name "java-antlr4-runtime.jar" | ||||
|        #:source-dir "runtime/Java/src" | ||||
|        #:tests? #f; tests require antlr4, but antlr4 depends on this package | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-before 'build 'generate-xpath-lexer | ||||
|            (lambda _ | ||||
|              (invoke "antlr4" "-lib" "runtime/Java/src/org/antlr/v4/runtime/tree/xpath" | ||||
|                      "-visitor" "-no-listener" | ||||
|                      "-package" "org.antlr.v4.runtime.tree.xpath" | ||||
|                      "runtime/Java/src/org/antlr/v4/runtime/tree/xpath/XPathLexer.g4") | ||||
|              ;; Generated code is for an incompatible version of the runtime | ||||
|              (substitute* "runtime/Java/src/org/antlr/v4/runtime/tree/xpath/XPathLexer.java" | ||||
|                (("LexerATNSimulator\\(this,_ATN,_decisionToDFA,_sharedContextCache\\)") | ||||
|                 "LexerATNSimulator(this,_ATN)")) | ||||
|              #t)) | ||||
|          (add-before 'build 'copy-resources | ||||
|            (lambda _ | ||||
|              (copy-recursively "runtime/Java/src/main/dot" | ||||
|                                "build/classes") | ||||
|              #t))))) | ||||
|     (native-inputs | ||||
|      `(("antlr4" ,antlr4-4.1) | ||||
|        ("java-tunnelvisionlabs-antlr4-runtime-annotations" | ||||
|         ,java-tunnelvisionlabs-antlr4-runtime-annotations))))) | ||||
| 
 | ||||
| (define java-tunnelvisionlabs-antlr4-bootstrap | ||||
|   (package | ||||
|     (inherit antlr4) | ||||
|     (name "java-tunnelvisionlabs-antlr4") | ||||
|     (version (package-version java-tunnelvisionlabs-antlr4-runtime-annotations)) | ||||
|     (source (package-source java-tunnelvisionlabs-antlr4-runtime-annotations)) | ||||
|     (arguments | ||||
|      (substitute-keyword-arguments (package-arguments antlr4) | ||||
|        ((#:test-dir _) | ||||
|         "tool/test:runtime-testsuite/src") | ||||
|        ((#:phases phases) | ||||
|         `(modify-phases ,phases | ||||
|            (delete 'remove-unrelated-languages) | ||||
|            (delete 'remove-graphemes) | ||||
|            (delete 'generate-test-parsers) | ||||
|            (delete 'check))))) | ||||
|     (native-inputs '()) | ||||
|     (inputs | ||||
|      `(("antlr3" ,antlr3) | ||||
|        ("java-antlr4-runtime" ,java-tunnelvisionlabs-antlr4-runtime-bootstrap) | ||||
|        ("java-tunnelvisionlabs-antlr4-runtime-annotations" | ||||
|         ,java-tunnelvisionlabs-antlr4-runtime-annotations) | ||||
|        ("java-icu4j" ,java-icu4j) | ||||
|        ("java-jsonp-api" ,java-jsonp-api) | ||||
|        ("java-stringtemplate" ,java-stringtemplate) | ||||
|        ("java-treelayout" ,java-treelayout))))) | ||||
| 
 | ||||
| (define-public java-tunnelvisionlabs-antlr4-runtime | ||||
|   (package | ||||
|     (inherit java-tunnelvisionlabs-antlr4-runtime-bootstrap) | ||||
|     (native-inputs | ||||
|       (alist-replace | ||||
|         "antlr4" (list java-tunnelvisionlabs-antlr4-bootstrap) | ||||
|         (package-native-inputs java-tunnelvisionlabs-antlr4-runtime-bootstrap))))) | ||||
| 
 | ||||
| (define-public java-commons-cli-1.2 | ||||
|   ;; This is a bootstrap dependency for Maven2. | ||||
|   (package | ||||
|  |  | |||
		Reference in a new issue