DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (31ec81b5d7bb)

VCS Links

Line Code
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
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

mobile-tests := mobile/android/base/tests
TESTPATH     := $(topsrcdir)/$(mobile-tests)
dir-tests    := $(DEPTH)/$(mobile-tests)

ANDROID_APK_NAME := robocop-debug

ROBOTIUM_PATH = $(srcdir)/robotium-solo-4.2.jar

JAVAFILES = \
  R.java \
  $(NULL)

RES_FILES = \
  res/values/strings.xml \
  $(NULL)

_JAVA_HARNESS = \
  Actions.java \
  Assert.java \
  Driver.java \
  Element.java \
  FennecInstrumentationTestRunner.java \
  FennecNativeActions.java \
  FennecMochitestAssert.java \
  FennecTalosAssert.java \
  FennecNativeDriver.java \
  FennecNativeElement.java \
  RoboCopException.java \
  RobocopUtils.java \
  PaintedSurface.java \
  $(NULL)

# pre-process harness sources
PP_TARGETS        += java-harness
java-harness      := $(addprefix $(srcdir)/,$(addsuffix .in,$(_JAVA_HARNESS)))
java-harness-dep  := $(addprefix $(CURDIR)/,$(_JAVA_HARNESS))
java-harness_PATH := $(CURDIR)

# pre-process test sources
PP_TARGETS      += java-tests
java-tests-src  := $(wildcard $(TESTPATH)/*.java.in)
java-tests-dep  := $(patsubst $(TESTPATH)/%.java.in,$(dir-tests)/%.java,$(java-tests-src))
java-tests      := $(java-tests-src)
java-tests_PATH := $(dir-tests)

PP_TARGETS        += manifest
manifest          := $(srcdir)/AndroidManifest.xml.in
manifest_TARGET   := AndroidManifest.xml


# Install robocop configs and helper
INSTALL_TARGETS += robocop
robocop_TARGET  := libs
robocop_DEST    := $(CURDIR)
robocop_FILES   := \
  $(TESTPATH)/robocop.ini \
  $(TESTPATH)/robocop_autophone.ini \
  $(NULL)
robocop-deps := $(notdir $(robocop_FILES))

MOCHITEST_ROBOCOP_FILES := \
  $(wildcard $(TESTPATH)/*.html) \
  $(wildcard $(TESTPATH)/*.jpg) \
  $(wildcard $(TESTPATH)/*.sjs) \
  $(wildcard $(TESTPATH)/test*.js) \
  $(wildcard $(TESTPATH)/robocop*.js) \
  $(wildcard $(TESTPATH)/*.xml) \
  $(NULL)

GARBAGE += \
  AndroidManifest.xml \
  $(java-tests-dep) \
  $(_JAVA_HARNESS) \
  classes.dex \
  $(ANDROID_APK_NAME).ap_ \
  $(ANDROID_APK_NAME)-unsigned-unaligned.apk \
  $(ANDROID_APK_NAME)-unaligned.apk \
  $(ANDROID_APK_NAME).apk \
  $(robocop-deps) \
  $(NULL)

DEFINES += \
  -DANDROID_PACKAGE_NAME=$(ANDROID_PACKAGE_NAME) \
  $(NULL)

JAVA_CLASSPATH = $(ANDROID_SDK)/android.jar:$(ROBOTIUM_PATH)

include $(topsrcdir)/config/rules.mk

# Override rules.mk java flags with the android specific ones
include $(topsrcdir)/config/android-common.mk

GENERATED_DIRS_tools = classes $(dir-tests)

tools:: $(ANDROID_APK_NAME).apk

classes.dex: $(ANDROID_APK_NAME).ap_
classes.dex: $(robocop-deps)
classes.dex: $(java-harness-dep)
classes.dex: $(java-tests-dep)
	$(JAVAC) $(JAVAC_FLAGS) -d classes $(JAVAFILES) $(_JAVA_HARNESS) $(java-tests-dep)
	$(DX) --dex --output=$@ classes $(ROBOTIUM_PATH) $(ANDROID_COMPT_LIB)

$(ANDROID_APK_NAME).ap_: AndroidManifest.xml $(TESTPATH)/assets/*
	$(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -I . -S res -A $(TESTPATH)/assets -F $@ -J ./

$(ANDROID_APK_NAME)-unsigned-unaligned.apk: $(ANDROID_APK_NAME).ap_ classes.dex
	cp $< $@
	$(ZIP) -0 $@ classes.dex

$(ANDROID_APK_NAME)-unaligned.apk: $(ANDROID_APK_NAME)-unsigned-unaligned.apk
	cp $< $@
	$(DEBUG_JARSIGNER) $@

$(ANDROID_APK_NAME).apk: $(ANDROID_APK_NAME)-unaligned.apk
	$(ZIPALIGN) -f -v 4 $< $@

# PP_java-tests not fully usable here
# Intermediate step toward a library rule.
$(dir-tests)/%.java: $(TESTPATH)/%.java.in $(call mkdir_deps,$(dir-tests))
	$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) $< > $@