1 /*
2  * Copyright 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package androidx.build.gradle
18 
19 import org.gradle.api.Project
20 
21 val Project.isRoot
22     get() = this == rootProject
23 
24 /**
25  * Implements project.extensions.extraProperties.getOrNull(key)
26  *
27  * TODO(https://github.com/gradle/gradle/issues/28857) use simpler replacement when available
28  *
29  * Note that providers.gradleProperty() might return null in cases where this function can find a
30  * value: https://github.com/gradle/gradle/issues/23572
31  */
extraPropertyOrNullnull32 fun Project.extraPropertyOrNull(key: String): Any? {
33     val container = project.extensions.extraProperties
34     var result: Any? = null
35     if (container.has(key)) result = container.get(key)
36     return result
37 }
38