Commit Graph

5734 Commits

Author SHA1 Message Date
Joe Onorato 09e94ab074 When compiling with the lite protobuf option, pass the option to aprotoc to force the lite runtime.
Test: make
Merged-In: I450f89d144d496a6ddfccc6a6a5a679a05809595
Change-Id: I450f89d144d496a6ddfccc6a6a5a679a05809595
2017-12-15 08:40:27 -08:00
Treehugger Robot bf606c198b Merge "Fix: duplicated definition of llndk_headers module" 2017-12-15 06:34:41 +00:00
Colin Cross 1cb5d622d1 Merge "Support more all-*-files-under functions in androidmk" 2017-12-15 02:32:42 +00:00
Treehugger Robot 70b86e411c Merge "Fix typo." 2017-12-15 02:29:54 +00:00
Dan Albert 6ab43d8597 Allow NDK static libraries to use the NDK sysroot.
Building a static library for the NDK only requires that the NDK
headers be available. Currently, A module with both
`static_ndk_lib: true` and `sdk_version: something` will have a cyclic
dependency since it both needs the NDK and is in the NDK. Create two
NDK timestamp files: one for the isolated parts of the NDK (headers
and stub libraries), and another for the full sysroot with the static
libraries.

Test: set static_ndk_lib on compiler-rt-extras, make ndk
Bug: None
Change-Id: Iab50ffa0e4cbf4cd164f376e15281030c7aad984
2017-12-14 14:13:56 -08:00
Dan Albert 281f22b3f2 Don't install host or VNDK libs to the NDK.
Test: set `static_ndk_lib: true` on compiler-rt-extras, make ndk,
    `find out/soong/ndk -name '*.a'`
Bug: None

Change-Id: I6e82d3628efb602963552d3a91ee6176e8f3d2ff
2017-12-14 14:13:56 -08:00
Dan Albert 1e306c172f Fix typo.
Test: Not possible to test
Bug: None
Change-Id: Iba01e47cd8f59860a49f9859309ed188d0915e38
2017-12-14 14:13:56 -08:00
Colin Cross 3ce001aa40 Support more all-*-files-under functions in androidmk
Add support for all-aidl-files-under, all-Iaidl-files-under,
and all-logtags-files-under to android.mk

Test: manual
Change-Id: I5e187e0c5f9d1c63c8632f84ab47665ba85a5678
2017-12-14 12:28:41 -08:00
Colin Cross e1731a5803 Export app certificates to Make for apkcerts list
Bug: 70669383
Test: m apkcerts-list contains framework-res.apk
Change-Id: I38af458e4262371c9c8368b5eebcff063a9bc359
2017-12-14 12:28:41 -08:00
Colin Cross 16056060d5 Add privileged app support in Soong
Allow apps to specify that they should be installed in priv-app,
and export the value to Make which normally handles installation.

Test: m checkbuild
Change-Id: I79a05e7bb6ec0df5c31429e2f4592c6fd57dab70
2017-12-14 11:25:45 -08:00
Colin Cross 7079856c62 Remove export_package_resources check when exporting apps to Make
All of the properties for Make were inside an incorrect
export_package_resources check, which only worked because
the only app so far was framework-res, which had the
property set.

Test: m checkbuild
Change-Id: Idd9be1f497c31b2bd38fee0a83bb4756c6e94305
2017-12-14 11:25:45 -08:00
Jiyong Park a46a4d5a13 Fix: duplicated definition of llndk_headers module
A llndk_headers module was double defined; one as a header lib and the
other as a static lib. Since llndk_headers is a header lib, the static
lib is now deleted.

Bug: 70617292
Test: build. (TestLlndkHeaders added)
Change-Id: I1a3e9d1a73616ea4faf03664a7a4b03bd5955629
2017-12-14 21:28:53 +09:00
Pirama Arumuga Nainar 690ed55363 Add cflags sub-property to 'pgo'
This (possibly arch-specific) property adds extra flags while building
for profiling.  For example, dex2oat requires setting
'-Wno-frame-larger-than' when instrumentation is enabled.

