diff options
author | Colin Cross <ccross@android.com> | 2015-01-30 17:27:36 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2015-03-13 20:28:16 -0700 |
commit | 3f40fa460d85b10646d383a3b6b01ea6d569b01b (patch) | |
tree | 542d913a3f0f818042b503948869818a77e99ebc /doc.go | |
parent | e441b9df9a68595d0dd7b8ed184aecb27c86054b (diff) | |
download | build_soong-3f40fa460d85b10646d383a3b6b01ea6d569b01b.tar.gz build_soong-3f40fa460d85b10646d383a3b6b01ea6d569b01b.tar.bz2 build_soong-3f40fa460d85b10646d383a3b6b01ea6d569b01b.zip |
Add soong_build primary builder
Initial build logic for building android with soong. It can build
a variety of C and C++ files for arm/arm64 and host.
Change-Id: I10eb37c2c2a50be6af1bb5fd568c0962b9476bf0
Diffstat (limited to 'doc.go')
-rw-r--r-- | doc.go | 56 |
1 files changed, 56 insertions, 0 deletions
@@ -0,0 +1,56 @@ +// Copyright 2015 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Soong is a builder for Android that uses Blueprint to parse Blueprints +// files and Ninja to do the dependency tracking and subprocess management. +// Soong itself is responsible for converting the modules read by Blueprint +// into build rules, which will be written to a build.ninja file by Blueprint. +// +// Android build concepts: +// +// Device +// A device is a piece of hardware that will be running Android. It may specify +// global settings like architecture, filesystem configuration, initialization +// scripts, and device drivers. A device may support all variants of a single +// piece of hardware, or multiple devices may be used for different variants. +// A build is never targeted directly at a device, it is always targeted at a +// "product". +// +// Product +// A product is a configuration of a device, often for a specific market or +// use case. It is sometimes referred to as a "SKU". A product defines +// global settings like supported languages, supported use cases, preinstalled +// modules, and user-visible behavior choices. A product selects one and only +// one device. +// +// Module +// A module is a definition of something to be built. It may be a C library or +// binary, a java library, an Android app, etc. A module may be built for multiple +// targets, even in a single build, for example host and device, or 32-bit device +// and 64-bit device. +// +// Installed module +// An installed module is one that has been requested by the selected product, +// or a dependency of an installed module. +// +// Target architecture +// The target architecture is the preferred architecture supported by the selected +// device. It is most commonly 32-bit arm, but may also be 64-bit arm, 32-bit or +// 64-bit x86, or mips. +// +// Secondary architecture +// The secondary architecture specifies the architecture to compile a second copy +// of some modules for devices that support multiple architectures, for example +// 64-bit devices that also support 32-bit binaries. +package soong |