add compiler key for providing android resources path
This commit is contained in:
committed by
Yan Zhulanow
parent
afee95a37c
commit
ec6f9c9fc5
+4
@@ -66,6 +66,10 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments {
|
|||||||
@Argument(value = "Xno-optimize", description = "Disable optimizations")
|
@Argument(value = "Xno-optimize", description = "Disable optimizations")
|
||||||
public boolean noOptimize;
|
public boolean noOptimize;
|
||||||
|
|
||||||
|
@Argument(value = "androidRes", description = "Android resources path")
|
||||||
|
@ValueDescription("<path>")
|
||||||
|
public String androidRes;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public String executableScriptFileName() {
|
public String executableScriptFileName() {
|
||||||
|
|||||||
@@ -19,5 +19,6 @@
|
|||||||
<orderEntry type="module" module-name="serialization" />
|
<orderEntry type="module" module-name="serialization" />
|
||||||
<orderEntry type="module" module-name="serialization.jvm" />
|
<orderEntry type="module" module-name="serialization.jvm" />
|
||||||
<orderEntry type="module" module-name="util" />
|
<orderEntry type="module" module-name="util" />
|
||||||
|
<orderEntry type="module" module-name="frontend.android" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|||||||
@@ -51,4 +51,7 @@ public class JVMConfigurationKeys {
|
|||||||
|
|
||||||
public static final CompilerConfigurationKey<List<String>> MODULE_IDS =
|
public static final CompilerConfigurationKey<List<String>> MODULE_IDS =
|
||||||
CompilerConfigurationKey.create("module id strings");
|
CompilerConfigurationKey.create("module id strings");
|
||||||
|
|
||||||
|
public static final CompilerConfigurationKey<String> ANDROID_RES_PATH =
|
||||||
|
CompilerConfigurationKey.create("android resources search path");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,6 +90,10 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments> {
|
|||||||
return INTERNAL_ERROR;
|
return INTERNAL_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (arguments.androidRes != null) {
|
||||||
|
configuration.put(JVMConfigurationKeys.ANDROID_RES_PATH, arguments.androidRes);
|
||||||
|
}
|
||||||
|
|
||||||
if (arguments.script) {
|
if (arguments.script) {
|
||||||
if (arguments.freeArgs.isEmpty()) {
|
if (arguments.freeArgs.isEmpty()) {
|
||||||
messageCollector.report(CompilerMessageSeverity.ERROR, "Specify script source path to evaluate",
|
messageCollector.report(CompilerMessageSeverity.ERROR, "Specify script source path to evaluate",
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ import kotlin.Function1;
|
|||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.TestOnly;
|
import org.jetbrains.annotations.TestOnly;
|
||||||
|
import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlPathProvider;
|
||||||
|
import org.jetbrains.jet.lang.resolve.android.CliAndroidUIXmlPathProvider;
|
||||||
import org.jetbrains.kotlin.asJava.JavaElementFinder;
|
import org.jetbrains.kotlin.asJava.JavaElementFinder;
|
||||||
import org.jetbrains.kotlin.asJava.KotlinLightClassForPackage;
|
import org.jetbrains.kotlin.asJava.KotlinLightClassForPackage;
|
||||||
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport;
|
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport;
|
||||||
@@ -293,6 +295,9 @@ public class JetCoreEnvironment {
|
|||||||
configuration.getList(CommonConfigurationKeys.SCRIPT_DEFINITIONS_KEY)
|
configuration.getList(CommonConfigurationKeys.SCRIPT_DEFINITIONS_KEY)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
String s = configuration.get(JVMConfigurationKeys.ANDROID_RES_PATH);
|
||||||
|
project.registerService(AndroidUIXmlPathProvider.class, new CliAndroidUIXmlPathProvider(s));
|
||||||
|
|
||||||
project.registerService(VirtualFileFinderFactory.class, new CliVirtualFileFinderFactory(classPath));
|
project.registerService(VirtualFileFinderFactory.class, new CliVirtualFileFinderFactory(classPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -1,11 +1,12 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.android
|
package org.jetbrains.jet.lang.resolve.android
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.ArrayList
|
||||||
|
|
||||||
class CliAndroidUIXmlPathProvider: AndroidUIXmlPathProvider {
|
class CliAndroidUIXmlPathProvider(val searchPath: String?): AndroidUIXmlPathProvider {
|
||||||
|
|
||||||
override fun getPaths(): MutableCollection<File> {
|
override fun getPaths(): MutableCollection<File> {
|
||||||
throw UnsupportedOperationException()
|
return if (searchPath != null) arrayListOf(File(searchPath + "/layout/")) else ArrayList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user