Test: Build 'pgo' module with the new property and inspect build.ninja
Change-Id: Ia36422a400b0e0b87cbb33b1c8e565569475a56d
2017-12-13 17:48:33 -08:00
Chih-Hung Hsieh 086ad294cc Add default -Werror to libstagefright/codecs.
Bug: 66996870
Test: normal build
Change-Id: I16c1d3b4b7ab3679b12dd0d94e5d130e33a27009
2017-12-13 15:59:53 -08:00
Chih-Hung Hsieh 38ed2ab5f1 Add default -Werror to libese/third_party/NXPNFC_P61_JCOP_Kit
Test: normal build
Change-Id: Ie20280898ac6bce8cff6caf91b93be20ef313488
2017-12-13 22:26:30 +00:00
Steven Moreland c2b9f060d9 Add split PRODUCT_FULL_TREBLE variables to Soong.
As a follow-up to this, Treble will be removed from Soong.

Bug: 62019611
Test: manual
Change-Id: I840e0d6130b834299d0cf3603443cc4c3f7f8e6d
2017-12-13 22:21:46 +00:00
Chih-Hung Hsieh 7434c565ff Add default -Werror to libeffects and mediaextractor.
bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: Ic0522ede6c62382c1c36f11ababcd389f7bcffd5
2017-12-12 18:13:02 -08:00
Chih-Hung Hsieh 7dd8778e48 Add default -Werror to frameworks/webview/chromium.
Bug: 66996870
Test: normal build
Change-Id: Ifb3a44dd073dd7f028295e102bd561feaf98cf26
2017-12-12 17:57:57 -08:00
Chih-hung Hsieh e41f450a35 Merge "Add default -Werror to libbufferhub" 2017-12-13 01:53:46 +00:00
Justin Yun 8fe1212261 Install current VNDK libs to the versioned directories.
If PLATFORM_VNDK_VERSION has a version $VER other than "current",
install current VNDK libs to /system/lib[64]/vndk[-sp]-$VER.
Otherwise, they will be installed to /system/lib[64]/vndk[-sp].

Bug: 69883025
Test: device boot
Change-Id: Ifa8564f39687dab5b407bf2178b13022625a94f3
2017-12-13 10:47:44 +09:00
Treehugger Robot 160cdbe773 Merge "Add myself as an owner for NDK things." 2017-12-13 01:35:47 +00:00
Stephen Crane 10cd187963 Propagate LTO type from binary/DSO to object files
Propagation of LTO flags from a main binary or library to its static
dependencies is necessary so that objects being linked with LTO are built as
bitcode rather than native objects. This propagation was broken when thin LTO
was added to the build system. This patch propagates the LTO mode (thin or full)
down to object and archive dependencies.

Test: Build libhwui with full and thin LTO and check that intermediate objects
are LLVM bitcode.
Change-Id: Ic57a80d75052d86940db076fbc0f5375a79c89a1
2017-12-12 14:33:45 -08:00
Chih-Hung Hsieh 1bb807bb45 Add default -Werror to libbufferhub
bug: 66996870
Test: normal build
Change-Id: I1a5d17a2752972f91fd7196128c10dddedca177d
2017-12-12 14:33:18 -08:00
Colin Cross e87040b2eb Allow Soong to generate its own build documentation
Add a rule in soong that re-executes soong_build in order to
generate build documentation.  This allows Soong to customize
the documentation.

Bug: 70516282
Test: m soong_docs
Change-Id: If143cfacd6ac20274cd7bb8d8fab0c07025a5553
2017-12-12 11:12:32 -08:00
Colin Cross 59014396ba Make SingletonContext.Rule take a blueprint.RuleParams
Make the currently-unused SingletonContext.Rule match
ModuleContext.Rule and take a blueprint.RuleParams instead
of an android.RuleParams, and delete android.RuleParams.

Test: m checkbuild
Change-Id: I018685a3dc13f60825b5ba383ef365df2bc98dfc
2017-12-12 11:12:32 -08:00
Chih-hung Hsieh 6f822b8b93 Merge "Add default -Werror to sdk/emulator/mksdcard." 2017-12-12 07:36:36 +00:00
Treehugger Robot ae6bd3d758 Merge changes If54d9c69,Ibc253514
* changes:
  Fix PathForPhony
  Allow java manifest property to reference filegroups
