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 new OperatingSystemFamily query method

  1. … 6 more files in changeset.
Rename OperatingSystemFamily.MAC_OS to MACOS

  1. … 4 more files in changeset.
Add missing operatingSystems to SwiftComponent

  1. … 4 more files in changeset.
Fix test failure due to missing API export from application

  1. … 1 more file in changeset.
Fix tests and share code between C++ and Swift

  1. … 15 more files in changeset.
A minor simplification.

Changed the XCTest plugin so that it does not add `-g` to the compiler args. This is already taken care of by the plugin adding a debuggable binary.

Moved a couple of services from `testingNative` down to `platformNative`

  1. … 11 more files in changeset.
Retain boolean getters for Property<Boolean> properties for now

  1. … 4 more files in changeset.
Migrate all link task properties to Provider API

  1. … 17 more files in changeset.
Propagate source compatibility from tested component to test component

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

  1. … 5 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.
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.

  1. … 10 more files in changeset.
Move common Swift configuration code to `SwiftBasePlugin`

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

  1. … 17 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.
Add support for configuring Swift language support of a component

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

  1. … 32 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. … 17 more files in changeset.
Added a comment.

Changed the XCTest plugin to reuse the logic from the native base plugin to configure the test executable to add build and install tasks, rather than reproduce all of this in a slightly different way.

The XCTest plugin still takes care of building a bundle of macOS, even though this should be done in a way that can be reused outside of the XCTest plugin.

  1. … 6 more files in changeset.
Added 'bundle' and 'executable' subtypes of `SwiftXCTestBinary` to allow specialization based on which kind of test suite is being built.

  1. … 8 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.
Changed `xctest` plugin to defer creation of the test execution task until the test binary object is created.

  1. … 1 more file 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. … 7 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. … 12 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. … 13 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. … 14 more files in changeset.
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.