JS: drop "-kjsm" flag, merge logic with "-meta-info"
#KT-16049 Fixed
This commit is contained in:
@@ -420,7 +420,7 @@
|
||||
</src>
|
||||
</new-kotlin2js>
|
||||
|
||||
<new-kotlin2js output="${js.stdlib.output.dir}/tmp/kotlin.js" additionalOptions="-meta-info -kjsm">
|
||||
<new-kotlin2js output="${js.stdlib.output.dir}/tmp/kotlin.js" additionalOptions="-meta-info">
|
||||
<src>
|
||||
<union>
|
||||
<fileset refid="kotlin.builtin.files"/>
|
||||
@@ -1119,7 +1119,6 @@
|
||||
<arg value="${output}/classes/kotlin-test-js/kotlin-test.js"/>
|
||||
<arg value="-version"/>
|
||||
<arg value="-meta-info"/>
|
||||
<arg value="-kjsm"/>
|
||||
<arg line="-main noCall"/>
|
||||
<arg line="-module-kind umd"/>
|
||||
<arg value="-Xmulti-platform"/>
|
||||
|
||||
+1
-5
@@ -44,13 +44,9 @@ public class K2JSCompilerArguments extends CommonCompilerArguments {
|
||||
public boolean sourceMap;
|
||||
|
||||
@GradleOption(DefaultValues.BooleanTrueDefault.class)
|
||||
@Argument(value = "meta-info", description = "Generate metadata")
|
||||
@Argument(value = "meta-info", description = "Generate .meta.js and .kjsm files with metadata. Use to create a library")
|
||||
public boolean metaInfo;
|
||||
|
||||
@GradleOption(DefaultValues.BooleanTrueDefault.class)
|
||||
@Argument(value = "kjsm", description = "Generate kjsm-files (for creating libraries)")
|
||||
public boolean kjsm;
|
||||
|
||||
@GradleOption(DefaultValues.JsEcmaVersions.class)
|
||||
@Argument(value = "target", description = "Generate JS files for specific ECMA version")
|
||||
@ValueDescription("{ v5 }")
|
||||
|
||||
@@ -275,9 +275,6 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
|
||||
if (arguments.metaInfo) {
|
||||
configuration.put(JSConfigurationKeys.META_INFO, true);
|
||||
}
|
||||
if (arguments.kjsm) {
|
||||
configuration.put(JSConfigurationKeys.KJSM, true);
|
||||
}
|
||||
|
||||
List<String> libraryFiles = new SmartList<String>();
|
||||
if (!arguments.noStdlib) {
|
||||
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
compiler/testData/integration/ant/js/simpleWithoutStdlibAndFolderAsAnotherLib/jslib-example/LibraryExample.kt
|
||||
-no-stdlib
|
||||
-kjsm
|
||||
-output
|
||||
$TEMP_DIR$/jslib-example.js
|
||||
-1
@@ -1 +0,0 @@
|
||||
OK
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
// EXISTS: jslib-example.js
|
||||
// EXISTS: jslib-example/library/sample/ClassA.kjsm
|
||||
@@ -1,6 +1,5 @@
|
||||
compiler/testData/integration/ant/js/simpleWithoutStdlibAndFolderAsAnotherLib/jslib-example/LibraryExample.kt
|
||||
-no-stdlib
|
||||
-meta-info
|
||||
-kjsm
|
||||
-output
|
||||
$TEMP_DIR$/jslib-example.js
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
// EXISTS: jslib-example.meta.js
|
||||
// EXISTS: jslib-example.js
|
||||
// EXISTS: jslib-example/library/sample/ClassA.kjsm
|
||||
// EXISTS: jslib-example/library/sample/sample.kjsm
|
||||
|
||||
Vendored
+1
-2
@@ -4,8 +4,7 @@ where possible options include:
|
||||
-no-stdlib Don't use bundled Kotlin stdlib
|
||||
-library-files <path[,]> Path to zipped library sources or kotlin files separated by commas
|
||||
-source-map Generate source map
|
||||
-meta-info Generate metadata
|
||||
-kjsm Generate kjsm-files (for creating libraries)
|
||||
-meta-info Generate .meta.js and .kjsm files with metadata. Use to create a library
|
||||
-target { v5 } Generate JS files for specific ECMA version
|
||||
-module-kind { plain, amd, commonjs, umd }
|
||||
Kind of a module generated by compiler
|
||||
|
||||
@@ -21,7 +21,6 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.io.ZipUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.cli.common.ExitCode;
|
||||
import org.jetbrains.kotlin.cli.js.K2JSCompiler;
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
|
||||
@@ -135,7 +134,7 @@ public class MockLibraryUtil {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static File compileJsLibraryToJar(
|
||||
private static File compileJsLibraryToJar(
|
||||
@NotNull String sourcesPath,
|
||||
@NotNull String jarName,
|
||||
boolean addSources
|
||||
@@ -145,8 +144,7 @@ public class MockLibraryUtil {
|
||||
|
||||
File outDir = new File(contentDir, "out");
|
||||
File outputFile = new File(outDir, jarName + ".js");
|
||||
File outputMetaFile = new File(outDir, jarName + ".meta.js");
|
||||
compileKotlin2JS(sourcesPath, outputFile, outputMetaFile, true);
|
||||
compileKotlin2JS(sourcesPath, outputFile);
|
||||
|
||||
return createJarFile(contentDir, outDir, sourcesPath, jarName, addSources);
|
||||
}
|
||||
@@ -221,15 +219,10 @@ public class MockLibraryUtil {
|
||||
runJvmCompiler(args);
|
||||
}
|
||||
|
||||
public static void compileKotlin2JS(@NotNull String sourcesPath, @NotNull File outputFile, @Nullable File metaFile, boolean kjsm) {
|
||||
private static void compileKotlin2JS(@NotNull String sourcesPath, @NotNull File outputFile) {
|
||||
List<String> args = new ArrayList<String>();
|
||||
if (metaFile != null) {
|
||||
args.add("-meta-info");
|
||||
}
|
||||
if (kjsm) {
|
||||
args.add("-kjsm");
|
||||
}
|
||||
|
||||
args.add("-meta-info");
|
||||
args.add("-output");
|
||||
args.add(outputFile.getAbsolutePath());
|
||||
|
||||
|
||||
@@ -407,12 +407,6 @@ public class CliTestGenerated extends AbstractCliTest {
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/cli/js"), Pattern.compile("^(.+)\\.args$"), TargetBackend.ANY, false);
|
||||
}
|
||||
|
||||
@TestMetadata("createKjsm.args")
|
||||
public void testCreateKjsm() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/js/createKjsm.args");
|
||||
doJsTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("createMetadata.args")
|
||||
public void testCreateMetadata() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/cli/js/createMetadata.args");
|
||||
|
||||
@@ -89,15 +89,22 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
||||
"$PROJECT_NAME.js",
|
||||
"$PROJECT_NAME.meta.js",
|
||||
"lib/kotlin.js",
|
||||
"lib/kotlin.meta.js"
|
||||
"lib/kotlin.meta.js",
|
||||
"$PROJECT_NAME/root-package.kjsm"
|
||||
)
|
||||
private val EXPECTED_JS_FILES_IN_OUTPUT_FOR_MODULE_STDLIB_ONLY = hashSetOf(
|
||||
"$ADDITIONAL_MODULE_NAME.js",
|
||||
"$ADDITIONAL_MODULE_NAME.meta.js",
|
||||
"lib/kotlin.js",
|
||||
"lib/kotlin.meta.js"
|
||||
"lib/kotlin.meta.js",
|
||||
"$ADDITIONAL_MODULE_NAME/module2/module2.kjsm"
|
||||
)
|
||||
private val EXPECTED_JS_FILES_IN_OUTPUT_NO_COPY = hashSetOf(
|
||||
"$PROJECT_NAME.js",
|
||||
"$PROJECT_NAME.meta.js",
|
||||
"$PROJECT_NAME/root-package.kjsm",
|
||||
"$PROJECT_NAME/library/sample/sample.kjsm"
|
||||
)
|
||||
private val EXPECTED_JS_FILES_IN_OUTPUT_NO_COPY = hashSetOf("$PROJECT_NAME.js", "$PROJECT_NAME.meta.js")
|
||||
private val EXPECTED_JS_FILES_IN_OUTPUT_WITH_ADDITIONAL_LIB_AND_DEFAULT_DIR = hashSetOf(
|
||||
"$PROJECT_NAME.js",
|
||||
"$PROJECT_NAME.meta.js",
|
||||
@@ -108,7 +115,9 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
||||
"lib/dir/file1.js",
|
||||
"lib/META-INF-ex/file2.js",
|
||||
"lib/res0.js",
|
||||
"lib/resdir/res1.js"
|
||||
"lib/resdir/res1.js",
|
||||
"$PROJECT_NAME/root-package.kjsm",
|
||||
"$PROJECT_NAME/library/sample/sample.kjsm"
|
||||
)
|
||||
private val EXPECTED_JS_FILES_IN_OUTPUT_WITH_ADDITIONAL_LIB_AND_CUSTOM_DIR = hashSetOf(
|
||||
"$PROJECT_NAME.js",
|
||||
@@ -120,7 +129,9 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
||||
"custom/dir/file1.js",
|
||||
"custom/META-INF-ex/file2.js",
|
||||
"custom/res0.js",
|
||||
"custom/resdir/res1.js"
|
||||
"custom/resdir/res1.js",
|
||||
"$PROJECT_NAME/root-package.kjsm",
|
||||
"$PROJECT_NAME/library/sample/sample.kjsm"
|
||||
)
|
||||
|
||||
private fun k2jsOutput(vararg moduleNames: String): Array<String> {
|
||||
|
||||
@@ -28,9 +28,7 @@ public class JSConfigurationKeys {
|
||||
public static final CompilerConfigurationKey<Boolean> SOURCE_MAP =
|
||||
CompilerConfigurationKey.create("generate source map");
|
||||
public static final CompilerConfigurationKey<Boolean> META_INFO =
|
||||
CompilerConfigurationKey.create("generate metadata");
|
||||
public static final CompilerConfigurationKey<Boolean> KJSM =
|
||||
CompilerConfigurationKey.create("generate .kjsm files");
|
||||
CompilerConfigurationKey.create("generate .meta.js and .kjsm files");
|
||||
|
||||
public static final CompilerConfigurationKey<EcmaVersion> TARGET =
|
||||
CompilerConfigurationKey.create("ECMA version target");
|
||||
|
||||
@@ -16,18 +16,18 @@
|
||||
|
||||
package org.jetbrains.kotlin.js.facade
|
||||
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsProgram
|
||||
import org.jetbrains.kotlin.js.util.TextOutput
|
||||
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.openapi.vfs.VfsUtilCore
|
||||
import org.jetbrains.kotlin.backend.common.output.*
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.js.backend.ast.JsProgram
|
||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||
import org.jetbrains.kotlin.js.config.JsConfig
|
||||
import org.jetbrains.kotlin.js.sourceMap.JsSourceGenerationVisitor
|
||||
import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder
|
||||
import org.jetbrains.kotlin.js.sourceMap.SourceMapBuilder
|
||||
import org.jetbrains.kotlin.js.util.TextOutput
|
||||
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
||||
@@ -86,9 +86,7 @@ abstract class TranslationResult protected constructor(val diagnostics: Diagnost
|
||||
val sourceFilesForMetaFile = ArrayList(sourceFiles)
|
||||
val jsMetaFile = SimpleOutputFile(sourceFilesForMetaFile, metaFileName, metaFileContent)
|
||||
outputFiles.add(jsMetaFile)
|
||||
}
|
||||
|
||||
if (config.configuration.getBoolean(JSConfigurationKeys.KJSM)) {
|
||||
KotlinJavascriptSerializationUtil.toContentMap(bindingContext, moduleDescriptor).forEach {
|
||||
// TODO Add correct source files
|
||||
outputFiles.add(SimpleOutputBinaryFile(emptyList(), config.moduleId + VfsUtilCore.VFS_SEPARATOR_CHAR + it.key, it.value))
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
<arg>-Xmulti-platform</arg>
|
||||
</args>
|
||||
<moduleKind>umd</moduleKind>
|
||||
<kjsm>true</kjsm>
|
||||
<metaInfo>true</metaInfo>
|
||||
</configuration>
|
||||
|
||||
@@ -77,9 +76,6 @@
|
||||
<include>**/*.js</include>
|
||||
<include>**/*.js.map</include>
|
||||
<include>**/*.kjsm</include>
|
||||
<include>**/*.kotlin_classes</include>
|
||||
<include>**/*.kotlin_string_table</include>
|
||||
<include>**/*.kotlin_file_table</include>
|
||||
</includes>
|
||||
<archive>
|
||||
<forced />
|
||||
|
||||
+1
-7
@@ -4,12 +4,6 @@ package org.jetbrains.kotlin.gradle.dsl
|
||||
|
||||
interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions {
|
||||
|
||||
/**
|
||||
* Generate kjsm-files (for creating libraries)
|
||||
* Default value: true
|
||||
*/
|
||||
var kjsm: kotlin.Boolean
|
||||
|
||||
/**
|
||||
* Whether a main function should be called
|
||||
* Possible values: "call", "noCall"
|
||||
@@ -18,7 +12,7 @@ interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
var main: kotlin.String
|
||||
|
||||
/**
|
||||
* Generate metadata
|
||||
* Generate .meta.js and .kjsm files with metadata. Use to create a library
|
||||
* Default value: true
|
||||
*/
|
||||
var metaInfo: kotlin.Boolean
|
||||
|
||||
-7
@@ -24,11 +24,6 @@ internal abstract class KotlinJsOptionsBase : org.jetbrains.kotlin.gradle.dsl.Ko
|
||||
get() = verboseField ?: false
|
||||
set(value) { verboseField = value }
|
||||
|
||||
private var kjsmField: kotlin.Boolean? = null
|
||||
override var kjsm: kotlin.Boolean
|
||||
get() = kjsmField ?: true
|
||||
set(value) { kjsmField = value }
|
||||
|
||||
private var mainField: kotlin.String? = null
|
||||
override var main: kotlin.String
|
||||
get() = mainField ?: "call"
|
||||
@@ -69,7 +64,6 @@ internal abstract class KotlinJsOptionsBase : org.jetbrains.kotlin.gradle.dsl.Ko
|
||||
languageVersionField?.let { args.languageVersion = it }
|
||||
suppressWarningsField?.let { args.suppressWarnings = it }
|
||||
verboseField?.let { args.verbose = it }
|
||||
kjsmField?.let { args.kjsm = it }
|
||||
mainField?.let { args.main = it }
|
||||
metaInfoField?.let { args.metaInfo = it }
|
||||
moduleKindField?.let { args.moduleKind = it }
|
||||
@@ -85,7 +79,6 @@ internal fun org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments.fil
|
||||
languageVersion = "1.1"
|
||||
suppressWarnings = false
|
||||
verbose = false
|
||||
kjsm = true
|
||||
main = "call"
|
||||
metaInfo = true
|
||||
moduleKind = "plain"
|
||||
|
||||
+1
-8
@@ -58,17 +58,11 @@ public class K2JSCompilerMojo extends KotlinCompileMojoBase<K2JSCompilerArgument
|
||||
private String outputFile;
|
||||
|
||||
/**
|
||||
* Flag enables or disables metafile generation
|
||||
* Flag enables or disables .meta.js and .kjsm files generation, used to create libraries
|
||||
*/
|
||||
@Parameter(defaultValue = "true")
|
||||
private boolean metaInfo;
|
||||
|
||||
/**
|
||||
* Flag enables or disables kjsm generation
|
||||
*/
|
||||
@Parameter(defaultValue = "true")
|
||||
private boolean kjsm;
|
||||
|
||||
/**
|
||||
* Flags enables or disable source map generation
|
||||
*/
|
||||
@@ -95,7 +89,6 @@ public class K2JSCompilerMojo extends KotlinCompileMojoBase<K2JSCompilerArgument
|
||||
arguments.outputFile = outputFile;
|
||||
arguments.noStdlib = true;
|
||||
arguments.metaInfo = metaInfo;
|
||||
arguments.kjsm = kjsm;
|
||||
arguments.moduleKind = moduleKind;
|
||||
|
||||
List<String> libraries = null;
|
||||
|
||||
Reference in New Issue
Block a user