Skip to content

Commit

Permalink
Replaced windowsAwareYarn with windowsAwareCommandLine for node calls (
Browse files Browse the repository at this point in the history
…#33530)

Summary:
It is not necessary to call node via yarn. Instead with this commit node is called directly (windows aware). This enables builds on systems that don't have yarn installed.

Fixes #33525

## Changelog

[Android] [Fixed] - Don't require yarn for codegen tasks

Pull Request resolved: #33530

Test Plan:
1. react-native init test
2. cd test
3. enable newArchEnabled=true (gradle.properties)
4. enable enableHermes: true (build.gradle)
5. react-native run-android (when the yarn is not installed on the system)

(I have not tested or verified if this works on windows build machines)

Reviewed By: sshic

Differential Revision: D35279376

Pulled By: cortinico

fbshipit-source-id: 430e4a7bcdec7d5377efac747f6b935d634451cc
  • Loading branch information
danilobuerger authored and facebook-github-bot committed Apr 4, 2022
1 parent 44de392 commit d5da70e
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
package com.facebook.react.tasks

import com.facebook.react.codegen.generator.JavaGenerator
import com.facebook.react.utils.windowsAwareYarn
import com.facebook.react.utils.windowsAwareCommandLine
import org.gradle.api.GradleException
import org.gradle.api.file.Directory
import org.gradle.api.file.DirectoryProperty
Expand Down Expand Up @@ -93,7 +93,7 @@ abstract class GenerateCodegenArtifactsTask : Exec() {

internal fun setupCommandLine() {
commandLine(
windowsAwareYarn(
windowsAwareCommandLine(
*nodeExecutableAndArgs.get().toTypedArray(),
reactNativeDir.file("scripts/generate-specs-cli.js").get().asFile.absolutePath,
"--platform",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

package com.facebook.react.tasks

import com.facebook.react.utils.windowsAwareYarn
import com.facebook.react.utils.windowsAwareCommandLine
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.ListProperty
Expand Down Expand Up @@ -49,7 +49,7 @@ abstract class GenerateCodegenSchemaTask : Exec() {

internal fun setupCommandLine() {
commandLine(
windowsAwareYarn(
windowsAwareCommandLine(
*nodeExecutableAndArgs.get().toTypedArray(),
codegenDir
.file("lib/cli/combine/combine-js-to-schema-cli.js")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,6 @@ internal fun windowsAwareCommandLine(vararg args: Any): List<Any> =
args.toList()
}

internal fun windowsAwareYarn(vararg args: Any): List<Any> =
if (Os.isWindows()) {
listOf("yarn.cmd") + args
} else {
listOf("yarn") + args
}

internal fun windowsAwareBashCommandLine(
vararg args: String,
bashWindowsHome: String? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,24 +42,6 @@ class TaskUtilsTest {
assertEquals(listOf("cmd", "/c", "a", "b", "c"), windowsAwareCommandLine("a", "b", "c"))
}

@Test
@WithOs(OS.MAC)
fun windowsAwareYarn_onMac_returnsTheList() {
assertEquals(listOf("yarn", "a", "b", "c"), windowsAwareYarn("a", "b", "c"))
}

@Test
@WithOs(OS.UNIX)
fun windowsAwareYarn_onLinux_returnsTheList() {
assertEquals(listOf("yarn", "a", "b", "c"), windowsAwareYarn("a", "b", "c"))
}

@Test
@WithOs(OS.WIN)
fun windowsAwareYarn_onWindows_prependsCmd() {
assertEquals(listOf("yarn.cmd", "a", "b", "c"), windowsAwareYarn("a", "b", "c"))
}

@Test
@WithOs(OS.MAC)
fun windowsAwareBashCommandLine_onMac_returnsTheList() {
Expand Down

0 comments on commit d5da70e

Please sign in to comment.