cc needs to know what stl was selected, promote stl from a generic
feature implementation to a fixed type pointer.
Change-Id: I950ef947f7cd254fe3074f4ff240bb2b90b9116c
Exported cflags are needed by a variety of cc module types. Refactor
them into an object that can be composed into any cc module type.
Change-Id: I7427ba71085917ca3ec522abadfa2bf33ab43440
This will allow modules to specify a local script file that will be
expanded to the proper path in $tool, and will automatically be added to
the dependencies.
Change-Id: Icea4046b1fe2fd7c543aa33913d1a53201b15353
Add two cc properties: `generated_sources` and `generated_headers`,
instead of just adding genrule modules to `deps`. Label these with the
dep tagging mechanism, add the generated_headers paths to the include
paths, and add dependencies to generated headers for each compile.
Add dependencies so that regular sources can include generated yacc
headers, not just other generated lex/yacc files. Static/shared specific
sources still don't have dependencies to or from regular sources though.
Switch from an implicit dependency on generated files to an orderonly
dependency, since the depfile will take care of the necessary implicit
dependencies for incremental builds.
Change-Id: I436675acb1f57329d98b81c56dcb4384201a68ea
Blueprint now requres DependencyTags to be passed to AddDependency
calls. Use the tags to avoid setting member variables on modules, which
will be lost after the mutators have been called.
Change-Id: I8c1d9ed1db85a300e14394b911a516d361ba9f75
The deps property is handled by blueprint, which doesn't give the
flexibilty of handling it within soong. Switch to using objs instead.
Change-Id: Ib8273546578b31b186a3cf1566e80a5eb11943b7
The make macros add these to the linker lines even if the default
compiler flags are being skipped.
This also allows us to add another runpath for test binaries, which are
currently being installed in:
<out>/host/linux-x86/nativetest[64]/<test>/<binary>
So they need to use ../../lib[64] as a rpath.
Change-Id: Ia7e954cdf63bc627a8f71d01c953530355c248ab
Instead of having the baseCompiler adjust the Ldflags, teach
objectLinker about ToolchainLdflags. And don't assume that
ToolchainLdflags will work for Clang too, add a ToolchainClangLdflags
call.
Change-Id: I5f546e46f32edf3fcf75a44bee2c5ee103bc5de3
Some of these are updates from the old build system, others are just
differences/bugs being corrected.
Change-Id: Ied7f47ade495dcb26ba3611e636869cba283860f
Limit arm cpu variants to armv7-a-neon only, and handle a generic
armv7-a-neon cpu variant. Add arm64 cortex-a53 cpu variant. Sanity check
the arch variant against supported versions.
Change-Id: I8ecdea4cd36d9c82e1f29b158efc131f8b1cbc4d
LOCAL_MODULE_STEM adds the expected extension to the installation path,
remove the extension from the filename.
Change-Id: I54dbcfa73d8d07fc3630caf2d582160003e28f79
Disable installing static libraries for now by resetting the installer
when creating a static library variant.
Change-Id: I9360b5c57d95fc0712539accb9450b5fa402fade
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