Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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

Introduce Buildable and Publishable components to mark variants that can be published

  1. … 17 more files in changeset.
Fix `DefaultCppBinaryTest` by adding operating system family to identity

  1. … 3 more files in changeset.
Fix illegal import statements

Reference producer attributes from identity

  1. … 5 more files in changeset.
Use identity for debuggable and optimized properties

  1. … 5 more files in changeset.
Prevent operating system configuration duplication

  1. … 4 more files in changeset.
Simplify naming

  1. … 4 more files in changeset.
Somewhat working

    • -0
    • +68
    ./LightweightUsageContext.java
    • -0
    • +58
    ./NativeVariantIdentity.java
  1. … 5 more files in changeset.
Convert operating system attribute into extensible family name attribute

  1. … 9 more files in changeset.
Some more work

  1. … 6 more files in changeset.
Add `operatingSystems` DSL

  1. … 3 more files in changeset.
Add binary operating system as attribute for Swift and C++

  1. … 5 more files in changeset.
Separate Dependency Constraint and Dependency declarations (#4255)

The interfaces for declaring these two different things were

coupled in the initial implementation - to reuse all functionality

based on the Dependency interface directly. This interface is used

internally to pass dependency declarations through the resolution

process. However, this is only due to remembering the first

level dependencies for the "old" results API

(Configuration.resolvedConfiguration()).

These implementation specifics should not bleed into the API.

A dependency declaration defines a *requirement*:

I require module/project X

A dependency constraint defines a *constraint*:

If I must use X, I can only work with versions matching the constraint

Only if we look at external dependencies, constraints and external dependencies

share the ability to declare a *version constraint*. Therefore, both now

extend ModuleVersionSelector.

Now, dependency constraints are removed as "first level dependencies"

from the result. This is fine as the dependency itself is still in the

result graph - when there is a constraint, there is always at least one other

edge.

  1. … 33 more files in changeset.
Added a display name for each native component implementation.

Added a convenience to `Describables` to format a display name for an object with a type and a name.

  1. … 15 more files in changeset.
Added methods to the various native component types to allow implementation and API dependencies to be declared on the component instance instead of on the project's `dependencies` block, for consistency with the binaries.

  1. … 29 more files in changeset.
Added methods to `SwiftBinary` to allow implementation dependencies to be declared for the binary.

  1. … 9 more files in changeset.
Added methods to `CppBinary` to allow implementation dependencies to be declared for the specific binary.

  1. … 10 more files in changeset.
Fixed names for C++ publications and variants in publications.

  1. … 5 more files in changeset.
Changed toolchain selection for the native plugins to attempt to find the x86 tools when building for Windows x64 and none of the x64 tools are available.

This means that when building C++ on a Windows x64 and only cygwin32 or an older Visual studio is installed, the 32 bit binaries will be built and tested, rather than complaining that no tools are available. This fallback could possibly happen on other platforms, but is either pointless (macOS) or is likely to fail (Linux).

The fallback would not happen when the target architecture is explicitly specified, but that isn't possible yet.

  1. … 21 more files in changeset.
Added an (internal for now) `names` property to each C++ and Swift binary, which code that needs to construct names for the binary can use instead of reverse engineering this from the name of the binary. This allows for different binaries to use different schemes (which they already do but communicate this through special names).

  1. … 20 more files in changeset.
Moved an interface out of public API, as it wasn't supposed to be there.

  1. … 4 more files in changeset.
Moved responsibility for defining the Maven publications for a native component down to the `NativeBasePlugin` and out of the various C++ plugins.

Also publish the static variant of a C++ library if it is defined.

  1. … 15 more files in changeset.
Moved definition of the outgoing link and runtime configurations for each binary to the native base plugin from the various language specific plugins.

The shared and static variants of a library are made available for consumption by another local project, with a `linkage` attribute to disambiguate between them. The shared linkage is preferred over the static linkage.

  1. … 24 more files in changeset.
Changed the Xcode plugin to use query methods on a binary to determine which output to build and run from Xcode, rather than reaching in to grab specific tasks. Also changed the mapping to build the final, stripped, output for shared libraries.

Introduced a 'debuggerExecutable' property to `CppExecutable`, to match `SwiftExecutable` and changed `NativeBasePlugin` to populate this as the concept is agnostic of implementation language.

  1. … 12 more files in changeset.