aboutsummaryrefslogtreecommitdiffstats
path: root/genrule
Commit message (Collapse)AuthorAgeFilesLines
* Simplify arch target handlingColin Cross2016-06-021-2/+1
| | | | | | | | | | | | Soong's multi-architecture building has grown complex, with the combination of HostOrDevice+HostType+Arch necessary to determine how to build a variant of a module, and three separate mutators to split each into its variations. Combine HostOrDevice+HostType into Os, which will be Linux, Darwin, Windows, or Android. Store Os+Arch as a single Target. Change-Id: I92f2e2dac53617d595a35cc285d2bd348baa0fbd
* Revert "Simplify arch target handling"Colin Cross2016-06-031-1/+2
| | | | | | This reverts commit 6713fb26cbcadf525cd75e47d7d0cbc23d282b3e. Change-Id: Ic473cea2563b0b37dc08b0bc5d3a0ac8c4b6afe6
* Simplify arch target handlingColin Cross2016-06-021-2/+1
| | | | | | | | | | | | Soong's multi-architecture building has grown complex, with the combination of HostOrDevice+HostType+Arch necessary to determine how to build a variant of a module, and three separate mutators to split each into its variations. Combine HostOrDevice+HostType into Os, which will be Linux, Darwin, Windows, or Android. Store Os+Arch as a single Target. Change-Id: Iae677eff61a851b65a7192a47f2dc17c1abb4160
* Rename common to androidColin Cross2016-05-181-29/+29
| | | | | | | | | | | | | | | | Rename the "common" package to "android", because common is too generic. Also removes all android.Android naming stutter. Ran: gomvpkg -from 'android/soong/common' -to 'android/soong/android' gorename -from '"android/soong/android".AndroidModuleContext' -to 'ModuleContext' gorename -from '"android/soong/android".AndroidBaseContext' -to 'BaseContext' gorename -from '"android/soong/android".AndroidModuleBase' -to 'ModuleBase' gorename -from '"android/soong/android".AndroidBottomUpMutatorContext' -to 'BottomUpMutatorContext' gorename -from '"android/soong/android".AndroidTopDownMutatorContext' -to 'TopDownMutatorContext' gorename -from '"android/soong/android".AndroidModule' -to 'Module' Change-Id: I3b23590b8ce7c8a1ea1139411d84a53163288da7
* Add genrule tool_file to better handle depsDan Willemsen2016-04-211-16/+36
| | | | | | | | 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
* Fix generated sources and headersDan Willemsen2016-04-201-0/+9
| | | | | | | | | | | | | | | | | 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
* Use blueprint DependencyTagsColin Cross2016-04-121-1/+1
| | | | | | | | 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
* Fix gofmtColin Cross2015-12-171-3/+3
| | | | Change-Id: Ib5e4db599a6dd858b3a1b1cdb75017b01eac4911
* Use `Path` instead of string for file pathsDan Willemsen2015-12-091-23/+20
| | | | | | | | | | | | This centralizes verification and common operations, like converting the path to a source file to the path for a built object. It also embeds the configuration knowledge into the path, so that we can remove "${SrcDir}/path" from the ninja file. When SrcDir is '.', that leads to paths like './path' instead of just 'path' like make is doing, causing differences in compiled binaries. Change-Id: Ib4e8910a6e867ce1b7b420d927c04f1142a7589e
* Support cross-compiling Windows binaries on LinuxDan Willemsen2015-11-301-2/+4
| | | | | | | | This defines another mutator between HostOrDevice and Arch that will expand host modules into a module for each host type (Darwin/Linux/Windows) that is currently being built. Change-Id: I4c8ac6b616c229f6bd45ad8a35902652fb6a4fff
* Remove EarlyMutators and DynamicDependenciesColin Cross2015-11-031-5/+8
| | | | | | | | | | EarlyMutators are identical to BottomUpMutators, except they run before DynamicDependencies. DynamicDependencies can be replaced with a BottomUpMutator. Replace both EarlyMutators and DynamicDependencies with BottomUpMutators, which allows setting the order between all mutators through registration order. Change-Id: Id1305d798d3d2da592061c89d7c10a71780b71a3
* use init functions to register module types, etc.Colin Cross2015-07-091-0/+6
| | | | | | | | Instead of putting all the blueprint registrations in soong_build, put them all in init() functions. This puts the registration next to the implementation. Change-Id: Ide1a749518f5e9d1367a18ab3bb1d91da3310c76
* Add exclude_* and remove arch_subtract / "-file"Dan Willemsen2015-07-011-2/+2
| | | | | | | | To align with the current make build system, add exclude_srcs and exclude_java_resource_dirs. These replace the functionality of arch_subtract and glob exclusions that use "-file" to exclude a file. Change-Id: I91c23d5e3c9409f2d9f7921f950153a03a68ad61
* Improve property comments for docsColin Cross2015-06-291-16/+18
| | | | | | | | | | | | | | | | Improve the comments associated with properties to work better with Blueprint's auto-documenting feature. Make all properties structs into named types so that thet types can be found using reflection and cross-referenced to the source code to auto-extract docs. Remove the leading <property>: text from properties, the documentation will include the lowercased name of the property. Add filter tags to the nested arch properties. Change-Id: I4ef5db86358886fe61456c24eb2dbe6f7b876115
* Allow common.Glob to be called by singletonsColin Cross2015-06-171-2/+2
| | | | | | | | | Make common.Glob take an interface that is the intersection of blueprint.ModuleContext and blueprint.SingletonContext used by Glob and GlobRule, allowing it to be called on either. Also move ExpandSources and Glob into AndroidModuleContext. Change-Id: I8d1a3160c5dd201033afdb37210e82d8065b137d
* Use far dependency for genrule toolColin Cross2015-05-121-1/+2
| | | | | | | | A far dependency will not inherit any of the variations from the current module, allowing a device genrule to depend on a host tool to generate the sources. Change-Id: I7f622ddd31a81d605f55d5946a109ea53e864084
* Add support for genruleColin Cross2015-04-291-35/+120
| | | | | | | | | Add genrule, which uses a host executable (possibly built by the build system) to generate a single source file. This differs slightly from gensrcs, which takes a list of sources and translates them through a host executable to individual source files. Change-Id: I94bda62c4c53fb3f3817def190e6a7561508d297
* Support subtracting sources from globsColin Cross2015-04-081-3/+1
| | | | | | | | Support -file or -path/glob in file lists that contain globs to subtract files from the resulting glob. Also move source file prefixing and handling into a common function. Change-Id: Ib6d74ce22f53cae7348c4ba35b779976d90359a6
* Move config into common and provide helperColin Cross2015-04-081-5/+1
| | | | | | | | | Using ctx.Config().(Config) everywhere is a mouthful, and it is inefficient to do the type assertion. Put the Config interface into the context, and provide an AConfig() to return the Config already converted to the right type. Change-Id: I301a1fd7d2a005580aabca7866a37c5d42ad8c69
* Export cc types for art to inherit fromColin Cross2015-03-251-1/+1
| | | | | | | | | | | | Art needs a custom module type in order to perform complicated build logic like depending on environment variables and varying cflags based on cpu variant. Export enough of the types and functions from cc for art_cc_library to inherit from cc_library. While I'm touching every line, also rename the New* methods to *Factory. Change-Id: I7123aa47019c4ced7a1ab57c394225bc7844b5ea
* Update import paths for changes to blueprintColin Cross2015-03-231-2/+2
| | | | | | | Blueprint has been modified to include a canonical import path, update soong to match. Change-Id: If29d31afbf3bf2e6364961a66456fa5f8f738455
* Add gensrcs module typeColin Cross2015-03-191-0/+97
gensrcs allows sources to be generated by a specified command. Change-Id: I725086fcdcd72bfe6c07fb8903e7b520678a247f