2017-12-12 04:05:22 +00:00
Chih-Hung Hsieh a227ea38f0 Add default -Werror to sdk/emulator/mksdcard.
Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: I6499be53a2539143ad6785c1513fe4bd5d3a9910
2017-12-12 01:45:01 +00:00
Chih-hung Hsieh a3818107e8 Merge "Add default -Werror to frameworks/ml/nn." 2017-12-12 01:43:37 +00:00
Treehugger Robot a4823680a1 Merge "Increase per-process file limits for multiproduct_kati" 2017-12-12 00:45:28 +00:00
Colin Cross 74e3fe4cd4 Fix PathForPhony
PathForPhony was prefixing out/soong to all of the phony targets.

Test: m checkbuild
Change-Id: If54d9c692b79751a09eef76c734dd2a1f7db325b
2017-12-11 16:30:14 -08:00
Colin Cross 366938f268 Allow java manifest property to reference filegroups
Also factor out ExtractSourceDep and ExpandSource.

Test: m checkbuild
Change-Id: Ibc253514bc3109d84ec388a05c66b8108af5d6ab
2017-12-11 16:30:14 -08:00
Alan Leung 9f319118e1 Add USE_D8_DESUGAR option in build/soong
Add an option to use D8's desugar instead of the standalone version.

USE_D8_DESUGAR=true m would trigger DCHECK in dex2oat unless
https://android-review.googlesource.com/c/platform/art/+/562595 is
patched in as well.

Bug: 69329508
Test: m && USE_D8_DESUGAR=false m

Change-Id: I864d88e257a2ba0b7f19aa5cced537301950e963
2017-12-11 16:05:51 -08:00
Treehugger Robot d4c03092cd Merge changes I13910647,Ie061e90c,I1c1cb098
* changes:
  Escape genrule commands
  Allow java binary wrapper files to reference filegroups
  Allow globs in tool_files
2017-12-11 23:55:57 +00:00
Jeff Gaston 31603067b0 Escape genrule commands
Bug: 70387174
Test: Put this text into an Android.bp:

    genrule {
        name: "test_genrule",
        tool_files: ["foo"],
        out: ["foo.c"],
        cmd: "for i in a b c; do echo $$i; done > $(out)",
    }

    cc_library {
        name: "libtest_genrule",
        srcs: [":test_genrule"],
    }

  and then run `m -j libtest_genrule`. Although the library
  shouldn't compile, check that it produces a foo.c that has
  "a\nb\n\c\n" and not "\n\n\n".

Change-Id: I139106479439c9b3a95f1a2ecc23e73570d7bd59
2017-12-11 23:55:03 +00:00
Colin Cross c331599a88 Allow java binary wrapper files to reference filegroups
Also allow commands with no tools for the case when standard
shell utilities are used to munge an input file.

Test: m checkbuild
Change-Id: Ie061e90cafe1a0a0db004a89e9a17fb48709cb03
2017-12-11 23:54:35 +00:00
Chih-Hung Hsieh 8fd29d3bb8 Add default -Werror to frameworks/ml/nn.
Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: I6c7fb32b0abaf9b1dc03292daf7c584b1648eeeb
2017-12-11 23:24:46 +00:00
Chih-Hung Hsieh 75f2e70dff Add default -Werror to system/vold/tests.
Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: I730943ace4aa329459d6280d1c2be601f7383343
2017-12-11 23:21:57 +00:00
Chih-hung Hsieh 44c235d4d7 Merge "Add default -Werror to cts." 2017-12-11 23:20:47 +00:00
Tobias Thierer 8b6faf6c8e Merge "Revert "Build with OpenJDK 9 -target 1.8 by default except for errorprone."" 2017-12-11 22:57:51 +00:00
Dan Willemsen 22de216799 Increase per-process file limits for multiproduct_kati
On large branches (250+ configurations), the open file count can go
over the default 1024 soft limit on Ubuntu. Many systems have increased
that default, but for the ones that haven't, at least opt into the
hard limit until this can be refactored to use fewer open files.

Bug: 70370883
Test: prlimit -n256:4096 build/soong/build_test.bash -only-config
Test: ulimit -Sn 256; build/soong/build_test.bash -only-config (darwin)
Change-Id: I7a952ffc89a0149ab65b04db1523d348daa6ab3e
2017-12-11 22:53:16 +00:00
Jeff Gaston 592faab77d Merge "Clearer error if no Android.bp is found" 2017-12-11 21:10:38 +00:00
Tobias Thierer e05f3a5f3f Revert "Build with OpenJDK 9 -target 1.8 by default except for errorprone."
After this revert CL topic, the default toolchain for Android
goes back to being OpenJDK 8.

