| apply plugin: 'sdk-files' |
| |
| import com.android.tools.internal.emulator.BuildEmulator |
| |
| // Get SDK revision to define emulator revision |
| File fprops = new File(rootDir.getParentFile(), 'external/qemu/source.properties') |
| Properties props = new Properties() |
| props.load(fprops.newDataInputStream()) |
| |
| task buildDefaultEmulator(type: BuildEmulator) { |
| revision = props."Pkg.Revision" |
| build_number = System.getenv("BUILD_NUMBER") |
| output = new File(project.buildDir, "default") |
| } |
| |
| task buildWindowsEmulator(type: BuildEmulator) { |
| revision = props."Pkg.Revision" |
| build_number = System.getenv("BUILD_NUMBER") |
| output = new File(project.buildDir, "windows") |
| windows = true |
| } |
| |
| sdk { |
| common(mac, linux) { |
| item(fprops) { |
| notice null |
| } |
| item('android/avd/hardware-properties.ini') { |
| into 'lib' |
| notice null |
| } |
| item("$buildDefaultEmulator.output/emulator") { |
| executable true |
| builtBy buildDefaultEmulator |
| } |
| item("$buildDefaultEmulator.output/emulator-check") { |
| executable true |
| builtBy buildDefaultEmulator |
| } |
| item("$buildDefaultEmulator.output/bin64") { |
| into 'bin64' |
| builtBy buildDefaultEmulator |
| } |
| item("$buildDefaultEmulator.output/qemu") { |
| into 'qemu' |
| builtBy buildDefaultEmulator |
| } |
| item("$buildDefaultEmulator.output/build/debug_info/qemu") { |
| into 'qemu' |
| builtBy buildDefaultEmulator |
| debug true |
| } |
| item("$buildDefaultEmulator.output/lib") { |
| into 'lib' |
| builtBy buildDefaultEmulator |
| } |
| item("$buildDefaultEmulator.output/lib64") { |
| into 'lib64' |
| builtBy buildDefaultEmulator |
| } |
| item("$buildDefaultEmulator.output/build/debug_info/lib64") { |
| into 'lib64' |
| builtBy buildDefaultEmulator |
| debug true |
| } |
| item("$project.rootDir/../prebuilts/qemu-kernel/x86/pc-bios/bios.bin") { |
| into 'lib/pc-bios' |
| } |
| item("$project.rootDir/../prebuilts/qemu-kernel/x86/pc-bios/vgabios-cirrus.bin") { |
| into 'lib/pc-bios' |
| } |
| |
| item("$buildDefaultEmulator.output/emulator64-arm") { |
| executable true |
| builtBy buildDefaultEmulator |
| } |
| |
| item("$buildDefaultEmulator.output/emulator64-mips") { |
| executable true |
| builtBy buildDefaultEmulator |
| } |
| |
| item("$buildDefaultEmulator.output/emulator64-x86") { |
| executable true |
| builtBy buildDefaultEmulator |
| } |
| |
| item("$buildDefaultEmulator.output/emulator64-crash-service") { |
| executable true |
| builtBy buildDefaultEmulator |
| } |
| } |
| |
| windows { |
| item(fprops) { |
| notice null |
| } |
| item('android/avd/hardware-properties.ini') { |
| into 'lib' |
| notice null |
| } |
| item("$buildWindowsEmulator.output/emulator.exe") { |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/emulator-check.exe") { |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/bin") { |
| into 'bin' |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/qemu") { |
| into 'qemu' |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/build/debug_info/qemu") { |
| into 'qemu' |
| builtBy buildWindowsEmulator |
| debug true |
| } |
| item("$buildWindowsEmulator.output/lib") { |
| into 'lib' |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/build/debug_info/lib") { |
| into 'lib' |
| builtBy buildWindowsEmulator |
| debug true |
| } |
| item("$buildWindowsEmulator.output/lib64") { |
| into 'lib64' |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/build/debug_info/lib64") { |
| into 'lib64' |
| builtBy buildWindowsEmulator |
| debug true |
| } |
| item("$project.rootDir/../prebuilts/qemu-kernel/x86/pc-bios/bios.bin") { |
| into 'lib/pc-bios' |
| } |
| item("$project.rootDir/../prebuilts/qemu-kernel/x86/pc-bios/vgabios-cirrus.bin") { |
| into 'lib/pc-bios' |
| } |
| |
| item("$buildWindowsEmulator.output/emulator-arm.exe") { |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/emulator-mips.exe") { |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/emulator-x86.exe") { |
| builtBy buildWindowsEmulator |
| } |
| item("$buildWindowsEmulator.output/emulator-crash-service.exe") { |
| builtBy buildWindowsEmulator |
| } |
| |
| item("$buildWindowsEmulator.output/emulator64-crash-service.exe") { |
| builtBy buildWindowsEmulator |
| } |
| |
| /* |
| XAV(2014-06-17): DISABLE win64 exe until it's ready |
| item("$buildWindowsEmulator.output/emulator64-arm.exe") { |
| builtBy buildWindowsEmulator |
| } |
| |
| item("$buildWindowsEmulator.output/emulator64-mips.exe") { |
| builtBy buildWindowsEmulator |
| } |
| |
| item("$buildWindowsEmulator.output/emulator64-x86.exe") { |
| builtBy buildWindowsEmulator |
| } |
| |
| */ |
| } |
| } |
| |
| import com.android.tools.internal.sdk.base.PlatformConfig |
| import com.android.tools.internal.sdk.base.ToolItem |
| import com.google.common.collect.Lists |
| // Duplicate 'emulator' executables for debug info paths |
| for (PlatformConfig platform : sdk.getPlatforms()) { |
| def itemlist = Lists.newArrayList() |
| for (ToolItem toolitem: platform.getItems()) { |
| if (toolitem.getDebug() || !toolitem.getExecutable()) { |
| continue |
| } |
| def prop = toolitem.properties |
| def itemPath = prop.itemPath |
| if (itemPath instanceof String || itemPath instanceof GString) { |
| def debugItemPath = itemPath |
| def path = debugItemPath.split("/") |
| def s = path[path.size()-1] |
| if (!s.contains("emulator")) { |
| continue |
| } |
| if (platform.getName().equals("win")) { |
| debugItemPath = debugItemPath.replaceFirst("$buildWindowsEmulator.output", |
| "$buildWindowsEmulator.output/build/debug_info") |
| } else { |
| debugItemPath = debugItemPath.replaceFirst("$buildDefaultEmulator.output", |
| "$buildDefaultEmulator.output/build/debug_info") |
| } |
| if (debugItemPath.equals(itemPath)) { |
| continue |
| } |
| if (platform.getName().equals("mac")) { |
| debugItemPath += ".dSYM" |
| if (!prop.destinationPath) { |
| path = debugItemPath.split("/") |
| prop.destinationPath = path[path.size()-1] |
| } |
| |
| } |
| prop.debug=true; |
| prop.remove('itemPath') |
| prop.remove('class') |
| def propcopy = { |
| prop.each { k, v -> |
| delegate."$k"=v |
| } |
| return debugItemPath |
| } |
| def debugitem = new ToolItem(propcopy) |
| propcopy.delegate = debugitem |
| itemlist.add(debugitem) |
| } |
| |
| } |
| for (ToolItem debugitem: itemlist) { |
| platform.getItems().add(debugitem) |
| } |
| } |