diff options
Diffstat (limited to 'benchmark/runner/runner.sh')
-rwxr-xr-x | benchmark/runner/runner.sh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/benchmark/runner/runner.sh b/benchmark/runner/runner.sh new file mode 100755 index 00000000..70a25a4e --- /dev/null +++ b/benchmark/runner/runner.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# Copyright 2022 Google LLC +# +# 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. + +set -e + +SCRIPT_DIR=$(dirname "$(realpath $0)") +BENCHMARK_DIR=$1 +PREFIX=$2 + +if [ -z $PREFIX ] +then + PREFIX=.. +fi + +JAVA_ARG=$3 + +if [ -z $JAVA_ARG ] +then + JAVA=java +else + JAVA=$(realpath $SCRIPT_DIR/$JAVA_ARG) +fi + +BENCHMARK_DATA_DIR=$(realpath $SCRIPT_DIR/$PREFIX/$BENCHMARK_DIR) + +echo Running benchmark: $BENCHMARK_DIR +echo With benchmark data directory: $BENCHMARK_DATA_DIR +echo Using java: $JAVA + +cd $SCRIPT_DIR +CP=../build/libs/benchmark.jar:$(echo $BENCHMARK_DATA_DIR/lib/*.jar | tr ' ' ':') +KSP_PLUGIN_ID=com.google.devtools.ksp.symbol-processing +KSP_PLUGIN_OPT=plugin:$KSP_PLUGIN_ID + +KSP_PLUGIN_JAR=./com/google/devtools/ksp/symbol-processing-cmdline/2.0.255/symbol-processing-cmdline-2.0.255.jar +KSP_API_JAR=./com/google/devtools/ksp/symbol-processing-api/2.0.255/symbol-processing-api-2.0.255.jar + +AP=processor-1.0-SNAPSHOT.jar + +mkdir -p out +find $BENCHMARK_DATA_DIR -name "*.kt" | xargs $JAVA -cp $CP com.google.devtools.ksp.BenchRunnerKt $BENCHMARK_DIR\ + -kotlin-home . \ + -Xplugin=$KSP_PLUGIN_JAR \ + -Xplugin=$KSP_API_JAR \ + -Xallow-no-source-files \ + -P $KSP_PLUGIN_OPT:apclasspath=$AP \ + -P $KSP_PLUGIN_OPT:projectBaseDir=. \ + -P $KSP_PLUGIN_OPT:classOutputDir=./out \ + -P $KSP_PLUGIN_OPT:javaOutputDir=./out \ + -P $KSP_PLUGIN_OPT:kotlinOutputDir=./out \ + -P $KSP_PLUGIN_OPT:resourceOutputDir=./out \ + -P $KSP_PLUGIN_OPT:kspOutputDir=./out \ + -P $KSP_PLUGIN_OPT:cachesDir=./out \ + -P $KSP_PLUGIN_OPT:incremental=false \ + -P $KSP_PLUGIN_OPT:apoption=key1=value1 \ + -P $KSP_PLUGIN_OPT:apoption=key2=value2 \ + -cp $CP |