Commit graph

64 commits

Author SHA1 Message Date
Ying Wang
3e55609134 Support to dist unbundled files for bundled build
Usage:
LOCAL_DIST_BUNDLED_BINARIES := true
The dist files will include the jni shared libraries and the apk with
jni libraries stripped.

Bug: 8181626
Change-Id: I4a047d786ad35b948b4ad7a51adf37321dbe395c
2013-04-10 22:06:02 -07:00
Dianne Hackborn
a1fece009f Add LOCAL_APK_LIBRARIES argument.
This allows you to build apks that link against other
apks using the framework's new shared library apk feature.

Also if you are using LOCAL_APK_LIBRARIES, then LOCAL_DEX_PREOPT
will not be allowed.  This is because using preopt means the
apk is stripped of its dex file, so the pre-installed apk can't
be redexed if its associated library changes.  (Even if the build
system didn't strip the dex, Dalvik still has issues because it
assumes a pre-odex file is always valid.)

Change-Id: I952c0d24f8975f75aff67f78b5faeec91144c3e7
2013-03-12 10:50:28 -07:00
Ying Wang
f7084ca921 Run zipalign after classes.dex is removed from the apk
If LOCAL_DEX_PREOPT is enabled.

Change-Id: Ie2a706fbb77bc31c9fdb01c8435819c5de97ea28
2013-02-25 16:58:05 -08:00
Stephen Hines
e719f28d93 Build rules for Renderscript compatibility library.
Bug: 7419958
Change-Id: I2e0f0bb632e6ff22b2cf1a1b96b28364637995cc
2012-12-12 14:58:02 -08:00
Ying Wang
31df068b38 Additional certificates support for an apk.
Change-Id: I5b35d5728ba9d65f7ece956127270a9ca2ea0efe
2012-11-13 10:56:04 -08:00
Ying Wang
3ea0a81c2b am d19511a6: am c3a4cfe9: Merge "Support EMMA_INSTRUMENT in both full and unbundled builds." into jb-mr1-dev
* commit 'd19511a6657efc7f1a7e544df04f076223f8fe65':
  Support EMMA_INSTRUMENT in both full and unbundled builds.
2012-08-22 15:27:37 -07:00
Ying Wang
af4800c8a6 Support EMMA_INSTRUMENT in both full and unbundled builds.
Bug: 6987838
- With this change, use "EMMA_INSTRUMENT=true" to enable emma in full or
  unbundled build.
- You don't need to add "LOCAL_STATIC_JAVA_LIBRARIES += emma" any more for
  unbundled apps.
- Now a single var LOCAL_EMMA_INSTRUMENT replaces the previous
  LOCAL_NO_EMMA_INSTRUMENT and LOCAL_NO_EMMA_COMPILE.
- By default, if EMMA_INSTRUMENT is true, emma is enabled for only
  non-test apps.
- A new global var EMMA_INSTRUMENT_STATIC. It enables EMMA_INSTRUMENT
  and builds emma into apk/jar as static library, instead of using emma
  as part of shared library core.jar.

Change-Id: I0aa219e83074879ececc159b5b07c39eb07ccc00
2012-08-22 12:11:01 -07:00
Ying Wang
54fdb473b6 Retire LOCAL_NDK_VERSION.
We are now unifying the NDK versions of unbundled native code to always
use the latest NDK.
We don't need the variable LOCAL_NDK_VERSION now.
To build native code with NDK, you need set just LOCAL_SDK_VERSION.

Bug: 6932421
Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
2012-08-14 11:58:13 -07:00
Ying Wang
7f8d0ba6bd Adopt the new prebuilts/ndk/<number> paths.
Bug: 6932421
Change-Id: Iba7200aacef2201001f92c6ffa020881f0b528ea
2012-08-14 11:55:46 -07:00
Ying Wang
848020f22a Retire LOCAL_NDK_VERSION.
We are now unifying the NDK versions of unbundled native code to always
use the latest NDK.
We don't need the variable LOCAL_NDK_VERSION now.
To build native code with NDK, you need set just LOCAL_SDK_VERSION.

