blob: 4e16c81ae27524e5b45df7cdf6d8103e4956203a [file] [log] [blame]
/*
* Copyright 2011 Google Inc.
*
* 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.
*/
package com.google.gwt.dev.codeserver;
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.dev.jjs.JsOutputOption;
import com.google.gwt.dev.util.arg.OptionOptimize;
import com.google.gwt.dev.util.arg.SourceLevel;
import com.google.gwt.thirdparty.guava.common.collect.Lists;
import java.io.File;
import java.util.List;
/**
* Defines the compiler settings that Super Dev Mode uses for compiling
* GWT apps. For now, these settings are hard-coded to reasonable defaults.
*/
class CompilerOptionsImpl extends UnmodifiableCompilerOptions {
private final CompileDir compileDir;
private final List<String> moduleNames;
private final SourceLevel sourceLevel;
private final boolean strictResources;
CompilerOptionsImpl(CompileDir compileDir, List<String> moduleNames, SourceLevel sourceLevel,
boolean strictResources) {
this.compileDir = compileDir;
this.moduleNames = Lists.newArrayList(moduleNames);
this.sourceLevel = sourceLevel;
this.strictResources = strictResources;
}
@Override
public boolean enforceStrictResources() {
return strictResources;
}
@Override
public File getDeployDir() {
return compileDir.getDeployDir();
}
@Override
public File getExtraDir() {
return compileDir.getExtraDir();
}
@Override
public int getFragmentCount() {
return -1;
}
@Override
public int getFragmentsMerge() {
return -1;
}
@Override
public File getGenDir() {
return compileDir.getGenDir();
}
/**
* Number of threads to use to compile permutations.
*/
@Override
public int getLocalWorkers() {
return 1;
}
@Override
public TreeLogger.Type getLogLevel() {
return TreeLogger.Type.WARN;
}
@Override
public int getMaxPermsPerPrecompile() {
return -1;
}
@Override
public List<String> getModuleNames() {
return moduleNames;
}
@Override
public int getOptimizationLevel() {
return OptionOptimize.OPTIMIZE_LEVEL_DRAFT;
}
@Override
public JsOutputOption getOutput() {
return JsOutputOption.PRETTY;
}
@Override
public boolean shouldSaveSource() {
return false; // handling this a different way
}
@Override
public File getSaveSourceOutput() {
return null;
}
@Override
public SourceLevel getSourceLevel() {
return sourceLevel;
}
@Override
public File getWarDir() {
return compileDir.getWarDir();
}
@Override
public File getWorkDir() {
return compileDir.getWorkDir();
}
@Override
@Deprecated
public boolean isAggressivelyOptimize() {
return false;
}
@Override
public boolean isCastCheckingDisabled() {
return false;
}
@Override
public boolean isClassMetadataDisabled() {
return false;
}
@Override
public boolean isClosureCompilerEnabled() {
return false;
}
@Override
public boolean isCompilerMetricsEnabled() {
return false;
}
@Override
public boolean isEnableAssertions() {
return true;
}
@Override
public boolean isEnabledGeneratingOnShards() {
return true;
}
@Override
public boolean isOptimizePrecompile() {
return true;
}
@Override
public boolean isRunAsyncEnabled() {
return false;
}
@Override
public boolean isSoycEnabled() {
return false;
}
@Override
public boolean isSoycExtra() {
return false;
}
@Override
public boolean isSoycHtmlDisabled() {
return true;
}
@Override
public boolean isStrict() {
return false;
}
@Override
public boolean isUpdateCheckDisabled() {
return true;
}
@Override
public boolean isValidateOnly() {
return false;
}
@Override
public boolean shouldClusterSimilarFunctions() {
return false;
}
@Override
public boolean shouldInlineLiteralParameters() {
return false;
}
@Override
public boolean shouldOptimizeDataflow() {
return false;
}
@Override
public boolean shouldOrdinalizeEnums() {
return false;
}
@Override
public boolean shouldRemoveDuplicateFunctions() {
return false;
}
}