Commit Graph

15216 Commits

Author SHA1 Message Date
Colin Cross 944beef615 Merge "Use correct install paths in generated Android.mk" 2016-03-24 22:02:12 +00:00
Dan Willemsen eea8e6c7e1 Merge "Improve BUILDDIR handling with symlinks" 2016-03-24 20:38:08 +00:00
Colin Cross a23446680f Use correct install paths in generated Android.mk
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
2016-03-24 13:14:12 -07:00
Dan Willemsen 6ac18ecb84 Improve BUILDDIR handling with symlinks
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
2016-03-22 19:53:36 -07:00
Colin Cross ca860ac720 Refactor cc
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
2016-03-21 17:31:04 -07:00
Colin Cross 7253e0b8a4 Update clang version to 2690385
Matches changes in I1226f24b50319e321ea538362b2f26fcd227ca39

Change-Id: Iecb2c7388d91fe9975dbe035b5ce6fec8d32a435
2016-03-21 15:13:10 -07:00
Dan Willemsen dc5d28ad17 Allow overriding of Clang prebuilts
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
2016-03-16 13:18:07 -07:00
Dan Willemsen b50381684a Split Allow_missing_dependencies from Unbundled_build
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
2016-03-16 12:35:33 -07:00
Dan Willemsen 0f6042e317 Fix optional intermediates path for unbundled builds
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
2016-03-11 17:04:02 -08:00
Dan Willemsen e23dfb7fdc Support missing include dirs for unbundled branches
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
2016-03-11 15:15:50 -08:00
Dan Willemsen 6553f5ef57 Propagate missing dependencies when using whole_static_libs
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
2016-03-11 21:52:34 +00:00
Dan Willemsen eb371e51d9 Switch to clang-2658975
Port of https://android-review.googlesource.com/206366

Change-Id: Ife2e0ab84de839ea73744cb65f995a11e3145304
2016-03-11 12:44:29 -08:00
Dan Willemsen 6fb8b8d398 OSX: Use the oldest SDK, but always set our target to 10.8
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
2016-03-09 10:41:21 -08:00
Dan Willemsen 282a4b0dda Fix C++ on Darwin
Port of https://android-review.googlesource.com/207241

Change-Id: Idad81a528a2104579de0225b0724bb81293eea44
2016-03-09 10:30:22 -08:00
Dan Willemsen 71ea9c13c9 Use optional_dirs for non-soong projects
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
2016-03-07 21:05:02 -08:00
Dan Willemsen f3af6ce631 Merge "Replace Device_uses_{dl,je}malloc with Malloc_not_svelte" 2016-03-04 23:53:36 +00:00
Dan Willemsen b955336d33 Swap -lm and -lpthread for host libc++ users
Match the order we use in make.

Change-Id: I7959f72841bd058b13d6c8fc6efb3c78b5de9d35
2016-03-03 19:24:03 -08:00
Dan Willemsen 99db8c30c1 Do not use -Wl,--gc-sections for linux host libraries
This matches make

Change-Id: I2ee2e47065439afa02b946ede3a7718f1a8dc71b
2016-03-03 18:09:19 -08:00
Dan Willemsen f534a10643 Reorder extra clang host flags
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
2016-03-03 17:22:39 -08:00
Dan Willemsen be03f346b3 Port GLOBAL[_CLANG]_CFLAGS_NO_OVERRIDE from make
Change-Id: I4f0f8ec7620e4477f60bf9cf1ae0c005470c89d4
2016-03-03 17:21:04 -08:00
Dan Willemsen f778e12c57 Remove useless LOCAL_ACP_UNAVAILABLE
The make build system no longer needs LOCAL_ACP_UNAVAILABLE.

Change-Id: Ieef1415488853add9c5f5ab24219f9c6d3d13aa5
2016-03-01 23:10:25 -08:00
Dan Willemsen 52b1cd2544 Add a global define for non-external code.
Soong port of https://android-review.googlesource.com/204887

Change-Id: I15faf62cec1932dd859a082f66942b2606d0ff45
2016-03-02 03:08:37 +00:00
Dan Willemsen 4fef64b320 Merge changes Ife723733,I68acfb53,Id216c35d,Id0569831,Iadac88f8, ...
* 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
2016-03-02 03:06:41 +00:00
Dan Willemsen f0c73e0f71 Generate .c for .y and .l
Soong port of https://android-review.googlesource.com/195737

Change-Id: I9ab6dc149c258f7642bc36c3fa32f90ff7ee51a4
2016-03-01 17:32:31 -08:00
Dan Willemsen 97cae01e92 Replace Device_uses_{dl,je}malloc with Malloc_not_svelte
This no longer switches between dlmalloc and jemalloc, it just changes
the jemalloc cflags for non-svelte devices.

Change-Id: Ic6975de89a53a42e4735dbdcde68367ebfc42f9b
2016-03-01 17:30:59 -08:00
Dan Willemsen 98f93c77e8 Add system/media/audio/include to commonGlobalIncludes
This list now matches the make build system.

