Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
danbrough committed Aug 4, 2023
1 parent e405a5c commit 15dbc59
Show file tree
Hide file tree
Showing 11 changed files with 74 additions and 34 deletions.
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ version = Xtras.publishingVersion
allprojects {

repositories {
maven(rootProject.buildDir.resolve("xtras/maven"))

maven(rootProject.layout.buildDirectory.dir("xtras/maven"))
maven("https://s01.oss.sonatype.org/content/groups/staging/")
mavenCentral()
}
Expand Down
6 changes: 6 additions & 0 deletions core/src/main/kotlin/org/danbrough/kotlinxtras/core/curl.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ fun Project.enableCurl(
return extensions.findByName(extnName) as? LibraryExtension
?: registerLibraryExtension(extnName) {
publishingGroup = CORE_PUBLISHING_PACKAGE
// binaries.androidNdkDir = File("/mnt/files/sdk/android/ndk/25.0.8775105/")


version = "8.2.1"
Expand All @@ -40,6 +41,11 @@ fun Project.enableCurl(
workingDir(sourcesDir(target))
outputs.file(workingDir.resolve("configure"))
commandLine(binaries.autoreconfBinary, "-fi")

environment(
"PATH",
"${binaries.androidNdkDir}/prebuilt/linux-x86_64/bin:${binaries.androidNdkDir}/toolchains/llvm/prebuilt/linux-x86_64/bin:${environment["PATH"]}"
)
}
}

Expand Down
22 changes: 20 additions & 2 deletions core/src/main/kotlin/org/danbrough/kotlinxtras/core/openssl3.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ import org.danbrough.kotlinxtras.binaries.*
import org.danbrough.kotlinxtras.hostTriplet
import org.gradle.api.Project
import org.jetbrains.kotlin.konan.target.Family
import java.io.File

const val OPENSSL3_EXTN_NAME = "openssl3"

const val OPENSSL3_VERSION = "3.1.2-danbrough"
const val OPENSSL3_GIT_COMMIT = "5accd111b0d4689a978f2bbccd976583f493efab"
//const val OPENSSL3_VERSION = "3.1.2-danbrough"
//const val OPENSSL3_GIT_COMMIT = "5accd111b0d4689a978f2bbccd976583f493efab"
const val OPENSSL3_VERSION = "3.1.2"
const val OPENSSL3_GIT_COMMIT = "17a2c5111864d8e016c5f2d29c40a3746b559e9d"
//
//const val OPENSSL3_VERSION = "3.0.8"
//const val OPENSSL3_GIT_COMMIT = "e4e4c3b72620cf8ef35c275271415bfc675ffaa3"

Expand All @@ -24,25 +28,39 @@ fun Project.enableOpenssl3(
): LibraryExtension =
extensions.findByName(extnName) as? LibraryExtension ?: registerLibraryExtension(extnName) {


publishingGroup = CORE_PUBLISHING_PACKAGE

version = versionName

git(gitURL, commit)

configure { target ->
binaries.androidNdkDir = File("/mnt/files/sdk/android/ndk/25.0.8775105/")

outputs.file(workingDir.resolve("Makefile"))
val args = mutableListOf(
"./Configure", target.opensslPlatform, "no-tests", "threads", "--prefix=${buildDir(target)}"
)
if (target.family == Family.ANDROID) args += "-D__ANDROID_API__=21"
else if (target.family == Family.MINGW) args += "--cross-compile-prefix=${target.hostTriplet}-"
environment("CFLAGS", " -Wno-macro-redefined ")

environment(
"PATH",
"${binaries.androidNdkDir}/prebuilt/linux-x86_64/bin:${binaries.androidNdkDir}/toolchains/llvm/prebuilt/linux-x86_64/bin:${environment["PATH"]}"
)
commandLine(args)
}



build { target ->
environment(
"PATH",
"${binaries.androidNdkDir}/prebuilt/linux-x86_64/bin:${binaries.androidNdkDir}/toolchains/llvm/prebuilt/linux-x86_64/bin:${environment["PATH"]}"
)

commandLine(binaries.makeBinary, "install_sw")
doLast {
val buildDir = buildDir(target)
Expand Down
13 changes: 9 additions & 4 deletions core/src/main/kotlin/org/danbrough/kotlinxtras/core/sqlite.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@ import org.danbrough.kotlinxtras.hostTriplet
import org.gradle.api.Project

const val XTRAS_SQLITE_EXTN_NAME = "sqlite"
const val XTRAS_SQLITE_VERSION_NAME = "3.41.2"
const val XTRAS_SQLITE_SOURCE_URL = "https://www.sqlite.org/2023/sqlite-autoconf-3410200.tar.gz"
const val XTRAS_SQLITE_COMMIT = "e671c4fbc057f8b1505655126eaf90640149ced6"

//const val XTRAS_SQLITE_VERSION_NAME = "3.41.2"
//const val XTRAS_SQLITE_SOURCE_URL = "https://www.sqlite.org/2023/sqlite-autoconf-3410200.tar.gz"
const val XTRAS_SQLITE_VERSION_NAME = "3.42.0"
const val XTRAS_SQLITE_SOURCE_URL = "https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz"
//const val XTRAS_SQLITE_COMMIT = "e671c4fbc057f8b1505655126eaf90640149ced6"

/*
fun Project.enableSqlite(
extnName: String = XTRAS_SQLITE_EXTN_NAME, versionName: String = XTRAS_SQLITE_VERSION_NAME,
Expand Down Expand Up @@ -54,9 +58,10 @@ fun Project.enableSqlite(
config()
}
*/


fun Project.enableSqliteOld(
fun Project.enableSqlite(
extnName: String = XTRAS_SQLITE_EXTN_NAME, versionName: String = XTRAS_SQLITE_VERSION_NAME,
sourceURL: String = XTRAS_SQLITE_SOURCE_URL,
config: LibraryExtension .() -> Unit = {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ open class BinaryExtension {


@XtrasDSLMarker
var basePath = mutableListOf<String>(
var basePath = mutableListOf(
"/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/opt/local/bin"
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,21 @@ abstract class LibraryExtension(val project: Project) {
open fun gitRepoDir(): File = project.xtrasDownloadsDir.resolve("repos/$libName")

@XtrasDSLMarker
fun configure(task: SourcesTask) {
configureTask = task
fun configure(override: Boolean = false, task: SourcesTask) {
if (override) configureTasks.clear()
configureTasks.add(task)
}

@XtrasDSLMarker
fun build(task: SourcesTask) {
buildTask = task
fun build(override: Boolean = false, task: SourcesTask) {
if (override)
buildTasks.clear()
buildTasks.add(task)
}

@XtrasDSLMarker
fun configureTarget(configure: (KonanTarget) -> Unit) {
if (configureTargetTask != null) error("configureTargetTask already set")
configureTargetTask = configure
}

Expand All @@ -99,9 +103,9 @@ abstract class LibraryExtension(val project: Project) {

internal var sourceConfig: SourceConfig? = null

internal var configureTask: SourcesTask? = null
internal var configureTasks: MutableList<SourcesTask> = mutableListOf()

internal var buildTask: SourcesTask? = null
internal var buildTasks: MutableList<SourcesTask> = mutableListOf()

internal var configureTargetTask: ((KonanTarget) -> Unit)? = null

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ private fun LibraryExtension.registerConfigureSourcesTask(target: KonanTarget) =
doFirst {
project.log("running $name with: ${commandLine.joinToString(" ")}")
}
configureTask!!(target)
configureTasks.forEach {
it(target)
}
}


fun LibraryExtension.registerBuildTasks(target: KonanTarget) {
configureTask?.also {
if (configureTasks.isNotEmpty()) {
registerConfigureSourcesTask(target)
}



project.tasks.register(buildSourcesTaskName(target), Exec::class.java) {

group = XTRAS_TASK_GROUP
Expand All @@ -50,13 +50,14 @@ fun LibraryExtension.registerBuildTasks(target: KonanTarget) {
dependsOn(it)
}

configureTask?.also {
if (configureTasks.isNotEmpty()) {
dependsOn(configureSourcesTaskName(target))
}


buildTask!!(target)

buildTasks.forEach {
it(target)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ internal fun LibraryExtension.registerXtrasTasks() {
environment(SHARED_LIBRARY_PATH_NAME, newLibPath)
}

val buildEnabled = buildTask != null
val buildEnabled = buildTasks.isNotEmpty()


if (buildEnabled) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@ internal fun Project.registerKonanDepsTasks(target: KonanTarget) {
if (project.tasks.findByName(target.konanDepsTaskName) != null) return

val depsProjectDir =
rootProject.buildDir.resolve(".konandeps/xtraKonanDeps${target.platformName.capitalize()}")
rootProject.layout.buildDirectory.dir(".konandeps/xtraKonanDeps${target.platformName.capitalize()}")
.get()
val projectTaskName = "xtrasKonanDepsProject${target.platformName.capitalized()}"

project.tasks.register(projectTaskName) {

outputs.dir(depsProjectDir)
doFirst {
depsProjectDir.mkdirs()
depsProjectDir.resolve("gradle.properties").writeText(
depsProjectDir.asFile.mkdirs()
depsProjectDir.dir("gradle.properties").asFile.writeText(
"""
kotlin.native.ignoreDisabledTargets=true
org.gradle.parallel=false
Expand All @@ -33,11 +34,11 @@ internal fun Project.registerKonanDepsTasks(target: KonanTarget) {
)


depsProjectDir.resolve("settings.gradle.kts").also {
depsProjectDir.file("settings.gradle.kts").asFile.also {
if (!it.exists()) it.createNewFile()
}

depsProjectDir.resolve("build.gradle.kts").writeText(
depsProjectDir.file("build.gradle.kts").asFile.writeText(
"""
plugins {
kotlin("multiplatform") version "${KotlinVersion.CURRENT}"
Expand All @@ -55,7 +56,7 @@ internal fun Project.registerKonanDepsTasks(target: KonanTarget) {
)


depsProjectDir.resolve("src/commonMain/kotlin").apply {
depsProjectDir.dir("src/commonMain/kotlin").asFile.apply {
mkdirs()
resolve("test.kt").writeText(
"""
Expand All @@ -72,7 +73,7 @@ internal fun Project.registerKonanDepsTasks(target: KonanTarget) {
target.konanDepsTaskName, GradleBuild::class.java
) {
dependsOn(projectTaskName)
dir = depsProjectDir
dir = depsProjectDir.asFile
tasks = listOf("compileKotlin${target.platformName.capitalized()}")
doFirst {
project.log("$name: running compileKotlin${target.platformName.capitalized()}")
Expand Down
2 changes: 1 addition & 1 deletion repos/sqlite
Submodule sqlite updated 205 files
12 changes: 8 additions & 4 deletions xtras/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import org.danbrough.kotlinxtras.core.enableCurl
import org.danbrough.kotlinxtras.core.enableIconv
import org.danbrough.kotlinxtras.core.enableOpenssl
import org.danbrough.kotlinxtras.core.enableOpenssl3
import org.danbrough.kotlinxtras.core.enableSqlite

Expand All @@ -13,19 +12,24 @@ plugins {


enableIconv {
}

enableOpenssl {
}

/*enableOpenssl {
}*/

enableOpenssl3 {
deferToPrebuiltPackages = false

}

enableCurl {
deferToPrebuiltPackages = false
}

enableSqlite {
deferToPrebuiltPackages = false

}
/*
gradlePlugin {
Expand Down

0 comments on commit 15dbc59

Please sign in to comment.