blob: 69ec5e6a83c74c69f1dcf8979fdc4170b4052d6c [file] [log] [blame]
// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.optimize.compose;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.SystemPropertyUtils;
public class JetpackComposeOptions {
private final InternalOptions options;
public boolean enableComposableOptimizationPass =
SystemPropertyUtils.parseSystemPropertyOrDefault(
"com.android.tools.r8.jetpackcompose.enableComposableOptimizationPass", false);
public boolean enableModelingOfChangedArguments =
SystemPropertyUtils.parseSystemPropertyOrDefault(
"com.android.tools.r8.jetpackcompose.enableModelingOfChangedArguments", false);
public JetpackComposeOptions(InternalOptions options) {
this.options = options;
}
public void enableAllOptimizations(boolean enable) {
enableComposableOptimizationPass = enable;
enableModelingOfChangedArguments = enable;
}
public boolean isAnyOptimizationsEnabled() {
return isComposableOptimizationPassEnabled()
|| isModelingChangedArgumentsToComposableFunctions();
}
public boolean isComposableOptimizationPassEnabled() {
return isModelingChangedArgumentsToComposableFunctions() && enableComposableOptimizationPass;
}
public boolean isModelingChangedArgumentsToComposableFunctions() {
return options.isOptimizing() && options.isShrinking() && enableModelingOfChangedArguments;
}
}