Hey Folks, Does anyone know how to suppress/opt in...
# multiplatform
h
Hey Folks, Does anyone know how to suppress/opt in to
InternalSerializationApi
at the project level in a Kotlin Multiplatform project? `This declaration is opt-in and its usage should be marked with
@kotlinx.serialization.InternalSerializationApi
or `@OptIn(markerClass = kotlinx.serialization.InternalSerializationApi.class)`` Currently, adding this at the file level works:
@file:OptIn(InternalSerializationApi::class)
But I don’t want to add it to every file. Is there a way to apply this globally across all KMP source sets/project files? i tried it in project level but it not work for me.
Copy code
kotlin {
 sourceSets.all {
        languageSettings.optIn("kotlin.experimental.ExperimentalObjCName")
        languageSettings.optIn("kotlin.time.ExperimentalTime")
        languageSettings.optIn("kotlinx.serialization.InternalSerializationApi")
        languageSettings.optIn("kotlinx.serialization.ExperimentalSerializationApi")
    }
 compilerOptions {
        freeCompilerArgs.add("-Xexpect-actual-classes")
        optIn.add("kotlinx.serialization.InternalSerializationApi")
        optIn.add("kotlinx.serialization.ExperimentalSerializationApi")
   }
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask<*>>().configureEach {
    compilerOptions {
        freeCompilerArgs.add("-opt-in=kotlinx.serialization.InternalSerializationApi")
        freeCompilerArgs.add("-opt-in=kotlinx.serialization.ExperimentalSerializationApi")
    }
}
👀 1
t
kotlin.compilerOptions.optIn.add("")
should work - what problem do you see?
h
@tapchicoma i got this kind of warning message in my api model class .
t
please ensure that your are adding it in the correct place and that other build logic not overrides it. Otherwise please file a new Kotlin issue