Closed Bug 1102339 Opened 10 years ago Closed 9 years ago

Don't generate widget/Themed*.java

Categories

(Firefox Build System :: Android Studio and Gradle Integration, defect)

All
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla36

People

(Reporter: nalexander, Assigned: nalexander)

References

Details

Currently we use the preprocessor to generate org.mozilla.gecko.widget.Themed*.  When building with buck it's very difficult to access both the srcdir and the objdir at the same time, and the Themed* classes are deeply tied to Fennec proper.

To cut the knot, let's not preprocess them: let's check them in to version control and provide a generation script.

We've been on this fence a few times before: balancing ease of editing vs. cost to the build system.  I'd like to tip away from ease of editing towards ease of building.
This was reviewed by rnewman over in https://reviewboard.mozilla.org/r/825/.  Pushed with nits addressed.
I got bitten by Proguard's crufty configuration language.  Keeping the
class doesn't keep the class's members.  I've fixed that in proguard.cfg.

Before:

chocho:gecko nalexander$ diff -U 3 <(javap -classpath objdir-droid/mobile/android/base/constants.jar org.mozilla.gecko.SysInfo) <(javap -classpath objdir-droid/mobile/android/base/jars-proguarded/constants.jar org.mozilla.gecko.SysInfo)
chocho:gecko nalexander$ diff -U 3 <(javap -classpath objdir-droid/mobile/android/base/constants.jar org.mozilla.gecko.SysInfo) <(javap -classpath objdir-droid/mobile/android/base/jars-proguarded/constants.jar org.mozilla.gecko.SysInfo)
--- /dev/fd/63	2014-11-24 15:28:15.000000000 -0800
+++ /dev/fd/62	2014-11-24 15:28:15.000000000 -0800
@@ -10,7 +10,6 @@
   public static java.lang.String getDevice();
   public static java.lang.String getHardware();
   public static java.lang.String getName();
-  public static java.lang.String getArch();
   public static java.lang.String getArchABI();
   public static java.lang.String getLocale();
   static {};

chocho:gecko nalexander$ diff -U 3 <(javap -classpath objdir-droid/mobile/android/base/constants.jar org.mozilla.gecko.AppConstants) <(javap -classpath objdir-droid/mobile/android/base/jars-proguarded/constants.jar org.mozilla.gecko.AppConstants)
--- /dev/fd/63	2014-11-24 15:27:17.000000000 -0800
+++ /dev/fd/62	2014-11-24 15:27:17.000000000 -0800
@@ -1,49 +1,9 @@
 Compiled from "AppConstants.java"
 public class org.mozilla.gecko.AppConstants {
-  public static final java.lang.String ANDROID_PACKAGE_NAME;
-  public static final java.lang.String MANGLED_ANDROID_PACKAGE_NAME;
-  public static final java.lang.String BROWSER_INTENT_CLASS_NAME;
-  public static final java.lang.String SEARCH_INTENT_CLASS_NAME;
-  public static final java.lang.String GRE_MILESTONE;
-  public static final java.lang.String MOZ_APP_ABI;
-  public static final java.lang.String MOZ_APP_BASENAME;
-  public static final java.lang.String MOZ_APP_BUILDID;
-  public static final java.lang.String MOZ_APP_ID;
-  public static final java.lang.String MOZ_APP_NAME;
-  public static final java.lang.String MOZ_APP_VENDOR;
-  public static final java.lang.String MOZ_APP_VERSION;
-  public static final java.lang.String MOZILLA_VERSION;
-  public static final java.lang.String MOZ_STUMBLER_API_KEY;
   public static final boolean MOZ_STUMBLER_BUILD_TIME_ENABLED;
-  public static final java.lang.String MOZ_CHILD_PROCESS_NAME;
-  public static final java.lang.String MOZ_UPDATE_CHANNEL;
-  public static final java.lang.String OMNIJAR_NAME;
-  public static final java.lang.String OS_TARGET;
-  public static final java.lang.String TARGET_XPCOM_ABI;
-  public static final java.lang.String USER_AGENT_BOT_LIKE;
-  public static final java.lang.String USER_AGENT_FENNEC_MOBILE;
-  public static final java.lang.String USER_AGENT_FENNEC_TABLET;
-  public static final int MOZ_MIN_CPU_VERSION;
-  public static final boolean MOZ_ANDROID_ANR_REPORTER;
   public static final java.lang.String MOZ_PKG_SPECIAL;
-  public static final boolean MOZ_ANDROID_RESOURCE_CONSTRAINED;
-  public static final boolean MOZ_SERVICES_HEALTHREPORT;
-  public static final boolean MOZ_TELEMETRY_ON_BY_DEFAULT;
-  public static final java.lang.String TELEMETRY_PREF_NAME;
-  public static final boolean MOZ_TELEMETRY_REPORTING;
-  public static final boolean MOZ_CRASHREPORTER;
-  public static final boolean MOZ_DATA_REPORTING;
-  public static final boolean MOZ_LOCALE_SWITCHER;
-  public static final boolean MOZ_UPDATER;
-  public static final boolean MOZ_WEBSMS_BACKEND;
   public static final boolean MOZ_ANDROID_BEAM;
-  public static final boolean MOZ_ANDROID_APZ;
-  public static final boolean RELEASE_BUILD;
-  public static final boolean DEBUG_BUILD;
-  public static final boolean MOZ_MEDIA_PLAYER;
-  public static final boolean MOZILLA_OFFICIAL;
   public static final boolean ANDROID_DOWNLOADS_INTEGRATION;
-  public static final boolean MOZ_LINKER_EXTRACT;
   public org.mozilla.gecko.AppConstants();
   static {};
 }

After:

chocho:gecko nalexander$ diff -U 3 <(javap -classpath objdir-droid/mobile/android/base/constants.jar org.mozilla.gecko.SysInfo) <(javap -classpath objdir-droid/mobile/android/base/jars-proguarded/constants.jar org.mozilla.gecko.SysInfo)
chocho:gecko nalexander$ diff -U 3 <(javap -classpath objdir-droid/mobile/android/base/constants.jar org.mozilla.gecko.AppConstants) <(javap -classpath objdir-droid/mobile/android/base/jars-proguarded/constants.jar org.mozilla.gecko.AppConstants)
Flags: needinfo?(nalexander)
https://hg.mozilla.org/mozilla-central/rev/d1a8403c04e5
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 36
Product: Firefox for Android → Firefox Build System
Target Milestone: Firefox 36 → mozilla36
You need to log in before you can comment on or make changes to this bug.