Files
assistant-android/settings.gradle
2025-05-15 16:49:29 +08:00

169 lines
6.0 KiB
Groovy

// 不启用可选模块,默认启用需手动开启
gradle.ext.excludeOptionalModules
= gradle.startParameter.projectProperties.get('EXCLUDE_OPTIONAL_MODULES')?.toBoolean() ?: false
// 当 excludeOptionalModule 为 true 时,需要手动 enable 需要用到的 module
gradle.ext.enablePkg = gradle.startParameter.projectProperties.get('ENABLE_PKG')?.toBoolean() ?: false
gradle.ext.enableFeedback = gradle.startParameter.projectProperties.get('ENABLE_FEEDBACK')?.toBoolean() ?: false
gradle.ext.enableMessage = gradle.startParameter.projectProperties.get('ENABLE_MESSAGE')?.toBoolean() ?: false
gradle.ext.enableOaid = gradle.startParameter.projectProperties.get('ENABLE_OAID')?.toBoolean() ?: false
gradle.ext.enableFloatingWindow = gradle.startParameter.projectProperties.get('ENABLE_FLOATING_WINDOW')?.toBoolean() ?: false
gradle.ext.enableSensorData = gradle.startParameter.projectProperties.get('ENABLE_SENSOR_DATA')?.toBoolean() ?: false
gradle.ext.enableCsjAd = gradle.startParameter.projectProperties.get('ENABLE_CSJ_AD')?.toBoolean() ?: false
gradle.ext.enableQQGame = gradle.startParameter.projectProperties.get('ENABLE_QQ_GAME')?.toBoolean() ?: false
gradle.ext.enablePush = gradle.startParameter.projectProperties.get('ENABLE_PUSH')?.toBoolean() ?: false
gradle.ext.enableSentry = gradle.startParameter.projectProperties.get('ENABLE_SENTRY')?.toBoolean() ?: false
gradle.ext.enableVa = gradle.startParameter.projectProperties.get('ENABLE_VA')?.toBoolean() ?: false
gradle.ext.enableQuickLogin = gradle.startParameter.projectProperties.get('ENABLE_QUICK_LOGIN')?.toBoolean() ?: false
gradle.ext.enableAccelerator = gradle.startParameter.projectProperties.get('ENABLE_ACCELERATOR')?.toBoolean() ?: false
gradle.ext.enableWechatPay = gradle.startParameter.projectProperties.get('ENABLE_WECHAT_PAY')?.toBoolean() ?: false
gradle.ext.enableAliPay = gradle.startParameter.projectProperties.get('ENABLE_ALI_PAY')?.toBoolean() ?: false
// 是否启用路由文档输出
gradle.ext.enableRouteDoc = gradle.startParameter.projectProperties.get('ENABLE_ROUTE_DOC')?.toBoolean() ?: false
// 核心模块
def coreModules = [
':app',
':module_core',
':module_common',
':module_login',
':module_setting',
// ':module_setting_compose',
':ndownload',
':module_core_feature',
':libraries:LGLibrary',
':libraries:QQShare',
':libraries:Matisse',
':vspace-bridge:vspace',
':feature:xapk-installer',
':feature:media_select',
':feature:route_doc',
':module_internal_test',
':module_va_api',
]
// 定义 va 核心模块
// key: 模块名, value: 目录名
def vaCoreModule = [
'va-archive-common': 'vasdk/archive_common'
]
// 可选是否启用的模块
def optionalModules = [
':feature:pkg',
':feature:floating-window',
':feature:csj_ad',
':feature:oaid_lib',
':feature:oaid',
':feature:new_feedback',
':feature:qq_game',
':feature:jg_push',
':feature:jg_push_lib',
':feature:acloud_push',
':feature:sentry',
':feature:quick_login',
':feature:accelerator',
':feature:wechat_pay',
':feature:ali_pay',
':module_message',
':module_sensors_data',
':module_va_impl'
]
// 定义 va 可选模块
def optionalVaModules = [
'va-main' : 'vasdk/app',
'va-lib' : 'vasdk/lib',
'va-lib-res' : 'vasdk/lib-res',
'va-common' : 'vasdk/common',
'va-core' : 'vasdk/core',
'va-feature-realname': 'vasdk/feature/realname-window',
'va-feature-translate': 'vasdk/feature/translate',
'va-library-commons' : 'vasdk/commons',
'va-library-network' : 'vasdk/library/network',
'va-archive' : 'vasdk/archive',
'va-plugin-constant' : 'vasdk/plugin/constant',
'va-plugin-host' : 'vasdk/host',
'va-plugin-host-lib' : 'vasdk/plugin/host-lib',
'va-sandhook' : 'vasdk/sandhook'
]
def includeVaModuleFun(Map<String, String> vaModules) {
vaModules.each { moduleName, pathName ->
include moduleName
project(":$moduleName").projectDir = file(pathName)
}
}
// 包含core必选模块
for (String module : coreModules) {
include module
}
// 包含va必选模块
includeVaModuleFun(vaCoreModule)
if (gradle.ext.excludeOptionalModules == false) { // 默认全部模块都包含
// 包含可选模块
for (String module : optionalModules) {
include module
}
// 包含va可选模块
optionalVaModules.each { moduleName, pathName ->
include moduleName
project(":$moduleName").projectDir = file(pathName)
}
} else {
if (gradle.ext.enablePkg) {
include ':feature:pkg'
}
if (gradle.ext.enableFeedback) {
include ':feature:new_feedback'
}
if (gradle.ext.enableMessage) {
include ':module_message'
}
if (gradle.ext.enableOaid) {
include ':feature:oaid'
include ':feature:oaid_lib'
}
if (gradle.ext.enableFloatingWindow) {
include ':feature:floating-window'
}
if (gradle.ext.enableSensorData) {
include ':module_sensors_data'
}
if (gradle.ext.enableCsjAd) {
include ':feature:csj_ad'
}
if (gradle.ext.enableQQGame) {
include ':feature:qq_game'
}
if (gradle.ext.enablePush) {
include ':feature:jg_push'
include ':feature:jg_push_lib'
include ':feature:acloud_push'
}
if (gradle.ext.enableSentry) {
include ':feature:sentry'
}
if (gradle.ext.enableVa) {
include ':module_va_impl'
// 包含 va 可选模块
includeVaModuleFun(optionalVaModules)
}
if (gradle.ext.enableQuickLogin) {
include(':feature:quick_login')
}
if (gradle.ext.enableAccelerator) {
include ':feature:accelerator'
}
if (gradle.ext.enableWechatPay) {
include ':feature:wechat_pay'
}
if (gradle.ext.enableAliPay) {
include ':feature:ali_pay'
}
}