aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
Commit message (Collapse)AuthorAge
* Experimental support for ios_framework rulesGravatar Dmitry Shevchenko2015-08-12
| | | | | | | | | | | | | | | | | | | | | * Allows for building and linking to a framework in ios_application * Currently only works for single arch builds * Xcode generation produces correct target type, but is mostly untested The implementation is very similar to that of objc_framework: 1) Build the ios_framework_binary as a dynamic library (-dynamiclib) 2) Symlink the library and public headers to a staging location, inside of "X.framework" bundle. Where X is the name under ios_framework_binary#framework_name 3) Pass the bundle content to ObjcCommon.addFrameworkImports, reusing the core of objc_framework rule implementation. This results in correctly set -F/-framework flags and allows clients to use the framework in a way they would use any SDK/3rd-party framework. It's allowed to import headers via #import <X/X.h> call. 4) Copy the binary and all resources into final application bundle under Frameworks/X.framework 5) Sign the app and nested frameworks -- MOS_MIGRATED_REVID=100397239
* Improved error messages for builtin Skylark functions that are invoked with ↵Gravatar Florian Weikert2015-08-12
| | | | | | | invalid arguments. -- MOS_MIGRATED_REVID=100386706
* Remove -fprofile-dir flag from clang flags.Gravatar Googler2015-08-12
| | | | | | | xcode 6.4 upgrades clang from 6.0 to 6.1, which no longer needs this flag. -- MOS_MIGRATED_REVID=100383635
* Make more Skylark functions available to BUILD files (dict, list, zip).Gravatar Laurent Le Brun2015-08-12
| | | | | -- MOS_MIGRATED_REVID=100373346
* Patch the PATH for linker on Windows, in the same way as for compiler.Gravatar Dmitry Lomov2015-08-12
| | | | | -- MOS_MIGRATED_REVID=100368051
* When using a SpawnAction with command, the action automatically adds the ↵Gravatar Florian Weikert2015-08-12
| | | | | | | | | runfiles of inputs that are a) executable and b) in host configuration. This is necessary because "command" could lead to the execution of a binary that might rely on one or more runfiles. However, SpawnAction didn't know about these runfiles, which meant that they were not copied to the runfiles area, thus leading to an error. -- MOS_MIGRATED_REVID=100361726
* Replace ref equality with .equals for SkyFunctionNamesGravatar Mark Schaller2015-08-11
| | | | | | | Ref equality for same-name SkyFunctionNames is not guaranteed. -- MOS_MIGRATED_REVID=100322275
* Updates documentation for bind, new_http_archive, and new_git_repository for ↵Gravatar Alex Humesky2015-08-11
| | | | | | | consistency, accuracy, and clarity. -- MOS_MIGRATED_REVID=100320358
* Tolerate BuildFileNotFoundExceptions during the execution phase.Gravatar Janak Ramakrishnan2015-08-11
| | | | | -- MOS_MIGRATED_REVID=100317285
* Use Multiset#remove(object, int) to avoid having to query the count after ↵Gravatar Nathan Harmata2015-08-11
| | | | | | | removing the key. -- MOS_MIGRATED_REVID=100314916
* Fix test flakinessGravatar Kristina Chodorow2015-08-11
| | | | | | | Also improves the error message when no repositories can be found. -- MOS_MIGRATED_REVID=100307390
* Don't return SkyValue when dirtying nodeGravatar Mark Schaller2015-08-11
| | | | | | | | The invalidator is no longer using the SkyValue, so there's no need to return it when dirtying a node. -- MOS_MIGRATED_REVID=100307211
* Convert invalidated tracking from per-value to per-keyGravatar Mark Schaller2015-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The primary user of invalidation tracking is the SkyframeBuildView, which monitored which ConfiguredTargetValues were invalidated. It did that so the SkyframeExecutor could limit its search for artifact conflicts to when the set of configured targets in the build changed. For the newly introduced set of dirtied keys, "dirtiedConfiguredTargetKeys" in SkyframeBuildView, to be as useful as the "dirtyConfiguredTargets" set it replaced, the ConfiguredTargetValueInvalidationReceiver must only remove a key from the set if it was found to be clean when it was re-evaluated. If it was rebuilt, then the key must stay in the set, to represent that the set of configured target values has truly changed. This CL introduces a semantic change that hopefully has a small effect, if any. Previously, the informInvalidationReceiver method in InvalidatingNodeVisitor only informed the invalidationReceiver when a non-null value was invalidated. (This is usually, but not always, equivalent to a non-error value. The uncommon exception is that in keep-going builds, some nodes with errors may also have values, and the invalidator would inform the receiver when such a node was invalidated.) Now, the receiver is informed that a node is invalidated regardless of whether its value is null. Because the receiver uses this information to determine whether artifact conflict search has to be rerun, and that search is expensive, it's possible this change will negatively impact performance. However, the only way an extra search could be invoked is if the invalidated configured target nodes are all in error. That seems like it would happen rarely, if at all. Further cleanup of unused SkyValues returned by markDirty to come in a subsequent CL. -- MOS_MIGRATED_REVID=100304744
* Add comments about subtle benign race in PathFragment#hashCode.Gravatar Nathan Harmata2015-08-11
| | | | | -- MOS_MIGRATED_REVID=100285918
* Add clarification about hash codes of 0.Gravatar Nathan Harmata2015-08-11
| | | | | -- MOS_MIGRATED_REVID=100285082
* Fix race condition in SkyKey#hashCode by using the hashCode caching strategy ↵Gravatar Nathan Harmata2015-08-11
| | | | | | | | | employed by java.lang.String. Consider the case where thread T1 calls cacheHashCode and then in the future thread T2 calls hashCode. Because the side-effects of 'cacheHashCode' were non-atomic, T2 could see a value of 'true' for 'hashCodeCached' but still see the old value (of 0) for 'hashCode' and incorrectly think the hash code is 0. -- MOS_MIGRATED_REVID=100283097
* Convert the coverage flags to use the feature configuration.Gravatar Manuel Klimek2015-08-11
| | | | | -- MOS_MIGRATED_REVID=100281959
* Allow the workspace to be /Gravatar Kristina Chodorow2015-08-11
| | | | | | | Fixes #367. -- MOS_MIGRATED_REVID=100281134
* Allow heterogeneous lists in Skylark.Gravatar Laurent Le Brun2015-08-11
| | | | | | | | | This brings consistency between BUILD and Skylark interpreters. It also brings consistency with dicts (e.g. **kwargs can contain anything and kwargs.values is allowed). -- MOS_MIGRATED_REVID=100278980
* Add a feature to control whether we provide transitive header modules to aGravatar Manuel Klimek2015-08-11
| | | | | | | modules enabled build. -- MOS_MIGRATED_REVID=100272810
* Experimental support LLVM ThinLTO.Gravatar Han-Wen Nienhuys2015-08-11
| | | | | | | | | | | | | | | | | | | | | | ThinLTO is a Link Time Opimization strategy, where the inlining step operates on LLVM intermediate code, and is sharded across multiple compiler invocations, so they can be parallelized. For more information, see http://llvm.org/devmtg/2015-04/slides/ThinLTO_EuroLLVM2015.pdf Using this features requires an experimental LLVM toolchain, with the following stanza in CROSSTOOL feature { name: "thin_lto" flag_set { action: "c-compile" action: "c++-compile" flag_group { flag: "-Xclang-only=-Wno-inconsistent-missing-override" flag: "-flto" flag: "-O2" } } } -- MOS_MIGRATED_REVID=100269776
* Allow return without expression, AST-equivalent to return None.Gravatar Googler2015-08-11
| | | | | -- MOS_MIGRATED_REVID=100268427
* Don't assume that relative inclusion is under same package root as the ↵Gravatar Janak Ramakrishnan2015-08-10
| | | | | | | | | original artifact. This adds artifact resolution costs to relative inclusions, but hopefully not too much. -- MOS_MIGRATED_REVID=100164755
* Skylark rules can now declare their required configuration fragmentsGravatar Florian Weikert2015-08-10
| | | | | -- MOS_MIGRATED_REVID=100163482
* Avoid duplicate Path --> PathFragment expansion in Package deserialization.Gravatar Eric Fellheimer2015-08-10
| | | | | -- MOS_MIGRATED_REVID=100138246
* Generate a _test_script executable in BazelIosTest, and use that forGravatar Han-Wen Nienhuys2015-08-10
| | | | | | | | | | | generating runfiles. This code has been wrong for a long time, as the runfiles tree should belong to an executable generated by the rule. We have started enforcing this recently, and this fixes the resulting analysis crash. -- MOS_MIGRATED_REVID=100129121
* Move skylark import dependency registration to after the preprocessor.Gravatar Han-Wen Nienhuys2015-08-10
| | | | | | | RELNOTES: allow load() in subincluded files. -- MOS_MIGRATED_REVID=100125415
* Annotate every single rule with required configuration fragments.Gravatar Ulf Adams2015-08-10
| | | | | | | It's not locked down yet as Skylark rules can't declare required fragments. -- MOS_MIGRATED_REVID=100113647
* Add missing compile-time dep.Gravatar David Chen2015-08-07
| | | | | -- MOS_MIGRATED_REVID=100106965
* Stop checking package roots for incompatible changes after loading phase.Gravatar Marian Lobur2015-08-07
| | | | | | | Instead we can just recreate artifact in ArtifactFactory if source root has changed. Additional optimization is to save with Artifact's some unique id of build when they have been created. If the build is the same we should not check source root changes. -- MOS_MIGRATED_REVID=100104312
* Rephrase the ActionGraph in terms of the WalkableGraph. This should be more ↵Gravatar Eric Fellheimer2015-08-06
| | | | | | | efficient if we need to do many ActionGraph looups. -- MOS_MIGRATED_REVID=100060090
* Add custom repositories to the WORKSPACE fileGravatar Kristina Chodorow2015-08-06
| | | | | | | | If a non-Maven-Central repository was used to access an artifact, record that in the generated WORKSPACE file. -- MOS_MIGRATED_REVID=100058489
* Show build options on dashboardGravatar Kristina Chodorow2015-08-06
| | | | | | | getEffectiveOptions wasn't returning any of the options. -- MOS_MIGRATED_REVID=100041131
* Factor out import finding code.Gravatar Han-Wen Nienhuys2015-08-06
| | | | | -- MOS_MIGRATED_REVID=100038493
* Add output_dir option and improve repository handlingGravatar Kristina Chodorow2015-08-06
| | | | | | | | | | | I finally worked out how to get a simple test maven repository working, so added back integration testing. This removes the dependency on Aether and just uses the maven model lib to resolve dependencies, which seems to work better in the face of custom repositories. -- MOS_MIGRATED_REVID=100031414
* Feature configuration: add a field required_variables on flag_sets.Gravatar Manuel Klimek2015-08-06
| | | | | | | | | | | | | This allows to prevent expansion of flag sets based on whether build variables are available. If required_variables is not set, and a variable that is referenced in the flag_set's flags is not available, the build will fail. We need the new behavior when some input files (for example profile data in FDO enabled builds) are only available for a subset of the translation units of a given target. -- MOS_MIGRATED_REVID=100028996
* Remove dead codeGravatar Kristina Chodorow2015-08-06
| | | | | -- MOS_MIGRATED_REVID=100027280
* Allow the feature configuration to support structured build variables of nestedGravatar Manuel Klimek2015-08-06
| | | | | | | list type. -- MOS_MIGRATED_REVID=100024899
* Fixed a bug where the methods of Skylark dictionaries were not properly ↵Gravatar Florian Weikert2015-08-06
| | | | | | | recognized by hasattr() and dir() -- MOS_MIGRATED_REVID=100022797
* Refactor the missing fragment handling code to use a policy enum.Gravatar Ulf Adams2015-08-06
| | | | | | | | Flip the handling such that analysis failure is the default, rather than execution failure (fail action creation). -- MOS_MIGRATED_REVID=100020812
* Skylark: In addition to using ctx.configuration.fragment(CONF), the build ↵Gravatar Florian Weikert2015-08-06
| | | | | | | configuration can now be accessed via ctx.fragments.CONF where CONF is in {cpp, jvm, java}. -- MOS_MIGRATED_REVID=100016978
* Make DependencyResolver more explicit about the factGravatar Greg Estren2015-08-06
| | | | | | | that package groups' deps use the null configuration. -- MOS_MIGRATED_REVID=99965080
* Add threadpool injectability to invalidatorGravatar Mark Schaller2015-08-06
| | | | | -- MOS_MIGRATED_REVID=99961435
* Change return type of InMemoryNodeEntry#getReverseDeps to Collection<SkyKey>.Gravatar Janak Ramakrishnan2015-08-05
| | | | | -- MOS_MIGRATED_REVID=99943491
* Remove the Skylark data configuration accessor and the only repositoryGravatar Greg Estren2015-08-05
| | | | | | | | | | | use of that accessor. Data configuration access here complicates the first phase of dynamic configuration support. And the current use doesn't specifically need this configuration. We can always add support back in if there's demand. -- MOS_MIGRATED_REVID=99938987
* Removed BuildConfiguration.Fragment#getName() and #isSkylarkVisible().Gravatar Florian Weikert2015-08-05
| | | | | | | Instead, the SkylarkModule annotation is being used to identify fragments that are visible in Skylark. -- MOS_MIGRATED_REVID=99930512
* Hard disable C++ include scanning in Bazel (which wasn't supported anyway, ↵Gravatar Philipp Wollermann2015-08-05
| | | | | | | but due to the flag default value being true, some code behaved as if it was). -- MOS_MIGRATED_REVID=99913146
* Annotate AspectDefinition.attributeAspect @SafeVarargs to suppress warnings.Gravatar Ulf Adams2015-08-05
| | | | | -- MOS_MIGRATED_REVID=99904596
* Use pic mode for cc_fake_binary if pic actions are used for binaries.Gravatar Manuel Klimek2015-08-05
| | | | | | | | | | | | | | | | | | | | | To allow the commands in the cc_fake_binary to work with modules (which is a precondition to writing nocompile tests for modules), we need to create header modules in the same pic/nopic mode as the rest of the commandline indicates. There are two ways to resolve this problem: a) Make cc_fake_binary use the same pic mode as other binaries. b) Make sure fake compile actions get all their inputs in non-pic mode. This patch proposes solution a), as that makes sure cc_fake_binary is as close to the actual compilation going on as possible; for example, if we decide to always use pic in the future, this will simply work; additionally, we will currently get more test coverage through different compilation modes. RELNOTES: 'cc_fake_binary' uses the same pic/nopic mode as other binaries. -- MOS_MIGRATED_REVID=99902738
* Add '--experimental_allow_fastbuild_debug' which when set, adds ↵Gravatar Googler2015-08-05
| | | | | | | | | flag'-DDEBUG=1' to 'fastbuild' for objc. RELNOTES: Make '-DDEBUG=1' available for objc fastbuild via --experimental_allow_fastbuild_debug -- MOS_MIGRATED_REVID=99896083