Change-Id: Ife723733f269bdcc00a0c2e9096e3e2cb7e6f88e
2016-03-01 17:22:51 -08:00
Dan Willemsen a6084a3662 Add -Werror=date-time to target builds
Soong port of https://android-review.googlesource.com/195464

Change-Id: I68acfb53be962ffd5c488337517dadb950a13b6f
2016-03-01 17:22:44 -08:00
Dan Willemsen 0084d78abf DeviceUsesClang should default to true
It defaults to true in Make now.

Change-Id: Id216c35d4a4fc87ce19067a357561a7fc814cbbb
2016-03-01 17:22:37 -08:00
Dan Willemsen 2808e09417 clang now supports -fdebug-prefix-map=.
Soong port of https://android-review.googlesource.com/204111

Change-Id: Id0569831f09845871d8e6990c310516bea5a2510
2016-03-01 17:22:30 -08:00
Dan Willemsen e4d7adeff5 Turn on ninja errors for duplicate rules
Change-Id: Iadac88f8835121a8685bff835acba638100bb654
2016-03-01 17:22:24 -08:00
Dan Willemsen 767078e761 Update to use the latest clang-2629532
Soong port of https://android-review.googlesource.com/204812

Change-Id: Ib6c94bc57f7145c1cc9b14338126132fc4648509
2016-03-01 17:22:19 -08:00
Dan Willemsen b77bd796c2 sandybridge setup: no AES_NI, AVX, MOVBE
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
2016-02-29 15:26:26 -08:00
Dan Willemsen 97750520a4 Refactor Android.mk generation
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
2016-02-09 19:56:22 -08:00
Dan Willemsen 07cd051a17 Add windows x86_64
Bug: 26957718
Change-Id: I5cfa2f44c27eac0805d21865c45546ed3c2c2103
2016-02-08 16:07:22 -08:00
Dan Willemsen 7f730fd0ad Fix USE_SOONG[_FOR_KATI]
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
2016-01-14 11:24:27 -08:00
Dan Willemsen 468cc31584 Mips builds in the megadevice now
Some of the dsp variants still have problems, but they also don't build
under make.

Change-Id: Ied9b4a1766de5d8a61d74a0ec629e0e68bfe3bc4
2016-01-13 23:34:15 -08:00
Dan Willemsen 768e5b49e1 Merge changes I92ddea0b,Ice8474ae,If63cc6ce,I1d6f1388,Ic3da07c8, ...
* 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
2016-01-14 07:03:10 +00:00
Dan Willemsen 59b381a405 Add kati to root.bp
Change-Id: Iedf8401fb02d704916666fb15c5ae30951a57ac7
2016-01-14 00:25:38 +00:00
Dan Willemsen 322acafe9e Add Mega_device configuration option
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
2016-01-13 14:39:11 -08:00
Dan Willemsen fc9c28ca02 Toolchain modules use GCC
Don't use clang cflags if the device uses clang by default.

Change-Id: Ice8474ae1f5e6f37fc8b47b1679d7fbdb9249e5a
2016-01-13 14:01:42 -08:00
Dan Willemsen 6dd0660905 Apply ToolchainLdflags to clang builds
Otherwise we're missing -m32 and -m64 in x86/x86_64 builds.

Change-Id: If63cc6ce12795921584437e4cee4530c0dfb634f
2016-01-13 13:32:26 -08:00
Dan Willemsen 32968a2a48 Add Clang Asflags for mips
Like make, it needs -fPIC to be added to compile successfully.

Change-Id: I1d6f1388c42a84f331bbce1ecd669669441d986e
2016-01-13 13:32:26 -08:00
Dan Willemsen 415cb0ff14 Remove libgcov for now to fix X86 devices
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
2016-01-13 13:32:26 -08:00
Dan Willemsen ac5e1cb30f Change clang extra flags behavior
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
2016-01-13 13:32:26 -08:00
Dan Willemsen a60cfde3f1 Merge "Align flags with make" 2016-01-13 21:32:04 +00:00
Dan Willemsen 7a0f848998 Align flags with make
This pulls a number of cflag changes from make since our last sync.

Change-Id: I8c77fc215ed7677b8ac15a6d39143b519068dd55
2016-01-12 23:30:13 -08:00
Colin Cross 6ec1c7b964 Search all bionic subdirectories
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
2016-01-11 16:29:10 -08:00
Colin Cross 4f6e4e6235 Export all modules
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
2016-01-11 16:29:06 -08:00
Colin Cross a45ee70112 Remove art and libnativehelper from root Android.bp
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
2016-01-11 16:29:03 -08:00
Dan Willemsen e0378dd4df Allow libnativehelper to be missing
Some branches may not include libnativehelper, or anything that depends
on jni.h

Change-Id: Id8bb9c101aecfacc5d62048818ea0c1c88b7d77c
2016-01-07 18:57:34 -08:00