lucene/gradle/defaults.gradle

77 lines
2.7 KiB
Groovy

/*
* 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.
*/
allprojects {
apply plugin: 'base'
group "org.apache"
// Repositories to fetch dependencies from.
repositories {
mavenCentral()
}
// Artifacts will have names after full gradle project path
// so :solr:core will have solr-core.jar, etc.
project.archivesBaseName = project.path.replaceAll("^:", "").replace(':', '-')
ext {
// Utility method to support passing overrides via -P or -D.
propertyOrDefault = { propName, defValue ->
def result
if (project.hasProperty(propName)) {
result = project.getProperty(propName)
} else if (System.properties.containsKey(propName)) {
result = System.properties.get(propName)
} else if (defValue instanceof Closure) {
result = defValue.call()
} else {
result = defValue
}
return result
}
// System environment variable or default.
envOrDefault = { envName, defValue ->
return Objects.requireNonNullElse(System.getenv(envName), defValue);
}
// Either a project, system property, environment variable or default value.
propertyOrEnvOrDefault = { propName, envName, defValue ->
return propertyOrDefault(propName, envOrDefault(envName, defValue));
}
// Locate script-relative resource folder. This is context-sensitive so pass
// the right buildscript (top-level).
scriptResources = { buildscript ->
return file(buildscript.sourceFile.absolutePath.replaceAll('.gradle$', ""))
}
// LUCENE-9505: utility function that sets up dummy outputs for a task so that
// clean[TaskName] works and allows selective re-runs.
setupDummyOutputs = { Task task ->
File dummyOutput = file("${task.project.buildDir}/tasks/${task.name}/dummy-output.txt")
task.outputs.file(dummyOutput)
task.doLast {
if (!dummyOutput.exists()) {
dummyOutput.createNewFile()
}
}
}
}
}