Bug: 6932421
Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
2012-08-14 10:16:02 -07:00
Ying Wang
939c427de2 Merge "Automatically add Java resources carried by static Java libraries." 2012-08-13 08:46:03 -07:00
Ying Wang
f0dd8584fd Adopt the new prebuilts/ndk/<number> paths.
Bug: 6932421
Change-Id: Iba7200aacef2201001f92c6ffa020881f0b528ea
2012-08-10 10:57:37 -07:00
Ying Wang
8548062922 Automatically add Java resources carried by static Java libraries.
Bug: 6892294
Change-Id: I3ff71ee3d7b9ccdfde6a5284cc350864fbffa71f
2012-08-09 15:24:27 -07:00
Ying Wang
721449ea04 Allow Java resource in apk.
Bug: 6892294
Change-Id: I093bddf7326d600689ff2ec3318741a5270751cc
2012-07-31 09:40:00 -07:00
Ying Wang
3caa951610 Merge "lint support." 2012-06-19 09:23:38 -07:00
Ying Wang
0d570a7163 lint support.
Bug: 6167394
$make lint-<app-name>       # to lint on a single module
$make lintall               # to lint on all packages in the source
                              tree.

Change-Id: I4decc76fb75793ce44809232b0ec72b766fbb434
2012-06-18 18:45:40 -07:00
Ying Wang
692a3d598d Revert "Convert LOCAL_LOCAL_JNI_SHARED_LIBRARIES to LOCAL_REQUIRED_MODULES in a full build"
This reverts commit 81f0fd6cdb

The change broke the CTS build:
CTS does need the jni library embedded in the apk.
2012-06-18 15:29:10 -07:00
Ying Wang
81f0fd6cdb Convert LOCAL_LOCAL_JNI_SHARED_LIBRARIES to LOCAL_REQUIRED_MODULES in a full build
To save space.

Change-Id: I7c88c13e4225bed89106917de57cbae74fc79ab8
2012-06-14 15:29:20 -07:00
Ying Wang
71004f8135 Clean common intermediate files if overlay changed
This change cleans the packages' intermediate files if their overlays
changed between incremental builds.
If two builds have different overlay, they will have different R
classes, and so the jar files in the common intermediate dirs can
not be shared. Therefore incremental build can't be applied.

This change detects the overlay changes on package's base.
If a package's overlay is different from the previous build, its common
intermediate dir is nuked.
This makes broader incremental builds possible.

Change-Id: I368610ebbbbc85a80f9aecd714ab22cd78da7f12
2012-06-04 18:02:55 -07:00
Ying Wang
0ec188f1c1 Support to build against prebuilt current SDK in unbundled branch
Bug: 6465084
With this change and prebuilt current SDK checked in, you can build
unbundled apps with LOCAL_SDK_VERSION current in an unbundled branch.

Change-Id: I4efcee611d08a3a903bd6bf5a80de11500564206
2012-05-10 17:40:49 -07:00
Kevin Hester
6c703628c5 Allow packages to place manifest files in any directory
via a new definition LOCAL_ABS_MANIFEST_FILE.  The existing
LOCAL_MANIFEST_FILE variable will also be supported.

(Necessary if manifests are being programmatically generated in the
intermediates directory)

Change-Id: I77a8eb1b8040b966b944464281d00c161ff34d3c
2012-04-12 15:35:53 -07:00
Ying Wang
00d1d614f6 am b3e6fa5e: Merge "new LOCAL_DEX_PREOPT option "nostripping"" into ics-mr0
* commit 'b3e6fa5e6bdaf6e1e827c3e79ffda1ef796b3a1b':
  new LOCAL_DEX_PREOPT option "nostripping"
2011-10-27 04:04:50 +00:00
Ying Wang
79e3dec83e new LOCAL_DEX_PREOPT option "nostripping"
Set "LOCAL_DEX_PREOPT := nostripping" to do dex-preopt while not strip
the classes.dex.

Bug: 5396625 5502338
Change-Id: Ie8dea4414ebeefeae89c6433b246faea27baa5e7
2011-10-24 12:29:25 -07:00
Dianne Hackborn
9baabf8d7e am a0f464a8: New PRODUCT_AAPT_PREF_CONFIG.
* commit 'a0f464a8e7f006177db084df7e925bbb8e5ffed3':
  New PRODUCT_AAPT_PREF_CONFIG.
2011-10-17 11:31:38 -07:00
Dianne Hackborn
a0f464a8e7 New PRODUCT_AAPT_PREF_CONFIG.
To use the new aapt --preferred-configurations option.  For use with Prime
to be able to strip everything but xhdpi density bitmaps selectively,
not stripping when this would result in no data for the resource.

