解放军信息工程大学导线助手
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

166 lines
6.9 KiB

include ':app'
include ':control_common'
def properties = properties(rootProject)
def bcDir = properties.getProperty('bingce.dir')
if (bcDir == null || bcDir.empty) throw new RuntimeException("需要在local.properties中设置bingce.dir路径")
// 定义一个方法来获取指定目录下的当前 Git 分支
def listGitBranches(File gitDirectory) {
def command = ['git', 'symbolic-ref', '--short', '-q', 'HEAD']
def processBuilder = new ProcessBuilder(command)
// 设置工作目录为指定的 Git 仓库目录
processBuilder.directory(gitDirectory)
// 捕获命令输出
def process = processBuilder.start()
def reader = new BufferedReader(new InputStreamReader(process.inputStream))
def branches = []
String line
while ((line = reader.readLine()) != null) {
return line
}
// 检查进程是否成功执行
def exitCode = process.waitFor()
if (exitCode != 0) {
// 如果命令执行失败,可以抛出异常或做其他处理
throw new RuntimeException("Git command failed with exit code ${exitCode}")
}
return ""
}
// 例如,要检测指定目录的 Git 分支,可以调用 getGitBranch 方法
//def gitDirectory = new File(bcDir)
//def currentBranch = listGitBranches(gitDirectory)
//
//if (currentBranch != "master_alpha_tj_offline") throw new RuntimeException("需要将${bcDir}仓库切换到master_alpha_tj_offline分支")
static def properties(ProjectDescriptor rootProject) {
Properties properties = new Properties()
properties.load(new File(rootProject.projectDir, 'local.properties').newDataInputStream())
return properties
}
static def bingceModule(ProjectDescriptor rootProject, String name) {
def properties = properties(rootProject)
def useAAR = properties.getProperty('useAAR')
def useBaseAAR = properties.getProperty('useBaseAAR')
def useDeviceAAR = properties.getProperty('useDeviceAAR')
if (Arrays.asList(
"base"
).contains(name)) {
if ("false" == useBaseAAR) {
return ":bingce:$name"
} else {
return ":aar:$name"
}
}
if (Arrays.asList(
"level", "rtk", "totalstation"
).contains(name)) {
if ("false" == useDeviceAAR) {
return ":bingce:$name"
} else {
return ":aar:$name"
}
}
if ("false" == useAAR) {
return ":bingce:$name"
} else {
return ":aar:$name"
}
}
static def openSourceModule(ProjectDescriptor rootProject, String name) {
def properties = properties(rootProject)
def useAAR = properties.getProperty('useAAR')
if ("false" == useAAR) {
return ":opensource:$name"
} else {
return ":aar:$name"
}
}
static def includeBingceModule(Settings settings, ProjectDescriptor rootProject, String bcDir, String name) {
def moduleName = bingceModule(rootProject, name)
settings.include(moduleName)
println(moduleName)
if (Arrays.asList(
"base",
"level",
"rtk",
"totalstation"
).contains(name)) return // base 模块不需要设置 projectDir
settings.project(moduleName).projectDir = new File(bcDir, "bingce/$name")
}
static def includeOpenSourceModule(Settings settings, ProjectDescriptor rootProject, String bcDir, String name) {
settings.include(openSourceModule(rootProject, name))
settings.project(openSourceModule(rootProject, name)).projectDir = new File(bcDir, "opensource/$name")
}
static def includeSdkModule(Settings settings, ProjectDescriptor rootProject, String bcDir, String name) {
def moduleName = ":sdk:$name"
settings.include(moduleName)
settings.project(moduleName).projectDir = new File(bcDir, "sdk/$name")
}
includeBingceModule(settings, rootProject, bcDir, "base")
includeBingceModule(settings, rootProject, bcDir, "base-java")
includeBingceModule(settings, rootProject, bcDir, "appBase")
includeBingceModule(settings, rootProject, bcDir, "leancloud")
includeBingceModule(settings, rootProject, bcDir, "repository")
includeBingceModule(settings, rootProject, bcDir, "coordlib")
includeBingceModule(settings, rootProject, bcDir, "device")
includeBingceModule(settings, rootProject, bcDir, "device-ui")
includeBingceModule(settings, rootProject, bcDir, "utils")
includeBingceModule(settings, rootProject, bcDir, "totalstation")
includeBingceModule(settings, rootProject, bcDir, "rtk")
includeBingceModule(settings, rootProject, bcDir, "level")
includeBingceModule(settings, rootProject, bcDir, "bc-dialog")
includeBingceModule(settings, rootProject, bcDir, "DialogXInterface")
includeBingceModule(settings, rootProject, bcDir, "bcdialog-style")
includeBingceModule(settings, rootProject, bcDir, "surveyorBase")
includeOpenSourceModule(settings, rootProject, bcDir, "hellocharts")
includeOpenSourceModule(settings, rootProject, bcDir, "gson")
includeOpenSourceModule(settings, rootProject, bcDir, "fastjson")
includeOpenSourceModule(settings, rootProject, bcDir, "javadxf")
includeOpenSourceModule(settings, rootProject, bcDir, "utilcode")
includeOpenSourceModule(settings, rootProject, bcDir, "colorful")
includeOpenSourceModule(settings, rootProject, bcDir, "dragExpandGrid")
includeOpenSourceModule(settings, rootProject, bcDir, "lsettingitemlibrary")
includeOpenSourceModule(settings, rootProject, bcDir, "spinkit")
includeOpenSourceModule(settings, rootProject, bcDir, "splashview")
includeOpenSourceModule(settings, rootProject, bcDir, "poishadowjar")
includeOpenSourceModule(settings, rootProject, bcDir, "safFilePicker")
includeOpenSourceModule(settings, rootProject, bcDir, "exFilePicker")
includeOpenSourceModule(settings, rootProject, bcDir, "agentweb")
includeOpenSourceModule(settings, rootProject, bcDir, "fastBle")
includeOpenSourceModule(settings, rootProject, bcDir, "socket-core")
includeOpenSourceModule(settings, rootProject, bcDir, "socket-common-interface")
includeOpenSourceModule(settings, rootProject, bcDir, "socket-client")
includeOpenSourceModule(settings, rootProject, bcDir, "socket-usbSerialForAndroid")
includeOpenSourceModule(settings, rootProject, bcDir, "usbSerialForAndroid")
includeOpenSourceModule(settings, rootProject, bcDir, "menuItemBadge")
includeOpenSourceModule(settings, rootProject, bcDir, "triangle-library")
includeOpenSourceModule(settings, rootProject, bcDir, "jxls-poi")
includeOpenSourceModule(settings, rootProject, bcDir, "jxls")
includeSdkModule(settings, rootProject, bcDir, "jama")
includeSdkModule(settings, rootProject, bcDir, "libqxwz-sdkcore")
includeSdkModule(settings, rootProject, bcDir, "libsixents-sdkcore")
includeSdkModule(settings, rootProject, bcDir, "cmccSdk")
includeSdkModule(settings, rootProject, bcDir, "luowangSdk")
includeSdkModule(settings, rootProject, bcDir, "ruide-extension-sdk")
includeSdkModule(settings, rootProject, bcDir, "huaceRtkSdk")
includeSdkModule(settings, rootProject, bcDir, "southGnssSdk")
includeSdkModule(settings, rootProject, bcDir, "tensorFlowTTS")