Extract Soong's install path and put it in the generated Android.mk file
so that tests get installed in the correct place.
Change-Id: Id4726855c5677855406de20773a5da533bdd4cea
If BUILDDIR is a local symlink to another directory in the same parent
directory (out -> out.angler), then using out and .. as relative paths
to get back and forth work.
But if BUILDDIR is a symlink to another directory altogether (out ->
/mnt/sdd/out.master), then we shouldn't be relying on relative paths (so
that the source directory can still be moved).
Change-Id: I946c8116090410ab2b935eafba9b6e96f5f2f1dd
Refactor all of cc in order to use composition instead of inheritance.
All cc module types exported by cc are now *cc.Module objects, with
compilation, linking, and installing steps delegated to different
objects in order to form the full module type. Additional features that
modify dependencies and flags can be inserted in a features object list,
and custom module types can be created by adding a Customizer object
that can modify properties.
Change-Id: Ie1283d14920f7856f6947b0530606b2f4d58fab0
These are the environment variables used by make to override the
llvm/clang prebuilts. As far as I know, these should only be used when
building or testing a new clang drop.
I would have this handled by make and put in soong.variables, but I
expect this to be one of the first options removed from make and
exported from Soong to Kati.
Change-Id: I7a3a70ee44fc4b1e56a5e200e2a7ced77d4c5692
There are stripped down branches used to build other things than just
unbundled apps (like the AOSP llvm branch used to build llvm prebuilts).
Change-Id: Id772eac8c4622458591b52f9f27723fdb83f9a85
On an unbundled build, if an include directory was missing, I generated
an intermediate path with PathForModuleOut. That included another copy
of $OUT_DIR, which I didn't notice. This fails if $OUT_DIR is an
absolute directory. Just manually set up the path for now.
Change-Id: I3821d562c929e69ed2fccb7e88affed384a7789e
Treat absolute paths specified from a module (include_dirs, etc) like
actual module dependencies. If it doesn't exist, produce a ninja error
instead of refusing to create the ninja file.
Change-Id: I662b9bb2af04b2006984a07d1ccb700b63dde582
Currently, whole_static_libs with missing dependencies are silently
ignored. Instead, when getting the object files from the other module,
add its missing dependencies to the current module.
Change-Id: I12472dede2dfafdded56268bfd37f60063b637c4
Build binaries usable on older machines even if older SDKs are not
installed. Older SDKs can no longer be installed on newer Xcode
versions.
Port of https://android-review.googlesource.com/207242
Change-Id: If66f2eef7593bce9fb858fc7b71369f55dd362e4
On some branches, some of these projects may not exist. Use dirs for the
blueprint / soong projects, and optional_dirs for everything else.
Change-Id: I2b84948f1818941a21981c135bd6237852bfcc8b
In make these clang-specific flags are marked as EXTRA and added after
the common flags.
This was causing differences between compiled objects in make and soong
because -fstack-protector-strong was before -fstack-protector in soong
instead of after.
Change-Id: I59dd6dcfdaf5ec9184a09e79efe80b62cfe48dbb
* changes:
Add system/media/audio/include to commonGlobalIncludes
Add -Werror=date-time to target builds
DeviceUsesClang should default to true
clang now supports -fdebug-prefix-map=.
Turn on ninja errors for duplicate rules
Update to use the latest clang-2629532
This no longer switches between dlmalloc and jemalloc, it just changes
the jemalloc cflags for non-svelte devices.
Change-Id: Ic6975de89a53a42e4735dbdcde68367ebfc42f9b
Sandy Bridge actually doesn't have all of these options. For example AVX is only
available on the higher-end SKUs (not on Celeron G550).
Soong port of https://android-review.googlesource.com/204730
Change-Id: Ib595a9a6b464626d0c88525c6aaa4d69176645cc
Now, instead of combining multiple binaries into a single BUILD_PREBUILT
definition, use separate instances for every module variant. This fixes
HOST vs HOST_CROSS prebuilts, and should be saner overall. From make,
these should look the same, we're only just using one instance of
prebuilt_internal per BUILD_PREBUILT call instead of multiple.
With that simplification, we don't have to store as much state, and can
directly write into the buffer.
Also switch from io.WriteString to fmt.Fprintln, which will require
fewer explicit string concatentations, and we don't need to worry about
newlines.
Allow the module-provided functions to return errors.
Change-Id: If30453b21fa21387f635626618d8fabfc78e6859
Make was depending on the installed path for ckati/makeparallel, since I
didn't want to hardcode intermediate paths.
For modules in USE_SOONG, we export the intermediate paths, so we don't
need to install.
Change-Id: I90bf3ad1461e239a8a40fd0c8ddbc679cf00d126
* changes:
Add Mega_device configuration option
Toolchain modules use GCC
Apply ToolchainLdflags to clang builds
Add Clang Asflags for mips
Remove libgcov for now to fix X86 devices
Change clang extra flags behavior
This lets you configure soong to build for every supported architecture
in one build. Installation is disabled, since it's not actually setting
up multiple devices, and would try to install multiple versions to a
single path.
Configurations that do not build are commented out.
Change-Id: I92ddea0b9ddbd53e12187c7f581b8ac5bd5fdec3
We should be using libprofile_rt for clang builds, but we only need to
add either one if code coverage is enabled. This will be added again
when we get more complete support.
Bug: 26525326
Change-Id: Ic3da07c896be266bb35747a79c184e3d5bb8df70
Move the clang extra flags into the *ClangGlobal*flags variables,
instead of adding them to every clang-based module. This means that
they're only applied when !no_default_compiler_flags, like make.
Change-Id: I43b1378d1d932d9aecfd8724a492d0d7716f7631
Some bionic subdirectories need to be built with soong, and others with
makefiles. Search the bionic subdirectories invidivdually so the
bionic/Android.bp file doesn't prevent bionic/Android.mk from being parsed.
Change-Id: I66846f0175a5a01266adc0b792820bb82ffd1e14
Export all modules to out/soong/Android.mk, even if they have a
corresponding Android.mk file next to the Android.bp file.
Change-Id: I14b67b1108f0c0ed8f9d9202c4af3a37f5cbf7d1
art and libnativehelper have collisions between the top level directory
name and a module name, remove them from the root Android.bp file until
they have an Android.bp file to avoid a glob dependency on the directory.
Bug: 25797955
Change-Id: Ibd33df17450b171ec2390653e4cf3b00fc242831