Change-Id: I4e1012929b8f9b0b1e79c06496647f69661ba1f2
2011-10-14 19:37:57 -07:00
Ying Wang
32fa8a313c Support to package prebuilt NDK libstlport_shared.so into apk
To package libstlport_shared.so, use the following syntax in the app
module definition:
LOCAL_NDK_STL_VARIANT := stlport_shared
LOCAL_NDK_VERSION := <num>

The rationale behind is:
The NDK prebiult libstlport_shared.so is intentionally different from
the system libstlport.so.
Essentially they are slightly different versions of the library so
shouldn't be mixed up.
libstlport.so is used by the system, but not exposed by the NDK, it is
routinely tweaked in various ways between platform releases, and there
is no guarantee that its ABI is stable, or that it will not be replaced
by something else in the future.
libstlport_shared.so is typically distributed with application packages,
and should not be part of the system.

Change-Id: I72c9911781f7d8402687e9891f3f605f3a60be22
2011-10-13 17:31:45 -07:00
Ed Heyl
213c1f985d am 81703a19: Merge "Support for product-specific dev keys." into ics-factoryrom
* commit '81703a19001ec219c35cb0ecf9bafb6e0dbc1e1d':
  Support for product-specific dev keys.
2011-10-04 16:15:25 -07:00
Ying Wang
3c21fe5b12 Support for product-specific dev keys.
Change-Id: Id577a72ee9f7cd70e8ca77efcbf10a37885c7d6f
2011-10-04 10:50:08 -07:00
Dianne Hackborn
14169bcea8 New LOCAL_SDK_RES_VERSION config var.
This allows an app to target a different SDK level for its resources
than it uses for its Java code.  This is useful because it is generally
safe to use various newer symbols like attribute names, as older versions
of the platform will simply ignore them.

Change-Id: Ida19ec9f259c4ea70de846e9a63546e263b1c91e
2011-09-19 10:42:04 -07:00
Ying Wang
d90ff5e4c3 Fix possible unnecessary rebuild
This fix the unnecessary rebuild in the following scenario:
A package rename its manifest package name and the old R.java was still
in its intermediate dir. The rule to generate R_file_stamp may always
copy the old R.java with timestamp reserved and the R_file_stamp never
gets updated.

Change-Id: I659cbb00f0e7734d7d71e1ca66065f587c8dee2c
2011-05-26 13:43:57 -07:00
Ying Wang
bb9c230b68 Set the default app sdk verstion to LOCAL_SDK_VERSION
Instead of using the DEFAULT_APP_TARGET_SDK, which is the hardcoded in
the build system, ie the sdk version of the current source tree.

Change-Id: I2fae3521300cc6b2449df3659ded7f7a397609c0
2011-04-08 17:27:35 -07:00
Ying Wang
4f1ab92aac Move screen density config from PRODUCT_LOCALES to PRODUCT_AAPT_CONFIG
With this change, PRODUCT_LOCALES will contain only locales.
Other aapt config flags, such as *dpi, small/normal/large/xlarge,
should go to PRODUCT_AAPT_CONFIGS.
Bug: 4086309

Change-Id: I922f153d79777a9522c542a3907111193b40e7b7
2011-03-15 13:19:30 -07:00
Ying Wang
dca35796cf Remove unused variable DONT_INSTALL_DEX_FILES
Change-Id: Ic91ba1f551e0a1a81aaac438fbd1d359a71a7bfa
2011-02-17 17:03:32 -08:00
Ying Wang
94978cf495 Disable dexpreopt for unbundled build.
Change-Id: Iad0cc41cfad2533703a0dddad743720c43ddb667
2011-01-12 11:12:06 -08:00
Ying Wang
8b07ed87fa LOCAL_AAPT_INCLUDE_ALL_RESOURCES
Set this flag to include all the resources in the given dirs.
Bug: 3313179

Change-Id: I68c02b24174bebe41a5948810cc2f49cc916e51c
2010-12-28 13:16:06 -08:00
Ying Wang
1214aeb75f Add framework includes for any aidl source.
Before this change, only aidl in apps gets the framework directories in
their include path.

