[K/N][CExport] Prepare a BuildCExports phase for the dynamic driver

This commit is contained in:
Sergey Bogolepov
2022-12-07 14:08:39 +02:00
committed by Space Team
parent 4b67ecc15b
commit c33013e159
@@ -0,0 +1,19 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.backend.konan.driver.phases
import org.jetbrains.kotlin.backend.konan.cexport.CAdapterExportedElements
import org.jetbrains.kotlin.backend.konan.cexport.CAdapterGenerator
import org.jetbrains.kotlin.backend.konan.cexport.CAdapterTypeTranslator
internal val BuildCExports = createSimpleNamedCompilerPhase<PsiToIrContext, FrontendPhaseOutput.Full, CAdapterExportedElements>(
"BuildCExports", "Build C exports",
outputIfNotEnabled = { _, _, _, _ -> error("") }
) { context, input ->
val prefix = context.config.fullExportedNamePrefix.replace("-|\\.".toRegex(), "_")
val typeTranslator = CAdapterTypeTranslator(prefix, context.builtIns)
CAdapterGenerator(context, input.moduleDescriptor, typeTranslator).buildExports(context.symbolTable!!)
}