Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate next #73

Merged
merged 61 commits into from
Feb 21, 2024
Merged

Integrate next #73

merged 61 commits into from
Feb 21, 2024

Conversation

pedrolamarao
Copy link
Owner

No description provided.

* Update to Gradle 8.4 final

* Advance version to 0.3

* Improve external cmake project sample.

* Discover host target.

Closes #34.

* Test host target discovery.
* Update to Gradle 8.4 final

* Advance version to 0.3

* Improve external cmake project sample.

* Discover host target.

Closes #34.

* Test host target discovery.

* Conventional archive adds a test application.
* Update to Gradle 8.4 final

* Advance version to 0.3

* Improve external cmake project sample.

* Discover host target.

Closes #34.

* Test host target discovery.

* Conventional archive adds a test application.

* When configuring ixx includes, configure also the commands task.
* Don't apply cpp plugin

* Require JDK 17

* Shorten notation of test files.

* API for conventional archive and executable file names.

Closes #33.
* API to define includables etc. as public or private.

Closes #46.

* API to define includables etc. as public or private.

Closes #46.
Provide API for restricting the set of targets where the source set or component is enabled.

The empty set has the special meaning of permitting everything.
* Rewire source sets and tasks via intermediate file collections.

Add "compile", "import", "include" and "link" collections to consume the corresponding type. Rename the resolvable providers to "compilables", ""importables", "includables" and "linkables".

* Update nomenclature and remove obsolete properties.

* Remove MetalApplication.archive
* Version with SNAPSHOT instead of git hash.

* Enable configuration cache on tests.

* Make compile tasks cacheable.

* Make archive and link cacheable.

* Enable configuration cache on tests.

* Add MetalComponent.output

* Some documentation

* Test MetalComponent.output

* Make commands task cacheable
* Propagate build environment metal.path property into tests

* Use findProperty to permit unset

* Remove debug statements and return to array access notation
* Add per component dependency configurations.

* Add javadoc.
(cherry picked from commit aafd1cb)
* Start new design.

* Restore the prebuilt plugin.

* Set component name with target conventional suffix.

* Add language specific options to compiler arguments.

* Configure conventional header directory.

* Remove obsolete class.

* Restore conventional header sources.

* Add MetalIxxPrecompile.

* Remove obsolete imports.

* Make MakeIxxPrecompile extends MetalCompile.

* Update README.

* Configure application and library import dependencies.

* Remove obsolete sources.

* Test import dependencies.

* Update samples.

* Add library project test support.

* Update sample.

* Avoid running nonexistent executables.

* Move MetalExtension.

* Remove obsolete code.

* Add consumable configurations.

* Add MetalExtensionTest.

* Add copyright notice.

* Add MetalHostValueSource.

* Reusar um MetalHostValueSource.

* Move archiveFileName and executableFileName to class Metal.

* Update sample.

* Update Gradle to 8.5.

* Always build development samples with current code.

* Remover Gradle version from samples.

* Fix sample.

* Use DSL in sample.

* Remove --included-build from build command line.

* Always apply the base plugin in the root project.

* Restore component targets property.

* Remove target property.

* Remove obsolete properties.

* Set tasks onlyIf target is enabled.

* Restore target property: the target must be a part of the build cache key.

