blob: 4be9163f57229e55a270fae92c1290601a46990d [file] [log] [blame]
/*
* Copyright 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
def githubBuild = project.properties['androidx.github.build'] ?: false
if (githubBuild) {
task setupJsBenchmark(type: Exec) {
inputs.file("package.json")
inputs.file("package-lock.json")
commandLine 'npm', 'install'
outputs.dir("node_modules")
}
task linkCollectionPackage(type: Exec) {
def compileTaskName = ':collection:collection:compileKotlinJs'
dependsOn compileTaskName
// Store where the node module is located. Subject to future changes.
def npmPackageDir = ''
tasks.getByPath(compileTaskName).outputs.files.each {
def matcher = it.toString() =~ /(.+)\/kotlin$/
if (matcher) {
npmPackageDir = matcher.group(1)
}
}
outputs.dir(npmPackageDir)
// Symlink the built module to the working dir's node_modules/. This enables
// our benchmark code to use Collection KMP.
commandLine 'npm', 'link', npmPackageDir
}
task runJsBenchmark(type: Exec) {
dependsOn linkCollectionPackage
commandLine 'node', 'src/js/main.js'
}
}