Adding libsodium

This commit is contained in:
Ugljesa Jovanovic 2020-05-24 17:24:32 +02:00 committed by Ugljesa Jovanovic
parent 7238b09112
commit 3f7df6c651
No known key found for this signature in database
GPG Key ID: 178E6DFCECCB0E0F
6 changed files with 49 additions and 130 deletions

View File

@ -49,13 +49,6 @@ fun getHostOsName(): String {
kotlin {
val hostOsName = getHostOsName()
if (ideaActive) {
when(hostOsName) {
"linux" -> linuxX64("native")
"macos" -> macosX64("native")
"windows" -> mingwX64("native")
}
}
if (hostOsName == "linux") {
jvm()
js {
@ -171,8 +164,6 @@ kotlin {
dependencies {
implementation(kotlin(Deps.Common.stdLib))
implementation(kotlin(Deps.Common.test))
implementation(Deps.Common.coroutines)
implementation(Deps.Common.kotlinBigNum)
}
}
val commonTest by getting {
@ -182,41 +173,6 @@ kotlin {
}
}
val nativeMain = if (ideaActive) {
val nativeMain by getting {
dependsOn(commonMain)
dependencies {
implementation(Deps.Native.coroutines)
}
}
nativeMain
} else {
val nativeMain by creating {
dependsOn(commonMain)
dependencies {
implementation(Deps.Native.coroutines)
}
}
nativeMain
}
val nativeTest = if (ideaActive) {
val nativeTest by getting {
dependsOn(commonTest)
dependencies {
implementation(Deps.Native.coroutines)
}
}
nativeTest
} else {
val nativeTest by creating {
dependsOn(commonTest)
dependencies {
implementation(Deps.Native.coroutines)
}
}
nativeTest
}
if (hostOsName == "linux") {
val jvmMain by getting {
dependencies {
@ -246,87 +202,7 @@ kotlin {
implementation(kotlin(Deps.Js.test))
}
}
val linuxMain by getting {
dependsOn(nativeMain)
}
val linuxTest by getting {
dependsOn(nativeTest)
}
//Not supported in coroutines at the moment
// val linuxArm32HfpMain by getting {
// dependsOn(nativeMain)
// }
//
// val linuxArm32HfpTest by getting {
// dependsOn(nativeTest)
// }
// val linuxArm64Main by getting {
// dependsOn(nativeMain)
// }
//
// val linuxArm64Test by getting {
// dependsOn(nativeTest)
// }
}
if (hostOsName == "macos") {
val iosMain by getting {
dependsOn(nativeMain)
}
val iosTest by getting {
dependsOn(nativeTest)
}
val ios64ArmMain by getting {
dependsOn(nativeMain)
}
val ios64ArmTest by getting {
dependsOn(nativeTest)
}
val ios32ArmMain by getting {
dependsOn(nativeMain)
}
val ios32ArmTest by getting {
dependsOn(nativeTest)
}
val macosX64Main by getting {
dependsOn(nativeMain)
}
val macosX64Test by getting {
dependsOn(nativeTest)
}
}
// Coroutines don't support mingwx86 yet
// val mingwX86Main by getting {
// dependsOn(commonMain)
// dependencies {
// implementation(Deps.Native.coroutines)
// }
// }
// val mingwX86Test by getting {
// dependsOn(commonTest)
// }
//
if (hostOsName == "windows") {
val mingwX64Main by getting {
dependsOn(commonMain)
dependencies {
implementation(Deps.Native.coroutines)
}
}
val mingwX64Test by getting {
dependsOn(commonTest)
}
}
all {
languageSettings.enableLanguageFeature("InlineClasses")

View File

@ -89,6 +89,11 @@ kotlin {
}
linuxX64("linux") {
compilations.getByName("main") {
val libsodiumCinterop by cinterops.creating {
defFile(project.file("src/nativeInterop/cinterop/libsodium.def"))
}
}
binaries {
staticLib {
optimized = true
@ -383,14 +388,14 @@ tasks {
testLogging {
events("PASSED", "FAILED", "SKIPPED")
// showStandardStreams = true
showStandardStreams = true
}
}
val jsNodeTest by getting(KotlinJsTest::class) {
testLogging {
events("PASSED", "FAILED", "SKIPPED")
showStandardStreams = true
// showStandardStreams = true
}
}
@ -479,4 +484,18 @@ publishing {
}
}
//configurations.forEach {
//
// if (it.name == "linuxCompileKlibraries") {
// println("Configuration name: ${it.name}")
// it.attributes {
// this.keySet().forEach { key ->
// val attribute = getAttribute(key)
// println(" |-- Attribute $key ${attribute}")
// attribute(org.jetbrains.kotlin.gradle.plugin.ProjectLocalConfigurations.ATTRIBUTE, "publicZ")
// }
// }
// }
//}

View File

@ -1,5 +1,6 @@
package com.ionspin.kotlin.crypto.hash.blake2b
import interop.*
import kotlinx.cinterop.*
/**
* Created by Ugljesa Jovanovic
* ugljesa.jovanovic@ionspin.com

View File

@ -0,0 +1,23 @@
package com.ionspin.kotlin.crypto.hash.blake2b
/**
* Created by Ugljesa Jovanovic
* ugljesa.jovanovic@ionspin.com
* on 24-May-2020
*/
import interop.*
import kotlinx.cinterop.*
import libsodium.*
import kotlin.test.Test
class Blake2bLinuxTest {
@Test
fun testCinterop() {
val sodiumInitResult = sodium_init()
// println("Sodium init $sodiumInitResult")
println("1")
}
}

View File

@ -1,6 +1,6 @@
headers = sodium.h
headerFilter = sodium.h sodium/**
staticLibraries = libsodium.a
libraryPaths = lib
compilerOpts = -Iinclude
linkerOpts = {{LDFLAGS}}
libraryPaths = /usr/lib
compilerOpts = -Iinclude -I/usr/include
linkerOpts = -L/usr/lib -lsodium