Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Align Swift and C++ library implementation test

  1. … 1 more file in changeset.
Fix `DefaultCppApplicationTest`

Fix `DefaultCppLibraryTest`

Fix `DefaultCppBinaryTest` by adding operating system family to identity

  1. … 4 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. … 14 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.

    • -14
    • +16
    ./DefaultCppComponentTest.groovy
  1. … 29 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. … 21 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. … 16 more files in changeset.
Introduced an abstraction for a native component that has a development binary, and use this for libraries and applications, but not test suites. Removed the `developmentBinary` property from the test suite types.

  1. … 19 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.
Add support for building static c++ libraries

  1. … 41 more files in changeset.
Fixing tests

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

  1. … 29 more files in changeset.
Add support for debuggable release variant for Cpp projects

  1. … 24 more files in changeset.
Implement static library and statically linked executable

  1. … 35 more files in changeset.
Fix unit tests with new CppBinary properties

  1. … 1 more file in changeset.
Make DefaultCppComponent recognize files ending in cc

This is a common extension for C++ files, so it should be acceptable

for source files for a `DefaultCppComponent`.

  1. … 1 more file in changeset.
Added `ObjectFactory.property(Class)` as a replacement for `ProviderFactory.property(Class)`. Changed all usages to use the new method.

  1. … 38 more files in changeset.
Native plugins use configurations.maybeCreate(name) instead of .create()

So that their application don't fail the build at configuration time

if a configuration with the same name happen to already exist.

  1. … 12 more files in changeset.
Changed C++ plugins to handle linking against a library from a Maven repository on Windows.

  1. … 8 more files in changeset.
Changed the C++ plugins to make the link files for C++ libraries from a Maven repository visible to consumers at link time via dependency resolution.

The implementation is intentionally dumb and has plenty of edge cases. This implementation will get simpler and more robust as more metadata about each library is made available in the Maven repository and as the dependency resolution engine is able to consume this. In this change, the implementation works only when building on MacOs.

  1. … 2 more files in changeset.
Changed the C++ plugins to make the header files for C++ libraries from a Maven repository visible to consumers at compile time via dependency resolution.

The implementation is intentionally dumb and has plenty of performance and other issues. This implementation will get simpler and more robust as more metadata about each library is made available in the Maven repository and as the dependency resolution engine is able to consume this.

  1. … 6 more files in changeset.
Publish only the public header files of a C++ library, rather than all of the header files.

  1. … 6 more files in changeset.
Changed the Swift plugins so that `Configuration` instances are created and wired up as the convention plugins register components and binaries, rather than assuming that exactly one variant of exactly one component is produced by a project and that the project has exactly one variant of exactly one test suite.

This change doesn't add any public mechanism for registering components or binaries, it simply removes some assumptions from the various plugins.

  1. … 19 more files in changeset.
Added a couple of query methods to the C++ model, to remove some assumptions from various plugins.

  1. … 12 more files in changeset.
Changed the C++ plugins so that `Configuration` instances are created and wired up as the convention plugins register components and binaries, rather than assuming that exactly one variant of exactly one component is produced by a project.

This change doesn't add any public mechanism for registering components or binaries, it simply removes some assumptions from the various plugins.

    • -0
    • +51
    ./DefaultCppBinaryTest.groovy
    • -23
    • +17
    ./DefaultCppComponentTest.groovy
  1. … 14 more files in changeset.
Added some initial modelling of the debug and release variants of a C++ application and library.

    • -0
    • +31
    ./DefaultCppApplicationTest.groovy
  1. … 12 more files in changeset.
Changed the `SwiftComponent` and `CppComponent` implementations to use their name to calculate their default source directories and removed special setup from the XCTest plugin.

  1. … 5 more files in changeset.
Changed each of the C++ and Swift plugins to register a component in the project's components container to represent the application/library/test suite that the plugin adds to the project.

  1. … 16 more files in changeset.
Allow the base name for a C++ component to be specified on the `library` or `executable` extension. This is used to calculate the output file names. It defaults to the project name.

  1. … 9 more files in changeset.
Added some query methods to the `CppComponent` extension added by the C++ plugins, to allow build logic to query things such as the compile include path or the header files of the component. Changed the Xcode plugin to use these query methods instead of making assumptions.

  1. … 7 more files in changeset.