Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Add support for declaring target machines

  1. … 33 more files in changeset.
Wire in architecture to target machine definition

  1. … 23 more files in changeset.
Change the C++ tooling model builder so that it does not attempt to resolve task dependencies to infer how to build the various C++ binaries, Instead add properties to the C++ project model to allow the builder to query these tasks and build logic to explicitly define what they should be.

  1. … 13 more files in changeset.
Publish inherited exclude rules

Prior to this commit, only exclude rules directly declared on published

configurations (e.g. `apiElements` and `runtimeElements` for Java) were

published in the Ivy descriptor, POM, and Gradle metadata. Now, exclude

rules from superconfigurations (e.g. `api` for Java) are also taken into


Fixes #6766.

  1. … 11 more files in changeset.
Add `HasMultipleValue.finalizeValue()` method to allow the value of a collection property to be made final. Attempts to change the property value after this method is called will fail.

Use this in the native plugins and remove the internal `LockableCollectionProperty` implementation as it is no longer needed.

  1. … 18 more files in changeset.
Quick fix for native dependencies that expose headers as directories

  1. … 2 more files in changeset.
Change `ObjectFactory` so that it creates list and set properties with no initial value, rather than with an empty collection as the initial value.

Added an `empty()` method as a convenience to use when constructing these kinds of properties.

  1. … 29 more files in changeset.
Replace all usages of the property factory methods on `ProjectLayout` and `DefaultTask` with the factory methods on `ObjectFactory`.

  1. … 41 more files in changeset.
Expose the variant name and header directories for each C++ binary in the C++ tooling model.

Rework construction of the native binary models so that the binary names are not formatted and parsed a bunch of times during construction and so do not lose information.

  1. … 31 more files in changeset.
Add a tooling model that provides the main C++ component and test suite of a particular Gradle project.

Moved the C++ tooling model builders into their own project separate from `language-native`.

  1. … 12 more files in changeset.
Start to wire in the C++ tooling model, producing the `componentType` based on the plugins applied to the root project.

    • -49
    • +0
  1. … 4 more files in changeset.
Use immutable file collections whenever possible (#5797)

- Stop DefaultProject implementing FileOperations/ProcessOperations

- Stop BasicScript implementing FileOperations/ProcessOperations

- FileResovler.resolveUri() is not nullable

  1. … 34 more files in changeset.
Normalize `ModuleIdentifier`

This commit reworks the `ComponentModuleIdentifier`/`ComponentModuleSelector`/`ModuleVersionSelector`

classes to use `ModuleIdentifier` under the hood, instead of storing denormalized strings. This has

the advantage that we can reduce the use of the module identifier factory, which is called very

often during dependency resolution. Sharing instances reduces the need for conversions, and makes

comparisons faster.

  1. … 164 more files in changeset.
Interfaces for C++ model using tooling APIs

    • -0
    • +32
    • -0
    • +49
  1. … 11 more files in changeset.
Fix the `cpp-unit-test` plugin so that it makes implementation dependencies of the main component visible to the test suite. Reworked the dependency between the test binary and the binary under test for the `cpp-unit-test` and the `xctest` plugins, so that it is implemented consistently (for later extraction into a base plugin) and is wired in via the various configurations.

  1. … 10 more files in changeset.
Deprecate DeferredConfigurable

Remove it from the publishing plugins, as they no longer require it.

  1. … 11 more files in changeset.
Add common base class for immutable NativePlatform

  1. … 2 more files in changeset.
Publish configuration-wide excludes in Ivy metadata

Resolves #4356.

  1. … 17 more files in changeset.
Add operatingSystem convenience and target builder factory methods

  1. … 6 more files in changeset.
Operating system family property to SwiftPlatform and CppPlatform

  1. … 5 more files in changeset.
Rename `CapabilitiesDescriptor` to `Capabilities`

... and `getCapababilitiesMetadata()` to `getCapabilities()` for consistency.

  1. … 36 more files in changeset.
Wire operatingSystem into Swift binary types

  1. … 7 more files in changeset.
Publish capabilities to Ivy/Maven repositories

This commit makes sure that capabilities can be published to Maven or Ivy repositories.

By published, we only mean using Gradle metadata: capabilities are a Gradle-only feature,

so there's no equivalent to be published in a `pom.xml` or `ivy.xml` file.

  1. … 15 more files in changeset.
Propagate includePath dependencies for CppBinary

  1. … 1 more file in changeset.
Use native variant identity for name suffix

  1. … 7 more files in changeset.
Fix some of the NPEs

  1. … 3 more files in changeset.
Remove lightweight usage context

  1. … 4 more files in changeset.
Delete unused class

Refactor to detangle NativeVariantIdentity and Cpp binaries

  1. … 4 more files in changeset.
Make NativeVariantIdentity private for CppExecutable and libraries