* Include the target`s outputs only.

* Add build target test.

* Use lld only if target != host.

* Adicionar Javadoc.

* Upgrade Gradle to 8.6

* Aplicar phoenix-actions/test-reporting@v8

* Apply Allure.

* Publish Allure report with actions/upload-artifact

* Generate report before uploading

* Upgrade gradle/wrapper-validation-action to v2

* Upgrade gradle/gradle-build-action to v3

* Fix step name

* Update LLVM 17 to 17.0.6

* Upgrade actions/checkout to v4

* Always run allureAggregateReport step

* Upgrade actions/setup-java to v3

* Publish Allure reports from ubuntu workflows

* Pass properties to tests via gradle.properties, not command line

* Copy gradle.properties iff exists

* Add display name to suites and tests

* Restore force-version: true

* Add last display name and remove unecessary public visibility

* Document required Gradle version.

* Add compile commands tasks to application and library projects.

* Add directory and append tool path into arguments.

* Add aggregateCommands task.

* Add commands dependencies.

* Move configuration registration to base plugin and compile task registration to language plugins.

* Represent a library test application with an actual test MetalApplication.

* Aggregate commands includes this project commands.

* Restore the prebuilt project plugin.

* Add commands dependencies.

* Apply the base plugin.
* Add tests for the desired DSL.

* Add desired notation without wiring to tasks.

* Wire component filters to task filters.
# Conflicts:
#	.github/workflows/publish.yml
#	.github/workflows/ubuntu.yml
#	.github/workflows/windows.yml
#	README.adoc
#	build.gradle.kts
#	gradle/wrapper/gradle-wrapper.properties
#	plugins/build.gradle.kts
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/MetalTestBase.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/application/ApplicationFunctionalTest.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/archive/ArchiveFunctionalTest.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/base/BaseFunctionalTest.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/base/CommandsFunctionalTest.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/c/CFunctionalTest.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/cpp/CppFunctionalTest.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/cxx/CxxFunctionalTest.java
#	plugins/src/functionalTest/java/br/dev/pedrolamarao/gradle/metal/ixx/IxxFunctionalTest.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/MetalHostTargetSource.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/MetalIxxPrecompile.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/MetalIxxSourceSet.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/MetalService.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/MetalSourceSet.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/MetalSources.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/application/MetalApplicationPlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/archive/MetalArchivePlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/asm/MetalAsmCommandsTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/asm/MetalAsmCompileBaseTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/asm/MetalAsmCompileTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/asm/MetalAsmPlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalApplication.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalArchive.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalArchiveTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalBasePlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalCompileTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalComponent.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalComponentPlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalExtension.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalLinkTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/base/MetalSourceTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/c/MetalCCommandsTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/c/MetalCCompileBaseTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/c/MetalCCompileTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/c/MetalCPlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/commands/MetalCommandsPlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/cpp/MetalCppPlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/cxx/MetalCxxCommandsTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/cxx/MetalCxxCompileBaseTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/cxx/MetalCxxCompileTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/cxx/MetalCxxPlugin.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/ixx/MetalIxxCommandsTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/ixx/MetalIxxCompileTask.java
#	plugins/src/main/java/br/dev/pedrolamarao/gradle/metal/ixx/MetalIxxPlugin.java
#	samples/README.adoc
#	samples/application-asm/settings.gradle.kts
#	samples/application-c/settings.gradle.kts
#	samples/application-cxx/settings.gradle.kts
#	samples/application-mixed/settings.gradle.kts
#	samples/archive-asm/build.gradle.kts
#	samples/archive-asm/settings.gradle.kts
#	samples/archive-c/build.gradle.kts
#	samples/archive-c/settings.gradle.kts
#	samples/archive-cxx/build.gradle.kts
#	samples/archive-cxx/settings.gradle.kts
#	samples/archive-mixed/build.gradle.kts
#	samples/archive-mixed/settings.gradle.kts
#	samples/asm-application/build.gradle.kts
#	samples/bare-metal-multiboot2/build.gradle.kts
#	samples/bare-metal-multiboot2/gradle.properties
#	samples/bare-metal-multiboot2/multiboot2/build.gradle.kts
#	samples/bare-metal-multiboot2/settings.gradle.kts
#	samples/c-application/build.gradle.kts
#	samples/cxx-application/build.gradle.kts
#	samples/dependency-on-cmake-build/application/build.gradle.kts
#	samples/dependency-on-external-cmake-ninja/build.gradle.kts
#	samples/dependency-on-external-cmake-ninja/googletest/build.gradle.kts
#	samples/dependency-on-external-cmake-ninja/settings.gradle.kts
#	samples/dependency-on-gradle-build/application/build.gradle.kts
#	samples/dependency-on-gradle-build/archive/build.gradle.kts
#	samples/dependency-on-included-build/application/settings.gradle.kts
#	samples/dependency-on-included-build/archive/settings.gradle.kts
#	samples/dependency-on-included-build/settings.gradle.kts
#	samples/dependency-on-subproject-headers/archive/build.gradle.kts
#	samples/dependency-on-subproject-headers/build.gradle.kts
#	samples/dependency-on-subproject-headers/settings.gradle.kts
#	samples/dependency-on-subproject-modules/archive/build.gradle.kts
#	samples/dependency-on-subproject-modules/build.gradle.kts
#	samples/dependency-on-subproject-modules/settings.gradle.kts
#	samples/dependency-transitivity/build.gradle.kts
#	samples/dependency-transitivity/settings.gradle.kts
#	samples/polyglot-application/build.gradle.kts
#	samples/unconventional-project/settings.gradle.kts
#	settings.gradle.kts
@pedrolamarao pedrolamarao self-assigned this Feb 21, 2024
@pedrolamarao pedrolamarao merged commit afc968d into current Feb 21, 2024
3 checks passed
@pedrolamarao pedrolamarao deleted the chore/integrate-next branch February 21, 2024 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant