include ':lib' include ':testing:java:com:google:android:material:testapp' include ':testing:java:com:google:android:material:testapp:animation' include ':testing:java:com:google:android:material:testapp:base' include ':testing:java:com:google:android:material:testapp:custom' include ':testing:java:com:google:android:material:testapp:theme' include ':catalog' rootProject.children.each { p -> def allChildren = [] def curChildren = p.children while (!curChildren.isEmpty()) { allChildren.addAll(curChildren) curChildren = (curChildren.findResults { it.children.isEmpty() ? null : it.children }).flatten() } allChildren.each { project -> // Give each project a repository-wide unique name based on their path from // the top-level dir (e.g. the project at java/io/material/catalog will // be named :java-io-material-catalog). Doing so avoids the need to // have unique directory names throughout our subprojects. project.name = project.path.substring(1).replace(':', '-') } }