xref: /expo/android/versioning_linking.gradle (revision 1833af43)
1import java.nio.file.Paths
2
3
4def normalizeProjectName(String projectRoot) {
5  return projectRoot.replace('/', '_')
6}
7
8/**
9 * Link vendored modules into settings.gradle
10 */
11ext.useVendoredModulesForSettingsGradle = { String sdkVersion ->
12  def vendoredRoot = Paths.get(rootDir.toString(), 'vendored', sdkVersion).toString()
13  fileTree(dir: vendoredRoot, include: '**/build.gradle').each { gradleFile ->
14    def projectRoot = rootDir.toPath().relativize(gradleFile.toPath()).getParent().getParent().toString()
15    def projectName = normalizeProjectName(projectRoot)
16
17    include(":${projectName}")
18    project(":${projectName}").projectDir = gradleFile.getParentFile()
19  }
20}
21
22
23/**
24 * Link vendored modules into settings.gradle
25 */
26ext.useVendoredModulesForExpoView = { String sdkVersion ->
27  def vendoredRoot = Paths.get(rootDir.toString(), 'vendored', sdkVersion).toString()
28  fileTree(dir: vendoredRoot, include: '**/build.gradle').each { gradleFile ->
29    def projectRoot = rootDir.toPath().relativize(gradleFile.toPath()).getParent().getParent().toString()
30    def projectName = normalizeProjectName(projectRoot)
31
32    dependencies.add('implementation', project(":${projectName}"))
33  }
34}
35