blob: e88a64faec9afc95582439b46d039eccdc781c54 [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/rules.gni")
import("config.gni")
java_group("leakcanary_java") {
if (enable_leakcanary) {
deps = [
":leakcanary_impl_java",
]
} else {
deps = [
":leakcanary_noop_java",
]
}
}
android_library("leakcanary_noop_java") {
java_files = [
"src/leakcanary-android-no-op/src/main/java/com/squareup/leakcanary/LeakCanary.java",
"src/leakcanary-android-no-op/src/main/java/com/squareup/leakcanary/RefWatcher.java",
]
}
_wanted_resource_files = [
"src/leakcanary-android/src/main/res/drawable-xxxhdpi-v11/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-xxhdpi-v11/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-xhdpi/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-xhdpi/leak_canary_icon.png",
"src/leakcanary-android/src/main/res/drawable-mdpi-v11/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-xxxhdpi/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-xxxhdpi/leak_canary_icon.png",
"src/leakcanary-android/src/main/res/drawable-hdpi/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-hdpi/leak_canary_icon.png",
"src/leakcanary-android/src/main/res/drawable-hdpi-v11/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/values/leak_canary_themes.xml",
"src/leakcanary-android/src/main/res/values/leak_canary_int.xml",
"src/leakcanary-android/src/main/res/values/leak_canary_strings.xml",
"src/leakcanary-android/src/main/res/drawable/leak_canary_toast_background.xml",
"src/leakcanary-android/src/main/res/drawable-xxhdpi/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-xxhdpi/leak_canary_icon.png",
"src/leakcanary-android/src/main/res/drawable-xhdpi-v11/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-mdpi/leak_canary_notification.png",
"src/leakcanary-android/src/main/res/drawable-mdpi/leak_canary_icon.png",
"src/leakcanary-android/src/main/res/values-v21/leak_canary_themes.xml",
"src/leakcanary-android/src/main/res/layout/leak_canary_leak_row.xml",
"src/leakcanary-android/src/main/res/layout/leak_canary_heap_dump_toast.xml",
"src/leakcanary-android/src/main/res/layout/leak_canary_display_leak.xml",
"src/leakcanary-android/src/main/res/layout/leak_canary_ref_top_row.xml",
"src/leakcanary-android/src/main/res/layout/leak_canary_ref_row.xml",
"src/leakcanary-android/src/main/res/values-v14/leak_canary_themes.xml",
]
# This is required to remove:
# "src/leakcanary-android/src/main/res/values/leak_canary_public.xml",
# which is meant for .aar, and breaks aapt normally.
copy("leakcanary_resources_copy") {
sources = _wanted_resource_files
outputs = [
"$target_gen_dir/copied-resources/{{source}}",
]
}
android_resources("leakcanary_resources") {
custom_package = "com.squareup.leakcanary"
resource_dirs = []
generated_resource_dirs = [ "$target_gen_dir/copied-resources/third_party/leakcanary/src/leakcanary-android/src/main/res" ]
generated_resource_files =
process_file_template(_wanted_resource_files,
[ "$target_gen_dir/copied-resources/{{source}}" ])
deps = [
":leakcanary_resources_copy",
]
}
android_library("leakcanary_impl_java") {
chromium_code = false
java_files = [
"leakcanary-android-build-config/com/squareup/leakcanary/BuildConfig.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/haha/perflib/HahaSpy.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/AnalysisResult.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/HahaHelper.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/HeapAnalyzer.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/LeakNode.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/LeakTraceElement.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/LeakTrace.java",
"src/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/ShortestPathFinder.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/AbstractAnalysisResultService.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/ActivityRefWatcher.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/AndroidDebuggerControl.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/AndroidExcludedRefs.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/AndroidHeapDumper.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/AndroidWatchExecutor.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/CanaryLog.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/DefaultLeakDirectoryProvider.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/DisplayLeakService.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/DisplayLeakActivity.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/DisplayLeakAdapter.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/DisplayLeakConnectorView.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/FutureResult.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/HeapAnalyzerService.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/LeakCanaryInternals.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/LeakCanarySingleThreadFactory.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/LeakCanaryUi.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/MoreDetailsView.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/internal/RequestStoragePermissionActivity.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/LeakCanary.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/LeakDirectoryProvider.java",
"src/leakcanary-android/src/main/java/com/squareup/leakcanary/ServiceHeapDumpListener.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/DebuggerControl.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/ExcludedRefs.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/Exclusion.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/GcTrigger.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/HeapDumper.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/HeapDump.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/KeyedWeakReference.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/Preconditions.java",
"src/leakcanary-watcher/src/main/java/com/squareup/leakcanary/RefWatcher.java",
]
deps = [
":leakcanary_resources",
"//third_party/haha",
]
}