-
-
Notifications
You must be signed in to change notification settings - Fork 12.4k
/
android-sdk.rb
129 lines (109 loc) · 4.57 KB
/
android-sdk.rb
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
require "base64"
class AndroidSdk < Formula
desc "Android API libraries and developer tools"
homepage "https://developer.android.com/index.html"
url "https://dl.google.com/android/android-sdk_r24.4.1-macosx.zip"
version "24.4.1"
sha256 "ce1638cb48526a0e55857fc46b57eda4349e6512006244ad13dd6c1361c74104"
revision 1
bottle do
cellar :any
rebuild 2
sha256 "9fe198f396e2a8209ff14b647d7d0ba2ab19ed523a19a63563b55003152514c3" => :sierra
sha256 "9fe198f396e2a8209ff14b647d7d0ba2ab19ed523a19a63563b55003152514c3" => :el_capitan
sha256 "9fe198f396e2a8209ff14b647d7d0ba2ab19ed523a19a63563b55003152514c3" => :yosemite
end
depends_on :java
depends_on :macos => :mountain_lion
conflicts_with "android-platform-tools",
:because => "The Android Platform-Tools need to be installed as part of the SDK."
resource "completion" do
url "https://android.googlesource.com/platform/sdk/+/7859e2e738542baf96c15e6c8b50bbdb410131b0/bash_completion/adb.bash?format=TEXT"
mirror "https://raw.githubusercontent.com/Homebrew/formula-patches/c3b801f/android-sdk/adb.bash"
sha256 "44b3e20ed9cb8fff01dc6907a57bd8648cd0d1bcc7b129ec952a190983ab5e1a"
end
# Version of the android-build-tools the wrapper scripts reference.
def build_tools_version
"23.0.1"
end
def install
prefix.install "tools", "SDK Readme.txt" => "README"
%w[android ddms draw9patch emulator
emulator-arm emulator-x86 hierarchyviewer lint mksdcard
monitor monkeyrunner traceview].each do |tool|
(bin/tool).write <<-EOS.undent
#!/bin/bash
TOOL="#{prefix}/tools/#{tool}"
exec "$TOOL" "$@"
EOS
end
%w[zipalign].each do |tool|
(bin/tool).write <<-EOS.undent
#!/bin/bash
TOOL="#{prefix}/build-tools/#{build_tools_version}/#{tool}"
exec "$TOOL" "$@"
EOS
end
%w[dmtracedump etc1tool hprof-conv].each do |tool|
(bin/tool).write <<-EOS.undent
#!/bin/bash
TOOL="#{prefix}/platform-tools/#{tool}"
exec "$TOOL" "$@"
EOS
end
# this is data that should be preserved across upgrades, but the Android
# SDK isn't too smart, so we still have to symlink it back into its tree.
%w[platforms samples temp add-ons sources system-images extras].each do |d|
src = var/"lib/android-sdk"/d
src.mkpath
prefix.install_symlink src
end
%w[adb fastboot].each do |platform_tool|
(bin/platform_tool).write <<-EOS.undent
#!/bin/bash
PLATFORM_TOOL="#{prefix}/platform-tools/#{platform_tool}"
test -x "$PLATFORM_TOOL" && exec "$PLATFORM_TOOL" "$@"
echo "It appears you do not have 'Android SDK Platform-tools' installed."
echo "Use the 'android' tool to install them: "
echo " android update sdk --no-ui --filter 'platform-tools'"
EOS
end
%w[aapt aidl dexdump dx llvm-rs-cc].each do |build_tool|
(bin/build_tool).write <<-EOS.undent
#!/bin/bash
BUILD_TOOLS_VERSION='#{build_tools_version}'
BUILD_TOOL="#{prefix}/build-tools/$BUILD_TOOLS_VERSION/#{build_tool}"
test -x "$BUILD_TOOL" && exec "$BUILD_TOOL" "$@"
echo "It appears you do not have 'build-tools-$BUILD_TOOLS_VERSION' installed."
echo "Use the 'android' tool to install them: "
echo " android update sdk --no-ui --filter 'build-tools-$BUILD_TOOLS_VERSION'"
EOS
end
resource("completion").stage do
# googlesource.com only serves up the file in base64-encoded format; we
# need to decode it before installing
decoded_file = buildpath/"adb-completion.bash"
decoded_file.write Base64.decode64(File.read("adb.bash"))
bash_completion.install decoded_file
end
# automatically install platform and build tools
system "echo y | bash #{bin}/android --verbose update sdk --no-ui --all --filter platform-tools,build-tools-#{build_tools_version}"
%w[qemu-system-aarch64 qemu-system-mips64el qemu-system-x86_64].each do |f|
macho = MachO.open("#{prefix}/tools/qemu/darwin-x86_64/#{f}")
macho.dylib_load_commands.each do |c|
macho.delete_command(c) if c.name.to_s == "/tmp/android-build-build-temp-74102/install-darwin-x86_64/lib/libz.1.dylib"
end
macho.write!
end
end
def caveats; <<-EOS.undent
Now run the 'android' tool to install the actual SDK stuff.
The Android-SDK is available at #{opt_prefix}
You may need to add the following to your .bashrc:
export ANDROID_HOME=#{opt_prefix}
EOS
end
test do
assert_match version.to_s, shell_output("#{prefix}/tools/emulator -version")
end
end