Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.
Moved responsibility for creating and wiring up the link tasks for an executable to `NativeBasePlugin` from the language specific base plugins.

  1. … 12 more files in changeset.
Moved responsibility for creating and wiring up the link tasks for a shared library to `NativeBasePlugin` from the language specific base plugins.

  1. … 10 more files in changeset.
Moved responsibility for creating and wiring up the 'create' task for a static library to `NativeBasePlugin` from the language specific base plugins.

Introduced abstractions to represent a component that produces outputs for a native platform and a component that produces object files.

  1. … 13 more files in changeset.
Added abstractions for native static and shared library that are independent of implementation language, and added a `baseName` property to `SwiftBinary` (which defaults to the module name) so that it presents the same interface as `CppBinary`.

  1. … 15 more files in changeset.
Moved responsibility for creating the 'assemble' task for each variant of the main component into the `NativeBasePlugin`.

Added an abstraction to represent a component with output files.

  1. … 24 more files in changeset.
Renamed `BinaryContainer` to `BinaryCollection`

  1. … 11 more files in changeset.
Moved and renamed some classes so that `org.gradle.language` contains only those types that are domain and language agnostic. Moved types that are native domain specific to `org.gradle.language.nativeplatform`.

  1. … 27 more files in changeset.
Changed construction of the binaries of a native component to avoid leaking the services used by the binary implementations into the components.

  1. … 13 more files in changeset.
Model the linkages of a C++ library as a `Set` rather than a `List`.

  1. … 1 more file in changeset.
Add support for building static c++ libraries

    • -0
    • +55
    ./DefaultCppStaticLibrary.java
  1. … 33 more files in changeset.
Introduce specific platform type per language

Signed-off-by: Daniel Lacasse <daniel@gradle.com>

    • -0
    • +26
    ./DefaultCppPlatform.java
  1. … 24 more files in changeset.
Move tool chain selection to library and application plugins

Signed-off-by: Daniel Lacasse <daniel@gradle.com>

  1. … 16 more files in changeset.
Remove Runnable from GenerateMapFile as its no longer needed

  1. … 2 more files in changeset.