Adde emitters, paths are different when running from gradle or intellij, will fix later
This commit is contained in:
parent
641fbceb3f
commit
d8b92a6970
@ -32,7 +32,7 @@ object CommonLibsodiumGenerator {
|
|||||||
MultiplatformModifier.EXPECT,
|
MultiplatformModifier.EXPECT,
|
||||||
::createCommonMethodSpec
|
::createCommonMethodSpec
|
||||||
)
|
)
|
||||||
fileBuilder.addType(commonClassSpec)
|
fileBuilder.addType(commonClassSpec.build())
|
||||||
}
|
}
|
||||||
val file = fileBuilder.build()
|
val file = fileBuilder.build()
|
||||||
file.writeTo(System.out)
|
file.writeTo(System.out)
|
||||||
|
@ -18,13 +18,13 @@ object Coordinator {
|
|||||||
val nativeFileSpec = NativeLibsodiumGenerator.createNativeFile(packageName, LibSodiumDefinitions.testKotlinFile)
|
val nativeFileSpec = NativeLibsodiumGenerator.createNativeFile(packageName, LibSodiumDefinitions.testKotlinFile)
|
||||||
val jsFileSpec = JsLibsodiumGenerator.createJsFile(packageName, LibSodiumDefinitions.testKotlinFile)
|
val jsFileSpec = JsLibsodiumGenerator.createJsFile(packageName, LibSodiumDefinitions.testKotlinFile)
|
||||||
|
|
||||||
val commonFile = File("../multiplatform-crypto-libsodium-bindings/src/commonMain/kotlin/")
|
val commonFile = File("multiplatform-crypto-libsodium-bindings/src/commonMain/kotlin/")
|
||||||
commonFileSpec.writeTo(commonFile)
|
commonFileSpec.writeTo(commonFile)
|
||||||
val jvmFile = File("../multiplatform-crypto-libsodium-bindings/src/jvmMain/kotlin/")
|
val jvmFile = File("multiplatform-crypto-libsodium-bindings/src/jvmMain/kotlin/")
|
||||||
jvmFileSpec.writeTo(jvmFile)
|
jvmFileSpec.writeTo(jvmFile)
|
||||||
val nativeFile = File("../multiplatform-crypto-libsodium-bindings/src/nativeMain/kotlin/")
|
val nativeFile = File("multiplatform-crypto-libsodium-bindings/src/nativeMain/kotlin/")
|
||||||
nativeFileSpec.writeTo(nativeFile)
|
nativeFileSpec.writeTo(nativeFile)
|
||||||
val jsFile = File("../multiplatform-crypto-libsodium-bindings/src/jsMain/kotlin/")
|
val jsFile = File("multiplatform-crypto-libsodium-bindings/src/jsMain/kotlin/")
|
||||||
jsFileSpec.writeTo(jsFile)
|
jsFileSpec.writeTo(jsFile)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ object JsLibsodiumGenerator {
|
|||||||
MultiplatformModifier.ACTUAL,
|
MultiplatformModifier.ACTUAL,
|
||||||
::createJsFunctionImplementation
|
::createJsFunctionImplementation
|
||||||
)
|
)
|
||||||
fileBuilder.addType(commonClassSpec)
|
fileBuilder.addType(commonClassSpec.build())
|
||||||
}
|
}
|
||||||
val file = fileBuilder.build()
|
val file = fileBuilder.build()
|
||||||
file.writeTo(System.out)
|
file.writeTo(System.out)
|
||||||
|
@ -27,7 +27,7 @@ object JvmLibsodiumGenerator {
|
|||||||
MultiplatformModifier.ACTUAL,
|
MultiplatformModifier.ACTUAL,
|
||||||
::createJvmFunctionImplementation
|
::createJvmFunctionImplementation
|
||||||
)
|
)
|
||||||
fileBuilder.addType(commonClassSpec)
|
fileBuilder.addType(commonClassSpec.build())
|
||||||
}
|
}
|
||||||
val file = fileBuilder.build()
|
val file = fileBuilder.build()
|
||||||
file.writeTo(System.out)
|
file.writeTo(System.out)
|
||||||
|
@ -18,6 +18,7 @@ object NativeLibsodiumGenerator {
|
|||||||
fileBuilder.addImport("kotlinx.cinterop", "ptr")
|
fileBuilder.addImport("kotlinx.cinterop", "ptr")
|
||||||
fileBuilder.addImport("kotlinx.cinterop", "pin")
|
fileBuilder.addImport("kotlinx.cinterop", "pin")
|
||||||
fileBuilder.addImport("kotlinx.cinterop", "addressOf")
|
fileBuilder.addImport("kotlinx.cinterop", "addressOf")
|
||||||
|
|
||||||
for (commonClassDefinition in fileDefinition.commonClassList) {
|
for (commonClassDefinition in fileDefinition.commonClassList) {
|
||||||
//Create type-aliases
|
//Create type-aliases
|
||||||
commonClassDefinition.innerClasses.forEach {
|
commonClassDefinition.innerClasses.forEach {
|
||||||
@ -29,7 +30,14 @@ object NativeLibsodiumGenerator {
|
|||||||
MultiplatformModifier.ACTUAL,
|
MultiplatformModifier.ACTUAL,
|
||||||
::createNativeFunctionImplementation
|
::createNativeFunctionImplementation
|
||||||
)
|
)
|
||||||
fileBuilder.addType(commonClassSpec)
|
//Workarounds for native not emitting types
|
||||||
|
val byteEmitter = PropertySpec.builder("_emitByte", Byte::class.asTypeName())
|
||||||
|
byteEmitter.initializer(CodeBlock.of("0"))
|
||||||
|
val byteArrayEmitter = PropertySpec.builder("_emitByteArray", Byte::class.asTypeName())
|
||||||
|
byteArrayEmitter.initializer(CodeBlock.of("ByteArray(0) {}"))
|
||||||
|
commonClassSpec.addProperty(byteEmitter.build())
|
||||||
|
commonClassSpec.addProperty(byteArrayEmitter.build())
|
||||||
|
fileBuilder.addType(commonClassSpec.build())
|
||||||
}
|
}
|
||||||
val file = fileBuilder.build()
|
val file = fileBuilder.build()
|
||||||
file.writeTo(System.out)
|
file.writeTo(System.out)
|
||||||
|
@ -15,13 +15,13 @@ fun createClass(
|
|||||||
classDefinition: ClassDefinition,
|
classDefinition: ClassDefinition,
|
||||||
multiplatformModifier: MultiplatformModifier,
|
multiplatformModifier: MultiplatformModifier,
|
||||||
methodCreator: (FunctionDefinition) -> FunSpec
|
methodCreator: (FunctionDefinition) -> FunSpec
|
||||||
): TypeSpec {
|
): TypeSpec.Builder {
|
||||||
val commonClassBuilder = TypeSpec.classBuilder(classDefinition.name)
|
val commonClassBuilder = TypeSpec.classBuilder(classDefinition.name)
|
||||||
commonClassBuilder.modifiers += multiplatformModifier.modifierList
|
commonClassBuilder.modifiers += multiplatformModifier.modifierList
|
||||||
for (methodDefinition in classDefinition.methods) {
|
for (methodDefinition in classDefinition.methods) {
|
||||||
commonClassBuilder.addFunction(methodCreator(methodDefinition))
|
commonClassBuilder.addFunction(methodCreator(methodDefinition))
|
||||||
}
|
}
|
||||||
return commonClassBuilder.build()
|
return commonClassBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package debug.test
|
package debug.test
|
||||||
|
|
||||||
|
import kotlin.Byte
|
||||||
import kotlin.Int
|
import kotlin.Int
|
||||||
import kotlin.UByteArray
|
import kotlin.UByteArray
|
||||||
import kotlinx.cinterop.addressOf
|
import kotlinx.cinterop.addressOf
|
||||||
@ -18,6 +19,10 @@ actual typealias Sha512State = crypto_hash_sha512_state
|
|||||||
actual typealias GenericHashState = crypto_generichash_blake2b_state
|
actual typealias GenericHashState = crypto_generichash_blake2b_state
|
||||||
|
|
||||||
actual class Crypto {
|
actual class Crypto {
|
||||||
|
val _emitByte: Byte = 0
|
||||||
|
|
||||||
|
val _emitByteArray: Byte = ByteArray(0) {}
|
||||||
|
|
||||||
actual fun crypto_hash_sha256_init(state: Sha256State): Int {
|
actual fun crypto_hash_sha256_init(state: Sha256State): Int {
|
||||||
println("Debug")
|
println("Debug")
|
||||||
return libsodium.crypto_hash_sha256_init(state.ptr)
|
return libsodium.crypto_hash_sha256_init(state.ptr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user