[cinterop][tests] Add test for -Xcompile-source flag
This commit is contained in:
committed by
Sergey Bogolepov
parent
0715fa0369
commit
da0e56edea
@@ -3394,6 +3394,14 @@ createInterop("cmangling2") {
|
|||||||
it.defFile 'interop/basics/mangling2.def'
|
it.defFile 'interop/basics/mangling2.def'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
createInterop("auxiliaryCppSources") {
|
||||||
|
// We need to provide empty def file to create correct `KonanInteropTask`.
|
||||||
|
it.defFile 'interop/auxiliary_sources/auxiliaryCppSources.def'
|
||||||
|
it.headers "$projectDir/interop/auxiliary_sources/name.h"
|
||||||
|
it.extraOpts "-Xcompile-source", "$projectDir/interop/auxiliary_sources/name.cpp"
|
||||||
|
it.extraOpts "-Xsource-compiler-option", "-std=c++17"
|
||||||
|
}
|
||||||
|
|
||||||
if (PlatformInfo.isAppleTarget(project)) {
|
if (PlatformInfo.isAppleTarget(project)) {
|
||||||
createInterop("objcSmoke") {
|
createInterop("objcSmoke") {
|
||||||
it.defFile 'interop/objc/objcSmoke.def'
|
it.defFile 'interop/objc/objcSmoke.def'
|
||||||
@@ -3563,6 +3571,12 @@ interopTest("interop_mangling2") {
|
|||||||
interop = 'cmangling2'
|
interop = 'cmangling2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interopTest("interop_auxiliarySources") {
|
||||||
|
disabled = (project.testTarget == 'wasm32') // No interop for wasm yet.
|
||||||
|
source = "interop/auxiliary_sources/main.kt"
|
||||||
|
interop = 'auxiliaryCppSources'
|
||||||
|
}
|
||||||
|
|
||||||
interopTest("interop_values") {
|
interopTest("interop_values") {
|
||||||
disabled = (project.testTarget == 'wasm32') // No interop for wasm yet.
|
disabled = (project.testTarget == 'wasm32') // No interop for wasm yet.
|
||||||
source = "interop/basics/values.kt"
|
source = "interop/basics/values.kt"
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import auxiliaryCppSources.*
|
||||||
|
import kotlin.test.*
|
||||||
|
import kotlinx.cinterop.*
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
assertEquals(name()!!.toKString(), "Hello from C++")
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#include <string>
|
||||||
|
#include "name.h"
|
||||||
|
|
||||||
|
static std::string _name = "Hello from C++";
|
||||||
|
|
||||||
|
const char* name() {
|
||||||
|
return _name.c_str();
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char* name();
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user