This revert is being prepared ahead of time in case of
any problems with CL topic:
https://r.android.com/#/q/topic:bug69449021_attempt2

Bug: 69449021
Test: Treehugger
Change-Id: I9ead8d569226bd487baee3c6d5be9ec7033eb56a
2017-12-11 14:54:10 +00:00
Tobias Thierer 13f23a2753 Build with OpenJDK 9 -target 1.8 by default except for errorprone.
(This is cherry-picked from the first attempt to submit this CL
topic, which was reverted after 3 hours because of bug 70286093;
robolectric 3.{1.1,4.2} now stick with OpenJDK 8 to avoid that bug).

Before this CL topic, the build toolchain for .java source files
used OpenJDK 8, targeting 1.8 (v52 class files) by default.

This CL topic switches the default to OpenJDK 9, but still
targeting 1.8 (v52 class files) by default. If USE_ERROR_PRONE
is set to true, then the default remains OpenJDK 8.

Code in the Android platform should generally be unaffected,
but if host tools that are now compiled and run using
OpenJDK 9 are causing problems for your team, then let me
know.

To manually switch back to the old behavior for now (continue
using OpenJDK 8), run this command in your shell:
export EXPERIMENTAL_USE_OPENJDK9=false

Bug: 69449021
Test: Treehugger
Test: Running robolectric tests succeeds on internal-master
      after cherry-picking this CL topic, using the command
      line from http://b/70286093#comment1
(cherry picked from commit 0ae8b548af)

Change-Id: Ide6a7e55126d919a44f89ef8e0bd14fb12ff470e
2017-12-11 14:53:52 +00:00
Colin Cross ac87c992be Allow globs in tool_files
tool_files can be used to add dependencies on files used by tools,
so let it support globs.

Test: m checkbuild
Change-Id: I1c1cb098190e1bb1c81292f6eb0c4ed0e240c1e1
2017-12-08 18:23:57 -08:00
Jeff Gaston 02ae4decb7 Clearer error if no Android.bp is found
Bug: 70036990
Test: touch .out-dir && m -j nothing 2>&1 | grep "must not exist"
Change-Id: Idefa70dafa53bca17134e99185d2c524671bae25
2017-12-08 14:39:37 -08:00
Tobias Thierer 06ae582000 Export makevars ANDROID_JAVA{8,9}_HOME.
These variables are published by config.go for use inside
.mk scripts. They are suitable for rules that need to be
pinned to a particular java/javac version because they do
not (yet) support the other.

Bug: 70286093
Test: Treehugger
Change-Id: Id407fca187fdf6c1947fc9d1ed7cd634fe089384
Merged-In: Id407fca187fdf6c1947fc9d1ed7cd634fe089384
2017-12-08 18:35:43 +00:00
Colin Cross e304cc4575 Merge "Split logtags implementations for cc and java" 2017-12-08 16:14:06 +00:00
Colin Cross 5beccee92c Split logtags implementations for cc and java
Logtags files in cc and java are treated fundamentally differently.
In cc, they are not used for compiling at all, but need to be passed
to Make to be combined into the global logtags list, and logtag files
are listed in a logtags property.  In java they are listed in srcs
and produce generated code that is compiled in, and so shouldn't
also need to be listed in a logtags property.

Move the logtags property to cc and export it to Make from there,
and have java extract logtags files from srcs to be exported to
Make.

Test: m checkbuild
Change-Id: I31d49289efe72db60d2f33566df771b4a3ebc8a0
2017-12-07 15:32:30 -08:00
Jeff Gaston 29e959dd7f Search for files named Blueprints only under build/blueprint
to enable other subprojects to use their own instance of
Blueprint in other directories.

Files named Android.bp are still autodetected throughout the
tree like previously.

Bug: 64363847
Test: mkdir -p subdir \
      && echo "syntax error" > Blueprints \
      && m -j nothing

Test: build/soong/scripts/diff_build_graphs.sh \
      --products=aosp_arm \
      'build/soong:work^' 'build/soong:work'

Change-Id: I8199f12b68dc1699bf44682b86169def37b53a5e
2017-12-07 13:00:51 -08:00