Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.
Cache module map files so that they are only generated once

  1. … 10 more files in changeset.
Move module map generation to the consumer side

  1. … 24 more files in changeset.
Add support for Swift/C++ interoperability

  1. … 10 more files in changeset.
Ensure source dependencies are built before Xcode project are generated

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

  1. … 8 more files in changeset.
Publish dependency constraints to Gradle module metadata

  1. … 12 more files in changeset.
Changed the C++ library plugin to consider files that end with `.hpp` to be C++ header files when publishing the library.

Add support for debuggable release variant for Cpp projects

  1. … 22 more files in changeset.
Add new cpp-unit-test plugin and base types

  1. … 12 more files in changeset.
Remove some APIs from the public interface

  1. … 6 more files in changeset.
Minor tweak to the variant names for published C++ components.

  1. … 2 more files in changeset.
Moved responsibility for generating the correct module metadata for a component that is published across multiple modules into the publish plugins, instead of hacking this together in the C++ plugin. The implementation is arguably still hackey but is now in a better home, where it can be reused by other plugins.

The module metadata generated for published C++ executables now includes the correct references to the debug and release variants, which are published to separate modules.

  1. … 7 more files in changeset.