Change-Id: Ieeaa162f577ea280fe71e4959cc73176b4dfd8ad
2010-12-14 10:57:54 -08:00
Patrick Scott
fa30f5b8c4 Replace grep | head | awk | tr | tr with awk.
Head was causing a SIGPIPE in grep that only appeared when using
distss.  This wasn't causing any build problems but spewed a lot
of warnings.

However, this change trims the command from 5 proccesses to 1 which is
nice.

Change-Id: Iac846ec1d01a022976cfc5fd28091a720ab161e7
2010-11-08 09:24:37 -05:00
Ying Wang
3efd768a0d resolved conflicts for merge of 9f28f0d7 to master
Change-Id: I8fbf8846fcb41ca6cb5f3e362484ec895fe7f4aa
2010-09-22 17:19:11 -07:00
Ying Wang
e7874c4308 Integrate dexpreopt into the build system.
Change-Id: Id67f85d0f5c8674f5bc22e431114ca73625811ef
2010-09-22 16:51:53 -07:00
Ying Wang
035ef06522 Fix dependency.
Compile renderscript before building the package-export.apk.

Change-Id: Ibb7a6f940816f5839b27af94ca9b3895a84ef2ed
2010-08-18 20:30:52 -07:00
Evan Charlton
9b6865f826 am 606540b7: resolved conflicts for merge of f2bfa76c to gingerbread-plus-aosp
Merge commit '606540b739599c8f079baa2a03b5f0501b148eb2'

* commit '606540b739599c8f079baa2a03b5f0501b148eb2':
  Packages can specify where to find AndroidManifest.xml
2010-07-26 10:31:25 -07:00
Evan Charlton
121a78733a Packages can specify where to find AndroidManifest.xml
By overriding LOCAL_MANIFEST_FILE, a package can now specify which
AndroidManifest.xml file to use. This also allows for AndroidManifest.xml to
be in a non-standard location, though that's not recommended.

Change-Id: Ib6d1baeef7601e5a93d4ce64d18883d45373fc12
2010-07-23 11:03:29 -07:00
Ying Wang
0bd59a0a58 Build system support for RenderScript
With this change, you can add your .rs files to LOCAL_SRC_FILES.
The .rs files will be compiled by slang and the output .java files
will be compiled into the jar, while the generated .bc files will
be put into the final apk as raw resources.

Change-Id: Icde3d6139951d6d039b4b37376e72e1fc5c8b0d4
2010-07-19 13:38:56 -07:00
Jack Palevich
a0ab29b986 Add LOCAL_JNI_SHARED_LIBRARIES_ABI build variable.
LOCAL_JNI_SHARED_LIBRARIES_ABI allows individual APKs to specify
specify the path where JNI shared libraries are stored in the APK. This
is useful if you want to build an APK that supports a generic version of
an ABI (e.g. armeabi) from a device configuration where
TARGET_CPU_ABI is set to a more specific version of an ABI (e.g.
armeabi-v7a.)

Note that specifying the LOCAL_JNI_SHARED_LIBRARIES_ABI does not
affect how the local JNI shared libraries are built. It just controls
where the local JNI shared libraries are placed within the APK.

Defaults to TARGET_CPU_ABI.

Change-Id: I1cbb293e0c953688945fc147c7fc367421cf860b
2010-06-18 15:38:07 +08:00
Joe Onorato
16fa4b290e Rename is_unbundled_app_build and UNBUNDLED_APP_BUILD to TARGET_BUILD_APPS.
Change-Id: I79e6f60e009dad3a48709962347441e4ca0c337a
2010-06-10 18:38:25 -07:00
Ying Wang
0f6f4ca54e Unbundle the build system.
Change-Id: I88912d876c3972212e8871b3e5b3b8b6d2da34d0
2010-06-09 10:26:26 -07:00
Ying Wang
5291130983 Cherry-pick unbundled build changes from master
Change-Id: I82cab32f00b7b729d9b01c8e1532c8bf0ad2fb92
2010-05-26 13:39:31 -07:00
Ying Wang
c61d5932d3 Don't force localization for package tagged as tests.
Change-Id: I612598443371fc388cf08ddde7ebdd1d3dec9c7e
2010-03-10 16:02:42 -08:00
Ying Wang
a17463fcac Fix proguard_option_file. 2010-03-03 14:32:06 -08:00
Ying Wang
85ab497a4e Turn on Proguard by default for user/userdebug builds. 2010-02-19 18:39:13 -08:00