void apply()

in gradle-plugin/src/main/groovy/mozilla/telemetry/glean-gradle-plugin/GleanGradlePlugin.groovy [548:587]


    void apply(Project project) {
        isOffline = project.gradle.startParameter.offline

        project.ext.glean_version = "64.2.0"
        def parserVersion = gleanParserVersion(project)

        // Print the required glean_parser version to the console. This is
        // offline builds, and is mentioned in the documentation for offline
        // builds.
        println("Requires glean_parser ${parserVersion}")

        File envDir
        if (project.ext.has("gleanPythonEnvDir")) {
            envDir = new File(project.ext.gleanPythonEnvDir)
            isOffline = true
        } else {
            envDir = setupPythonEnvironmentTasks(project, parserVersion)
            project.ext.set("gleanPythonEnvDir", envDir)
        }
        // Also store in gleanCondaDir for backward compatibility reasons
        project.ext.set("gleanCondaDir", project.ext.gleanPythonEnvDir)

        setupExtractMetricsFromAARTasks(project)

        project.configurations.all {
            resolutionStrategy.capabilitiesResolution.withCapability("org.mozilla.telemetry:glean-native") {
                def toBeSelected = candidates.find { it.id instanceof ModuleComponentIdentifier && it.id.module.contains('geckoview') }
                if (toBeSelected != null) {
                    select(toBeSelected)
                }
                because 'use GeckoView Glean instead of standalone Glean'
            }
        }

        if (project.android.hasProperty('applicationVariants')) {
            project.android.applicationVariants.all(setupTasks(project, envDir, true, parserVersion))
        } else {
            project.android.libraryVariants.all(setupTasks(project, envDir, false, parserVersion))
        }
    }