-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
ComposeProjectProperties.kt
65 lines (50 loc) · 3.19 KB
/
ComposeProjectProperties.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
* Copyright 2020-2021 JetBrains s.r.o. and respective authors and developers.
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file.
*/
package org.jetbrains.compose.desktop.application.internal
import org.gradle.api.Project
import org.gradle.api.provider.Provider
import org.gradle.api.provider.ProviderFactory
import org.jetbrains.compose.internal.utils.toBooleanProvider
import org.jetbrains.compose.internal.utils.valueOrNull
internal object ComposeProperties {
internal const val VERBOSE = "compose.desktop.verbose"
internal const val PRESERVE_WD = "compose.preserve.working.dir"
internal const val MAC_SIGN = "compose.desktop.mac.sign"
internal const val MAC_SIGN_ID = "compose.desktop.mac.signing.identity"
internal const val MAC_SIGN_KEYCHAIN = "compose.desktop.mac.signing.keychain"
internal const val MAC_SIGN_PREFIX = "compose.desktop.mac.signing.prefix"
internal const val MAC_NOTARIZATION_APPLE_ID = "compose.desktop.mac.notarization.appleID"
internal const val MAC_NOTARIZATION_PASSWORD = "compose.desktop.mac.notarization.password"
internal const val MAC_NOTARIZATION_TEAM_ID_PROVIDER = "compose.desktop.mac.notarization.teamID"
internal const val CHECK_JDK_VENDOR = "compose.desktop.packaging.checkJdkVendor"
internal const val ALWAYS_GENERATE_RESOURCE_ACCESSORS = "compose.resources.always.generate.accessors"
internal const val SYNC_RESOURCES_PROPERTY = "compose.ios.resources.sync"
fun isVerbose(providers: ProviderFactory): Provider<Boolean> =
providers.valueOrNull(VERBOSE).toBooleanProvider(false)
fun preserveWorkingDir(providers: ProviderFactory): Provider<Boolean> =
providers.valueOrNull(PRESERVE_WD).toBooleanProvider(false)
fun macSign(providers: ProviderFactory): Provider<Boolean> =
providers.valueOrNull(MAC_SIGN).toBooleanProvider(false)
fun macSignIdentity(providers: ProviderFactory): Provider<String?> =
providers.valueOrNull(MAC_SIGN_ID)
fun macSignKeychain(providers: ProviderFactory): Provider<String?> =
providers.valueOrNull(MAC_SIGN_KEYCHAIN)
fun macSignPrefix(providers: ProviderFactory): Provider<String?> =
providers.valueOrNull(MAC_SIGN_PREFIX)
fun macNotarizationAppleID(providers: ProviderFactory): Provider<String?> =
providers.valueOrNull(MAC_NOTARIZATION_APPLE_ID)
fun macNotarizationPassword(providers: ProviderFactory): Provider<String?> =
providers.valueOrNull(MAC_NOTARIZATION_PASSWORD)
fun macNotarizationTeamID(providers: ProviderFactory): Provider<String?> =
providers.valueOrNull(MAC_NOTARIZATION_TEAM_ID_PROVIDER)
fun checkJdkVendor(providers: ProviderFactory): Provider<Boolean> =
providers.valueOrNull(CHECK_JDK_VENDOR).toBooleanProvider(true)
//providers.valueOrNull works only with root gradle.properties
fun alwaysGenerateResourceAccessors(project: Project): Provider<Boolean> = project.provider {
project.findProperty(ALWAYS_GENERATE_RESOURCE_ACCESSORS)?.toString().equals("true", true)
}
fun syncResources(providers: ProviderFactory): Provider<Boolean> =
providers.valueOrNull(SYNC_RESOURCES_PROPERTY).toBooleanProvider(true)
}