Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Add support for C++ applications to the `cpp-unit-test` plugin, by relocating the `main` symbol from the object files of the application under test. Change the `UnexportMainSymbol` to be more idiomatic and the `runTest` task to be incremental.

Move some test coverage so that it is applied to both the XCtest and C++ unit test plugins.

  1. … 17 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.
Use camel case consistently for variant names

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

  1. … 7 more files in changeset.
Generalize operating system configuration test to C++ unit test

    • -58
    • +74
    ./plugins/CppUnitTestPlugin.java
  1. … 14 more files in changeset.
Remove lightweight usage context

  1. … 9 more files in changeset.
Refactor to detangle NativeVariantIdentity and Cpp binaries

  1. … 8 more files in changeset.
Fix CppUnitTest plugins

    • -2
    • +4
    ./internal/DefaultCppTestExecutable.java
  1. … 1 more file in changeset.
Use identity for debuggable and optimized properties

    • -2
    • +3
    ./internal/DefaultCppTestExecutable.java
  1. … 9 more files in changeset.
Fix test failures

  1. … 23 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. … 16 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.

    • -3
    • +22
    ./internal/DefaultCppTestSuite.java
  1. … 32 more files in changeset.
Defer creation of the tasks and configurations for a native binary until the binary is realized, rather than when the binary is created.

Changed the `BinaryCollection` implementation to defer firing the 'when known' event for a binary until just before the binary is configured. Restructured parts of various plugins to react to binaries becoming known rather than making assumptions about the things that exist when the binary is created.

    • -31
    • +23
    ./plugins/CppUnitTestPlugin.java
  1. … 10 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.

    • -0
    • +8
    ./internal/DefaultCppTestExecutable.java
  1. … 12 more files in changeset.
Detangled `CppTestExecutable` from `CppExecutable` as a C++ test executable and a production executable are not the same thing, they just happen to have some stuff in common.

    • -4
    • +45
    ./internal/DefaultCppTestExecutable.java
  1. … 1 more file 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.

    • -2
    • +3
    ./internal/DefaultCppTestExecutable.java
  1. … 26 more files in changeset.
Include the project name in the default base name of the C++ unit test executable.

Changed construction of test binaries to use a similar pattern as production binaries.

  1. … 6 more files in changeset.
Changed the `cpp-unit-test` plugin to behave more like the `xctest` plugin, so that it will compile and run the test suite when there is no component under test present, and to use a similar naming scheme for tasks and directory names.

Re-added a type to represent an executable built for tests implemented in C++.

    • -1
    • +11
    ./internal/DefaultCppTestExecutable.java
    • -32
    • +31
    ./plugins/CppUnitTestPlugin.java
  1. … 8 more files in changeset.
Introduced a native testing base plugin, to take care of common aspects of native test support. Currently simply adds some lifecycle tasks.

Introduced an abstraction to represent a native test suite and renamed `testExecutable` to `testBinary` on each of the native test suite types.

  1. … 11 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. … 18 more files in changeset.
Changed `CppTestSuite.testExecutable` to `Provider` for consistency with the other native components and to reflect the fact that the test executable is not guaranteed to be created eagerly.

    • -14
    • +8
    ./internal/DefaultCppTestSuite.java
Added a factory for plugins to use to create native component instances. This currently is internal but may later move to the public API.

Using the factory decouples the plugins from the services used by the component implementations.

  1. … 9 more files in changeset.
Introduced a native language base plugin, to reduce some duplication of logic across the various native plugins. This plugin doesn't do anything much at this stage.

Added an interface to represent a native component that has binaries. The native base plugin takes care of registering the binaries of a component in `project.components` rather than have each plugin know that it has to do this.

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

  1. … 39 more files in changeset.
Fixing tests

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

  1. … 31 more files in changeset.
Fix CI and add documentation

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

  1. … 2 more files in changeset.
Add test coverage for XCTest and C++ unit test

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

    • -2
    • +15
    ./internal/DefaultCppTestSuite.java
  1. … 9 more files in changeset.
Introduce specific platform type per language

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

    • -2
    • +2
    ./internal/DefaultCppTestExecutable.java
  1. … 29 more files in changeset.
Move tool chain selection to library and application plugins

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

    • -2
    • +5
    ./internal/DefaultCppTestExecutable.java
  1. … 20 more files in changeset.
Add some test coverage and fix some broken tests

  1. … 16 more files in changeset.