Add Gradle plugin for building libraries #37
Add Gradle plugin for building libraries #37
Conversation
The plugin adds a number of sub-tasks, but only the aggregate |
This ensures they don't show up when using ./gradlew :jvm:tasks. The only two tasks that will appear in the end will be buildJvmLib and buildAndroidLib.
d604793
to
e566c40
Compare
Looks like this needs a rebase. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a great improvement, much cleaner to use gradle than build.sh. I tested building and running the jvm and android tests and works great on my linux box (after making the little requested changes). A rebase it also needed I believe. I also think it's ok to remove the build.sh
in this PR.
buildSrc/src/main/kotlin/org/bitcoindevkit/plugins/generate-jvm-bindings.gradle.kts
Show resolved
Hide resolved
buildSrc/src/main/kotlin/org/bitcoindevkit/plugins/generate-jvm-bindings.gradle.kts
Show resolved
Hide resolved
buildSrc/src/main/kotlin/org/bitcoindevkit/plugins/generate-jvm-bindings.gradle.kts
Show resolved
Hide resolved
buildSrc/src/main/kotlin/org/bitcoindevkit/plugins/generate-jvm-bindings.gradle.kts
Show resolved
Hide resolved
buildSrc/src/main/kotlin/org/bitcoindevkit/plugins/generate-jvm-bindings.gradle.kts
Outdated
Show resolved
Hide resolved
Good idea to remove the build shell script. It forces a change in the CI as well but I think it should work. Fixed in latest commit. |
I tried resolving the conflicts right into the Github UI instead of rebasing (it offered me the option to do so, which I'd never seen before... first time trying this). Anyway it looks like it worked nicely. |
This PR implicitly removes support for the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK a9f42dd
Thanks for the fixes! I think this is ready to go let's chat about when to merge.
Description
This PR adds two internal Gradle plugins which live in the
buildSrc
directory. The purpose of the plugins is to replace thebuild.sh
script by a more idiomatic and customizable workflow using Gradle tasks.Notes to the reviewers
By default the
:android:buildAndroidLib
task will build all versions ofbdk-android
, which currently are thearm64-v8a
(for mobile devices) and thex86_64
(for emulators).Users can opt out of a particular build if they'd like by excluding the task like so:
This PR is open as a discussion piece on the direction I am taking for implementing the next iteration of our build logic.
To test the plugins, first see that the tasks have been added using
./gradlew tasks
, which should add theBitcoindevkit
group to the list of Gradle tasks:Then run either tasks to build the given library:
All Submissions:
New Features: