Home | History | Annotate | Download | only in buildSrc
      1 /*
      2  * Copyright (C) 2018 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 def standaloneProject = project(":jetifier-standalone")
     17 def jetifierBin = file("${standaloneProject.buildDir}/install/jetifier-standalone/bin/jetifier-standalone")
     18 
     19 task stripArchive(type: Zip) {
     20     dependsOn tasks['createArchive']
     21     from zipTree(project.tasks['createArchive'].archivePath)
     22     destinationDir rootProject.buildDir
     23     archiveName "stripped_archive.zip"
     24     include "m2repository/androidx/annotation/**",
     25             "m2repository/androidx/appcompat/**",
     26             "m2repository/androidx/asynclayoutinflater/**",
     27             "m2repository/androidx/browser/**",
     28             "m2repository/androidx/car/**",
     29             "m2repository/androidx/cardview/**",
     30             "m2repository/androidx/collection/collection/**",
     31             "m2repository/androidx/coordinatorlayout/**",
     32             "m2repository/androidx/core/core/**",
     33             "m2repository/androidx/cursoradapter/**",
     34             "m2repository/androidx/customview/**",
     35             "m2repository/androidx/documentfile/**",
     36             "m2repository/androidx/drawerlayout/**",
     37             "m2repository/androidx/dynamicanimation/**",
     38             "m2repository/androidx/emoji/**",
     39             "m2repository/androidx/exifinterface/**",
     40             "m2repository/androidx/fragment/fragment/**",
     41             "m2repository/androidx/gridlayout/**",
     42             "m2repository/androidx/heifwriter/**",
     43             "m2repository/androidx/interpolator/**",
     44             "m2repository/androidx/leanback/**",
     45             "m2repository/androidx/legacy/**",
     46             "m2repository/androidx/loader/**",
     47             "m2repository/androidx/localbroadcastmanager/**",
     48             "m2repository/androidx/media/media/**",
     49             "m2repository/androidx/mediarouter/**",
     50             "m2repository/androidx/palette/palette/**",
     51             "m2repository/androidx/percentlayout/**",
     52             "m2repository/androidx/preference/**",
     53             "m2repository/androidx/print/**",
     54             "m2repository/androidx/recommendation/**",
     55             "m2repository/androidx/recyclerview/**",
     56             "m2repository/androidx/slice/**",
     57             "m2repository/androidx/slidingpanelayout/**",
     58             "m2repository/androidx/swiperefreshlayout/**",
     59             "m2repository/androidx/transition/**",
     60             "m2repository/androidx/tvprovider/**",
     61             "m2repository/androidx/vectordrawable/**",
     62             "m2repository/androidx/viewpager/**",
     63             "m2repository/androidx/wear/**",
     64             "m2repository/androidx/webkit/**"
     65 }
     66 
     67 task dejetifyArchive(type: Exec) {
     68     description "Produces a zip of dejetified artifacts by running Dejetifier against refactored" +
     69             " artifacts, for temporary usage by external clients that haven't upgraded to Jetpack" +
     70             " yet."
     71 
     72     dependsOn ':jetifier-standalone:installDist'
     73     dependsOn project.tasks['stripArchive']
     74     inputs.file project.tasks['stripArchive'].archivePath
     75 
     76     outputs.file "${rootProject.ext.distDir}/top-of-tree-m2repository-dejetified-${project.ext.buildNumber}.zip"
     77 
     78     commandLine (
     79         "${jetifierBin}",
     80         "-i", "${inputs.files.singleFile}",
     81         "-o", "${outputs.files.singleFile}",
     82         "--versions", "inDev",
     83         "--log", "warning",
     84         "--reversed",
     85         "--rebuildTopOfTree"
     86     )
     87 }
     88