001    /*
002     * Copyright 2010-2016 JetBrains s.r.o.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.jetbrains.kotlin.config;
018    
019    import org.jetbrains.kotlin.incremental.components.SourceRetentionAnnotationHandler;
020    import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents;
021    import org.jetbrains.kotlin.modules.Module;
022    import org.jetbrains.kotlin.script.KotlinScriptDefinition;
023    
024    import java.util.List;
025    
026    public class JVMConfigurationKeys {
027        private JVMConfigurationKeys() {
028        }
029    
030        // roots, including dependencies and own source
031        public static final CompilerConfigurationKey<List<ContentRoot>> CONTENT_ROOTS =
032                CompilerConfigurationKey.create("content roots");
033    
034        public static final CompilerConfigurationKey<List<KotlinScriptDefinition>> SCRIPT_DEFINITIONS =
035                CompilerConfigurationKey.create("script definitions");
036    
037        public static final CompilerConfigurationKey<Boolean> DISABLE_CALL_ASSERTIONS =
038                CompilerConfigurationKey.create("disable not-null call assertions");
039        public static final CompilerConfigurationKey<Boolean> DISABLE_PARAM_ASSERTIONS =
040                CompilerConfigurationKey.create("disable not-null parameter assertions");
041        public static final CompilerConfigurationKey<Boolean> DISABLE_INLINE =
042                CompilerConfigurationKey.create("disable inline");
043        public static final CompilerConfigurationKey<Boolean> DISABLE_OPTIMIZATION =
044                CompilerConfigurationKey.create("disable optimization");
045        public static final CompilerConfigurationKey<Boolean> INHERIT_MULTIFILE_PARTS =
046                CompilerConfigurationKey.create("compile multifile classes to a hierarchy of parts and facade");
047    
048        public static final CompilerConfigurationKey<JvmTarget> JVM_TARGET =
049                CompilerConfigurationKey.create("JVM bytecode target version");
050    
051        public static final CompilerConfigurationKey<IncrementalCompilationComponents> INCREMENTAL_COMPILATION_COMPONENTS =
052                CompilerConfigurationKey.create("incremental cache provider");
053    
054        public static final CompilerConfigurationKey<SourceRetentionAnnotationHandler> SOURCE_RETENTION_ANNOTATION_HANDLER =
055                CompilerConfigurationKey.create("source retention annotation handler");
056    
057        public static final CompilerConfigurationKey<String> MODULE_XML_FILE_PATH =
058                CompilerConfigurationKey.create("path to module.xml");
059    
060        public static final CompilerConfigurationKey<String> DECLARATIONS_JSON_PATH =
061                CompilerConfigurationKey.create("path to declarations output");
062    
063        public static final CompilerConfigurationKey<List<Module>> MODULES =
064                CompilerConfigurationKey.create("module data");
065    
066        public static final CompilerConfigurationKey<String> MODULE_NAME =
067                CompilerConfigurationKey.create("module name");
068    }