@@ -7,10 +7,12 @@ import dev.matrix.agp.rust.utils.RustBinaries
77import dev.matrix.agp.rust.utils.SemanticVersion
88import dev.matrix.agp.rust.utils.log
99import org.gradle.api.Project
10+ import org.gradle.process.ExecOperations
1011import java.io.ByteArrayOutputStream
1112
1213internal fun installRustComponentsIfNeeded (
1314 project : Project ,
15+ execOperations : ExecOperations ,
1416 minimalVersion : SemanticVersion ? ,
1517 abiSet : Collection <Abi >,
1618 rustBinaries : RustBinaries ,
@@ -20,29 +22,29 @@ internal fun installRustComponentsIfNeeded(
2022 }
2123
2224 if (minimalVersion != null && minimalVersion.isValid) {
23- val actualVersion = readRustCompilerVersion(project , rustBinaries)
25+ val actualVersion = readRustCompilerVersion(execOperations , rustBinaries)
2426 if (actualVersion < minimalVersion) {
25- installRustUp(project , rustBinaries)
26- updateRust(project , rustBinaries)
27+ installRustUp(execOperations , rustBinaries)
28+ updateRust(execOperations , rustBinaries)
2729 }
2830 }
2931
3032 if (abiSet.isNotEmpty()) {
31- installRustUp(project , rustBinaries)
33+ installRustUp(execOperations , rustBinaries)
3234
33- val installedAbiSet = readRustUpInstalledTargets(project , rustBinaries)
35+ val installedAbiSet = readRustUpInstalledTargets(execOperations , rustBinaries)
3436 for (abi in abiSet) {
3537 if (installedAbiSet.contains(abi)) {
3638 continue
3739 }
38- installRustTarget(project , abi, rustBinaries)
40+ installRustTarget(execOperations , abi, rustBinaries)
3941 }
4042 }
4143}
4244
43- private fun installRustUp (project : Project , rustBinaries : RustBinaries ) {
45+ private fun installRustUp (execOperations : ExecOperations , rustBinaries : RustBinaries ) {
4446 try {
45- val result = project .exec {
47+ val result = execOperations .exec {
4648 standardOutput = NullOutputStream
4749 errorOutput = NullOutputStream
4850 executable(rustBinaries.rustup)
@@ -57,38 +59,38 @@ private fun installRustUp(project: Project, rustBinaries: RustBinaries) {
5759
5860 log(" installing rustup" )
5961
60- project .exec {
62+ execOperations .exec {
6163 standardOutput = NullOutputStream
6264 errorOutput = NullOutputStream
6365 commandLine(" bash" , " -c" , " \" curl\" --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y" )
6466 }.assertNormalExitValue()
6567}
6668
67- private fun updateRust (project : Project , rustBinaries : RustBinaries ) {
69+ private fun updateRust (execOperations : ExecOperations , rustBinaries : RustBinaries ) {
6870 log(" updating rust version" )
6971
70- project .exec {
72+ execOperations .exec {
7173 standardOutput = NullOutputStream
7274 errorOutput = NullOutputStream
7375 executable(rustBinaries.rustup)
7476 args(" update" )
7577 }.assertNormalExitValue()
7678}
7779
78- private fun installRustTarget (project : Project , abi : Abi , rustBinaries : RustBinaries ) {
80+ private fun installRustTarget (execOperations : ExecOperations , abi : Abi , rustBinaries : RustBinaries ) {
7981 log(" installing rust target $abi (${abi.rustTargetTriple} )" )
8082
81- project .exec {
83+ execOperations .exec {
8284 standardOutput = NullOutputStream
8385 errorOutput = NullOutputStream
8486 executable(rustBinaries.rustup)
8587 args(" target" , " add" , abi.rustTargetTriple)
8688 }.assertNormalExitValue()
8789}
8890
89- private fun readRustCompilerVersion (project : Project , rustBinaries : RustBinaries ): SemanticVersion {
91+ private fun readRustCompilerVersion (execOperations : ExecOperations , rustBinaries : RustBinaries ): SemanticVersion {
9092 val output = ByteArrayOutputStream ()
91- project .exec {
93+ execOperations .exec {
9294 standardOutput = output
9395 errorOutput = NullOutputStream
9496 executable(rustBinaries.rustc)
@@ -104,9 +106,9 @@ private fun readRustCompilerVersion(project: Project, rustBinaries: RustBinaries
104106 return SemanticVersion (match.groupValues[1 ])
105107}
106108
107- private fun readRustUpInstalledTargets (project : Project , rustBinaries : RustBinaries ): Set <Abi > {
109+ private fun readRustUpInstalledTargets (execOperations : ExecOperations , rustBinaries : RustBinaries ): Set <Abi > {
108110 val output = ByteArrayOutputStream ()
109- project .exec {
111+ execOperations .exec {
110112 standardOutput = output
111113 errorOutput = NullOutputStream
112114 executable(rustBinaries.rustup)
0 commit comments