/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ apply plugin: "de.undercouch.download" configure(rootProject) { ext { momanDir = file("${buildDir}/moman") } task moman() { description "Regenerate Moman-based sources for ...lucene/util/automaton and ...lucene/util/packed." group "generation" dependsOn ":lucene:core:utilGenPacked" dependsOn ":lucene:core:utilGenLev" } task installMoman(type: Download) { def momanZip = file("${momanDir}/moman.zip") src "https://github.com/jpbarrette/moman/archive/497c90e34e412b6494db6dabf0d95db8034bd325.zip" dest momanZip onlyIfModified true doLast { ant.unzip(src: momanZip, dest: momanDir, overwrite: "true") { ant.cutdirsmapper(dirs: "1") } } } } configure(project(":lucene:core")) { task utilGenPacked(dependsOn: rootProject.installMoman) { description "Regenerate util/PackedBulkOperationsPacked*.java and Packed64SingleBlock.java" group "generation" doLast { def targetDir = file("src/java/org/apache/lucene/util/packed") ['gen_BulkOperation.py', 'gen_Packed64SingleBlock.py'].each { prog -> logger.lifecycle("Executing: ${prog} in ${targetDir}") project.exec { workingDir targetDir executable "python3" args = ['-B', "${prog}"] } } // Correct line endings for Windows. project.ant.fixcrlf( srcDir: targetDir, includes: 'Packed64SingleBlock.java, BulkOperation*.java', encoding: 'UTF-8', eol: 'lf' ) } } task utilGenLev(dependsOn: rootProject.installMoman) { description "Regenerate util/automaton Lev*ParametricDescription.java" group "generation" doLast { def targetDir = file("src/java/org/apache/lucene/util/automaton") ['1', '2'].each { num -> ['True', 'False'].each { transpose -> project.exec { workingDir targetDir executable "python3" args = ['-B', 'createLevAutomata.py', num, transpose, "${momanDir}/finenight/python"] } } } project.ant.fixcrlf( srcDir: targetDir, includes: '*ParametricDescription.java', encoding: 'UTF-8', eol: 'lf' ) } } }