diff mupdf-source/thirdparty/zxing-cpp/wrappers/android/zxingcpp/build.gradle.kts @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mupdf-source/thirdparty/zxing-cpp/wrappers/android/zxingcpp/build.gradle.kts	Mon Sep 15 11:43:07 2025 +0200
@@ -0,0 +1,132 @@
+plugins {
+    alias(libs.plugins.android.library)
+    alias(libs.plugins.kotlin.android)
+    id("maven-publish")
+    id("signing")
+}
+
+android {
+    namespace = "zxingcpp.lib" // used to be just zxingcpp but needs to contain a '.' in release builds
+    // ndk version 27 has sufficient c++20 support to enable all features (see #386)
+    // ndkVersion = "27.0.12077973"
+
+    defaultConfig {
+        compileSdk = libs.versions.androidCompileSdk.get().toInt()
+        minSdk = libs.versions.androidMinSdk.get().toInt()
+
+        ndk {
+            // speed up build: compile only arm versions
+            // abiFilters += listOf("armeabi-v7a", "arm64-v8a")
+        }
+        externalNativeBuild {
+            cmake {
+                arguments(
+                    "-DCMAKE_BUILD_TYPE=RelWithDebInfo",
+                    "-DANDROID_ARM_NEON=ON",
+                    "-DZXING_WRITERS=OFF",
+                    "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" // This flag can be removed when NDK 28 is the default version
+                )
+            }
+        }
+
+        consumerProguardFiles("consumer-rules.pro")
+    }
+    compileOptions {
+        sourceCompatibility(JavaVersion.VERSION_1_8)
+        targetCompatibility(JavaVersion.VERSION_1_8)
+    }
+    kotlinOptions {
+        jvmTarget = "1.8"
+    }
+    externalNativeBuild {
+        cmake {
+            path(file("src/main/cpp/CMakeLists.txt"))
+        }
+    }
+    lint {
+        disable.add("UnsafeExperimentalUsageError")
+    }
+}
+
+kotlin {
+    explicitApi()
+}
+
+dependencies {
+    implementation(libs.androidx.camera.core)
+}
+
+val publishSnapshot: String? by project
+group = "io.github.zxing-cpp"
+version = "2.3.0" + if (publishSnapshot == "true") "-SNAPSHOT" else ""
+
+val javadocJar by tasks.registering(Jar::class) {
+    archiveClassifier.set("javadoc")
+}
+
+publishing {
+    publications {
+        register<MavenPublication>("release") {
+            artifactId = "android"
+            groupId = project.group.toString()
+            version = project.version.toString()
+
+            afterEvaluate {
+                from(components["release"])
+            }
+
+            artifact(javadocJar.get())
+
+            pom {
+                name = "zxing-cpp"
+                description = "Wrapper for zxing-cpp barcode image processing library"
+                url = "https://github.com/zxing-cpp/zxing-cpp"
+                licenses {
+                    license {
+                        name = "The Apache License, Version 2.0"
+                        url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
+                    }
+                }
+                developers {
+                    developer {
+                        id = "zxing-cpp"
+                        name = "zxing-cpp community"
+                        email = "zxingcpp@gmail.com"
+                    }
+                }
+                scm {
+                    connection = "scm:git:git://github.com/zxing-cpp/zxing-cpp.git"
+                    developerConnection = "scm:git:git://github.com/zxing-cpp/zxing-cpp.git"
+                    url = "https://github.com/zxing-cpp/zxing-cpp"
+                }
+            }
+        }
+    }
+    repositories {
+        maven {
+            name = "sonatype"
+
+            val releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
+            val snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
+            setUrl(if (version.toString().endsWith("-SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
+
+            credentials {
+                val ossrhUsername: String? by project
+                val ossrhPassword: String? by project
+                username = ossrhUsername
+                password = ossrhPassword
+            }
+        }
+    }
+}
+
+signing {
+    setRequired {
+        // signing is required if the artifacts are to be published
+        gradle.taskGraph.allTasks.any { it is PublishToMavenRepository }
+    }
+    val signingKey: String? by project
+    val signingPassword: String? by project
+    useInMemoryPgpKeys(signingKey, signingPassword)
+    sign(publishing.publications)
+}