// TARGET_BACKEND: NATIVE // FREE_CINTEROP_ARGS: -header auxiliaryCppSources.h // MODULE: cinterop // FILE: auxiliaryCppSources.def # The def file is intentionally empty # `auxiliaryCppSources.h` is meant to be included via `-header` free arg of cinterop tool // FILE: auxiliaryCppSources.h #ifdef __cplusplus extern "C" { #endif const char* name(); #ifdef __cplusplus } #endif // FILE: auxiliaryCppSources.cpp #include #include "auxiliaryCppSources.h" static std::string _name = "OK"; extern "C" const char* name() { return _name.c_str(); } // MODULE: main(cinterop) // FILE: main.kt @file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) import auxiliaryCppSources.* import kotlin.test.* import kotlinx.cinterop.* fun box(): String { return name()!!.toKString() }