--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -3,17 +3,17 @@
# 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/.
DIRS += ['locales']
include('android-services.mozbuild')
-thirdparty_source_dir = TOPSRCDIR + '/mobile/android/thirdparty/'
+thirdparty_source_dir = '/mobile/android/thirdparty/'
constants_jar = add_java_jar('constants')
constants_jar.sources = ['java/org/mozilla/gecko/' + x for x in [
'adjust/AdjustHelperInterface.java',
'annotation/JNITarget.java',
'annotation/ReflectionTarget.java',
'annotation/RobocopTarget.java',
'annotation/WebRTCJNITarget.java',
@@ -23,28 +23,28 @@ constants_jar.sources = ['java/org/mozil
'Locales.java',
'SysInfo.java',
]]
constants_jar.generated_sources = [
'preprocessed/org/mozilla/gecko/AdjustConstants.java',
'preprocessed/org/mozilla/gecko/AppConstants.java',
]
constants_jar.extra_jars = [
- CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
- CONFIG['ANDROID_APPCOMPAT_V7_AAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
+ '%' + CONFIG['ANDROID_APPCOMPAT_V7_AAR_LIB'],
]
if CONFIG['MOZ_INSTALL_TRACKING']:
constants_jar.sources += ['java/org/mozilla/gecko/' + x for x in [
'adjust/AdjustHelper.java',
]]
constants_jar.extra_jars += [
- 'gecko-thirdparty-adjust_sdk.jar',
+ '!gecko-thirdparty-adjust_sdk.jar',
]
else:
constants_jar.sources += ['java/org/mozilla/gecko/' + x for x in [
'adjust/StubAdjustHelper.java',
]]
resjar = add_java_jar('gecko-R')
resjar.sources = []
@@ -78,17 +78,17 @@ mgjar.sources += ['java/org/mozilla/geck
'mozglue/DirectBufferAllocator.java',
'mozglue/GeckoLoader.java',
'mozglue/JNIObject.java',
'mozglue/NativeReference.java',
'mozglue/NativeZip.java',
]]
mgjar.generated_sources = [] # Keep it this way.
mgjar.extra_jars += [
- 'constants.jar',
+ '!constants.jar',
]
mgjar.javac_flags += ['-Xlint:all']
gujar = add_java_jar('gecko-util')
gujar.sources += ['java/org/mozilla/gecko/' + x for x in [
'util/ActivityResultHandler.java',
'util/ActivityResultHandlerMap.java',
'util/ActivityUtils.java',
@@ -123,68 +123,68 @@ gujar.sources += ['java/org/mozilla/geck
'util/StringUtils.java',
'util/ThreadUtils.java',
'util/UIAsyncTask.java',
'util/WeakReferenceHandler.java',
'util/WebActivityMapper.java',
'util/WindowUtils.java',
]]
gujar.extra_jars = [
- CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
- 'constants.jar',
- 'gecko-mozglue.jar',
+ '%' + CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
+ '!constants.jar',
+ '!gecko-mozglue.jar',
]
gujar.javac_flags += ['-Xlint:all,-deprecation']
stjar = add_java_jar('sync-thirdparty')
stjar.sources += [ thirdparty_source_dir + f for f in sync_thirdparty_java_files ]
stjar.javac_flags = ['-Xlint:none']
services_jar = add_java_jar('services')
services_jar.sources += sync_java_files
services_jar.extra_jars = [
- CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
- 'constants.jar',
- 'gecko-R.jar',
- 'gecko-mozglue.jar',
- 'gecko-thirdparty.jar',
- 'gecko-util.jar',
- 'sync-thirdparty.jar',
+ '%' + CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
+ '!constants.jar',
+ '!gecko-R.jar',
+ '!gecko-mozglue.jar',
+ '!gecko-thirdparty.jar',
+ '!gecko-util.jar',
+ '!sync-thirdparty.jar',
]
services_jar.javac_flags += ['-Xlint:all,-deprecation']
if CONFIG['MOZ_WEBRTC']:
- video_root = TOPSRCDIR + '/media/webrtc/trunk/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/'
- video_render_root = TOPSRCDIR + '/media/webrtc/trunk/webrtc/modules/video_render/android/java/src/org/webrtc/videoengine/'
- audio_root = TOPSRCDIR + '/media/webrtc/trunk/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/'
+ video_root = '/media/webrtc/trunk/webrtc/modules/video_capture/android/java/src/org/webrtc/videoengine/'
+ video_render_root = '/media/webrtc/trunk/webrtc/modules/video_render/android/java/src/org/webrtc/videoengine/'
+ audio_root = '/media/webrtc/trunk/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/'
wrjar = add_java_jar('webrtc')
wrjar.sources += [
video_root + 'CaptureCapabilityAndroid.java',
video_root + 'VideoCaptureAndroid.java',
video_root + 'VideoCaptureDeviceInfoAndroid.java',
video_render_root + 'ViEAndroidGLES20.java',
video_render_root + 'ViERenderer.java',
]
wrjar.sources += [
audio_root + 'AudioManagerAndroid.java',
audio_root + 'WebRtcAudioManager.java',
audio_root + 'WebRtcAudioRecord.java',
audio_root + 'WebRtcAudioTrack.java',
audio_root + 'WebRtcAudioUtils.java',
]
wrjar.extra_jars = [
- 'constants.jar',
- 'gecko-R.jar',
- 'gecko-browser.jar',
- 'gecko-util.jar',
- 'gecko-mozglue.jar',
+ '!constants.jar',
+ '!gecko-R.jar',
+ '!gecko-browser.jar',
+ '!gecko-util.jar',
+ '!gecko-mozglue.jar',
]
wrjar.javac_flags += ['-Xlint:all,-deprecation,-cast']
gbjar = add_java_jar('gecko-browser')
gbjar.sources += ['java/org/mozilla/gecko/' + x for x in [
'AboutPages.java',
'AccountsHelper.java',
'ActionModeCompat.java',
@@ -638,20 +638,20 @@ gbjar.sources += ['java/org/mozilla/geck
gbjar.sources += [ thirdparty_source_dir + f for f in [
'com/googlecode/eyesfree/braille/selfbraille/ISelfBrailleService.java',
'com/googlecode/eyesfree/braille/selfbraille/SelfBrailleClient.java',
'com/googlecode/eyesfree/braille/selfbraille/WriteData.java',
] ]
android_package_dir = CONFIG['ANDROID_PACKAGE_NAME'].replace('.', '/')
gbjar.generated_sources = [] # Keep it this way.
gbjar.extra_jars += [
- CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
- 'constants.jar'
+ '%' + CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
+ '!constants.jar'
]
if CONFIG['MOZ_CRASHREPORTER']:
gbjar.sources += [ 'java/org/mozilla/gecko/CrashReporter.java' ]
ANDROID_RES_DIRS += [ 'crashreporter/res' ]
if (CONFIG['MOZ_ANDROID_MAX_SDK_VERSION']):
max_sdk_version = int(CONFIG['MOZ_ANDROID_MAX_SDK_VERSION'])
else:
@@ -663,31 +663,31 @@ if max_sdk_version >= 11:
gbjar.sources += ['java/org/mozilla/gecko/' + x for x in [
'tabs/TabStrip.java',
'tabs/TabStripAdapter.java',
'tabs/TabStripItemView.java',
'tabs/TabStripView.java'
]]
gbjar.extra_jars += [
- OBJDIR + '/../javaaddons/javaaddons-1.0.jar',
- 'gecko-R.jar',
- 'gecko-mozglue.jar',
- 'gecko-thirdparty.jar',
- 'gecko-util.jar',
- 'sync-thirdparty.jar',
- 'services.jar',
+ '!/mobile/android/javaaddons/javaaddons-1.0.jar',
+ '!gecko-R.jar',
+ '!gecko-mozglue.jar',
+ '!gecko-thirdparty.jar',
+ '!gecko-util.jar',
+ '!sync-thirdparty.jar',
+ '!services.jar',
]
moz_native_devices_jars = [
- CONFIG['ANDROID_MEDIAROUTER_V7_AAR_LIB'],
- CONFIG['ANDROID_MEDIAROUTER_V7_AAR_INTERNAL_LIB'],
- CONFIG['ANDROID_PLAY_SERVICES_BASE_AAR_LIB'],
- CONFIG['ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB'],
- CONFIG['ANDROID_PLAY_SERVICES_CAST_AAR_LIB'],
+ '%' + CONFIG['ANDROID_MEDIAROUTER_V7_AAR_LIB'],
+ '%' + CONFIG['ANDROID_MEDIAROUTER_V7_AAR_INTERNAL_LIB'],
+ '%' + CONFIG['ANDROID_PLAY_SERVICES_BASE_AAR_LIB'],
+ '%' + CONFIG['ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB'],
+ '%' + CONFIG['ANDROID_PLAY_SERVICES_CAST_AAR_LIB'],
]
moz_native_devices_sources = ['java/org/mozilla/gecko/' + x for x in [
'ChromeCast.java',
'GeckoMediaPlayer.java',
'MediaPlayerManager.java',
'PresentationMediaPlayerManager.java',
]]
if CONFIG['MOZ_NATIVE_DEVICES']:
@@ -711,19 +711,19 @@ if CONFIG['MOZ_NATIVE_DEVICES']:
if CONFIG['ANDROID_PLAY_SERVICES_CAST_AAR']:
ANDROID_EXTRA_PACKAGES += ['com.google.android.gms.cast']
ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_PLAY_SERVICES_CAST_AAR_RES']]
resjar.generated_sources += ['com/google/android/gms/cast/R.java']
if CONFIG['MOZ_ANDROID_GCM']:
gbjar.extra_jars += [
- CONFIG['ANDROID_PLAY_SERVICES_BASE_AAR_LIB'],
- CONFIG['ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB'],
- CONFIG['ANDROID_PLAY_SERVICES_GCM_AAR_LIB'],
+ '%' + CONFIG['ANDROID_PLAY_SERVICES_BASE_AAR_LIB'],
+ '%' + CONFIG['ANDROID_PLAY_SERVICES_BASEMENT_AAR_LIB'],
+ '%' + CONFIG['ANDROID_PLAY_SERVICES_GCM_AAR_LIB'],
]
if CONFIG['ANDROID_PLAY_SERVICES_BASE_AAR']:
ANDROID_EXTRA_PACKAGES += ['com.google.android.gms']
ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_PLAY_SERVICES_BASE_AAR_RES']]
resjar.generated_sources += ['com/google/android/gms/R.java']
if CONFIG['ANDROID_PLAY_SERVICES_BASEMENT_AAR']:
@@ -731,19 +731,19 @@ if CONFIG['MOZ_ANDROID_GCM']:
ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_PLAY_SERVICES_BASEMENT_AAR_RES']]
resjar.generated_sources += ['com/google/android/gms/R.java']
if CONFIG['ANDROID_PLAY_SERVICES_GCM_AAR']:
ANDROID_EXTRA_PACKAGES += ['com.google.android.gms.gcm']
ANDROID_EXTRA_RES_DIRS += ['%' + CONFIG['ANDROID_PLAY_SERVICES_GCM_AAR_RES']]
resjar.generated_sources += ['com/google/android/gms/gcm/R.java']
-gbjar.extra_jars += [CONFIG['ANDROID_APPCOMPAT_V7_AAR_LIB']]
-gbjar.extra_jars += [CONFIG['ANDROID_DESIGN_AAR_LIB']]
-gbjar.extra_jars += [CONFIG['ANDROID_RECYCLERVIEW_V7_AAR_LIB']]
+gbjar.extra_jars += ['%' + CONFIG['ANDROID_APPCOMPAT_V7_AAR_LIB']]
+gbjar.extra_jars += ['%' + CONFIG['ANDROID_DESIGN_AAR_LIB']]
+gbjar.extra_jars += ['%' + CONFIG['ANDROID_RECYCLERVIEW_V7_AAR_LIB']]
gbjar.javac_flags += ['-Xlint:all,-deprecation,-fallthrough', '-J-Xmx512m', '-J-Xms128m']
# gecko-thirdparty is a good place to put small independent libraries
gtjar = add_java_jar('gecko-thirdparty')
gtjar.sources += [ thirdparty_source_dir + f for f in [
'com/keepsafe/switchboard/AsyncConfigLoader.java',
'com/keepsafe/switchboard/DeviceUuidFactory.java',
@@ -806,19 +806,19 @@ gtjar.sources += [ thirdparty_source_dir
'com/squareup/picasso/StatsSnapshot.java',
'com/squareup/picasso/Target.java',
'com/squareup/picasso/TargetAction.java',
'com/squareup/picasso/Transformation.java',
'com/squareup/picasso/UrlConnectionDownloader.java',
'com/squareup/picasso/Utils.java'
] ]
gtjar.extra_jars = [
- CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
]
if not CONFIG['MOZILLA_OFFICIAL']:
gtjar.sources += [ thirdparty_source_dir + f for f in [
'org/lucasr/dspec/DesignSpec.java',
'org/lucasr/dspec/RawResource.java'
] ]
@@ -853,17 +853,17 @@ if CONFIG['MOZ_INSTALL_TRACKING']:
'com/adjust/sdk/plugin/MacAddressUtil.java',
'com/adjust/sdk/plugin/Plugin.java',
'com/adjust/sdk/Reflection.java',
'com/adjust/sdk/RequestHandler.java',
'com/adjust/sdk/UnitTestActivity.java',
'com/adjust/sdk/Util.java'
] ]
adjustjar.extra_jars += [
- 'sync-thirdparty.jar',
+ '!sync-thirdparty.jar',
]
# Putting branding earlier allows branders to override default resources.
ANDROID_RES_DIRS += [
'/' + CONFIG['MOZ_BRANDING_DIRECTORY'] + '/res',
'resources',
'/mobile/android/services/src/main/res',
'!res',
@@ -914,27 +914,27 @@ if '-march=armv7' in CONFIG['OS_CFLAGS']
DEFINES['MOZ_MIN_CPU_VERSION'] = 7
else:
DEFINES['MOZ_MIN_CPU_VERSION'] = 5
if CONFIG['MOZ_ANDROID_SEARCH_ACTIVITY']:
# The Search Activity is mostly independent of Fennec proper, but
# it does depend on Geckoview. Therefore, we build it as a jar
# that depends on the Geckoview jars.
- search_source_dir = SRCDIR + '/../search'
+ search_source_dir = '/mobile/android/search'
include('../search/search_activity_sources.mozbuild')
search_activity = add_java_jar('search-activity')
search_activity.sources += [search_source_dir + '/' + f for f in search_activity_sources]
search_activity.javac_flags += ['-Xlint:all']
search_activity.extra_jars = [
- CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
- CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
- 'constants.jar',
- 'gecko-R.jar',
- 'gecko-browser.jar',
- 'gecko-mozglue.jar',
- 'gecko-thirdparty.jar',
- 'gecko-util.jar'
+ '%' + CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
+ '%' + CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],
+ '!constants.jar',
+ '!gecko-R.jar',
+ '!gecko-browser.jar',
+ '!gecko-mozglue.jar',
+ '!gecko-thirdparty.jar',
+ '!gecko-util.jar'
]
FINAL_TARGET_PP_FILES += ['package-name.txt.in']
--- a/python/mozbuild/mozbuild/backend/recursivemake.py
+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
@@ -561,17 +561,17 @@ class RecursiveMakeBackend(CommonBackend
elif isinstance(obj, ContextWrapped):
# Process a rich build system object from the front-end
# as-is. Please follow precedent and handle CamelCaseData
# in a function named _process_camel_case_data. At some
# point in the future, this unwrapping process may be
# automated.
if isinstance(obj.wrapped, JavaJarData):
- self._process_java_jar_data(obj.wrapped, backend_file)
+ self._process_java_jar_data(obj.wrapped, backend_file, obj._context)
elif isinstance(obj.wrapped, AndroidEclipseProjectData):
self._process_android_eclipse_project_data(obj.wrapped, backend_file)
else:
return False
elif isinstance(obj, SharedLibrary):
self._process_shared_library(obj, backend_file)
self._process_linked_libraries(obj, backend_file)
@@ -1105,33 +1105,43 @@ INSTALL_TARGETS += %(prefix)s
else:
path = d + path
backend_file.write('LOCAL_INCLUDES += -I%s\n' % path)
def _process_per_source_flag(self, per_source_flag, backend_file):
for flag in per_source_flag.flags:
backend_file.write('%s_FLAGS += %s\n' % (mozpath.basename(per_source_flag.file_name), flag))
- def _process_java_jar_data(self, jar, backend_file):
+ def _process_java_jar_data(self, jar, backend_file, context):
target = jar.name
backend_file.write('JAVA_JAR_TARGETS += %s\n' % target)
- backend_file.write('%s_DEST := %s.jar\n' % (target, jar.name))
+ backend_file.write('%s_NAME := %s\n' % (target, jar.name))
+ backend_file.write('%s_DEST := %s.jar\n' % (target, mozpath.join(backend_file.objdir, jar.name)))
if jar.sources:
backend_file.write('%s_JAVAFILES := %s\n' %
- (target, ' '.join(jar.sources)))
+ (target, ' '.join(Path(context, s).full_path for s in jar.sources)))
if jar.generated_sources:
backend_file.write('%s_PP_JAVAFILES := %s\n' %
- (target, ' '.join(mozpath.join('generated', f) for f in jar.generated_sources)))
+ (target, ' '.join(Path(context, mozpath.join('!generated', f)).full_path for f in jar.generated_sources)))
if jar.extra_jars:
backend_file.write('%s_EXTRA_JARS := %s\n' %
- (target, ' '.join(sorted(set(jar.extra_jars)))))
+ (target, ' '.join(sorted(set(Path(context, s).full_path for s in jar.extra_jars)))))
if jar.javac_flags:
backend_file.write('%s_JAVAC_FLAGS := %s\n' %
(target, ' '.join(jar.javac_flags)))
+ with self._write_file(mozpath.join(backend_file.objdir, '%s-java-arguments' % target)) as f:
+ cpsep = ';' if os.name in ('nt', 'ce') else ':'
+ f.write('-classpath "' + cpsep.join(sorted(set(Path(context, s).full_path for s in jar.extra_jars))) + '"\n')
+ f.write('-bootclasspath "%s/android.jar"\n' % self.environment.substs['ANDROID_SDK'])
+ for s in jar.sources:
+ f.write('"%s"\n' % Path(context, s).full_path)
+ for s in jar.generated_sources:
+ f.write('"%s"\n' % Path(context, mozpath.join('!generated', s)).full_path)
+
def _process_android_eclipse_project_data(self, project, backend_file):
# We add a single target to the backend.mk corresponding to
# the moz.build defining the Android Eclipse project. This
# target depends on some targets to be fresh, and installs a
# manifest generated by the Android Eclipse build backend. The
# manifests for all projects live in $TOPOBJDIR/android_eclipse
# and are installed into subdirectories thereof.