aboutsummaryrefslogtreecommitdiffstats
path: root/sample-java/src/main/kotlin/main.kt
blob: c53b047bb3ca7634a6284a17f75bab90251d9229 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
 * Copyright (C) 2025 The Qt Company Ltd.
 * SPDX-License-Identifier: Apache-2.0
 */

package io.github.landerlyoung.jennysample

import io.github.landerlyoung.jenny.JennyProcessorConfiguration
import io.github.landerlyoung.jenny.api.GenerationProcessorFactory
import io.github.landerlyoung.jenny.loader.JarLoader

fun main() {

    val jarPaths = setOf("jarFolder/android.jar", "jarFolder/classes.jar")
    val fullClassNames = setOf(
        "android.graphics.Rect",
        "android.graphics.Paint",
        "androidx.activity.OnBackPressedCallback"
    )
    val outputDir = "sample-java/src/main/cpp/gen"

    val jarLoader = JarLoader(jarPaths).also { it.loadJars() }
    val generationProcessor = GenerationProcessorFactory.create(
        JennyProcessorConfiguration(
            outputDir,
            useQjniTemplates = true
        )
    )
    val loadedClasses = jarLoader.loadClasses(fullClassNames)
    loadedClasses.forEach { (_, clazz) ->
        generationProcessor.generateProxy(clazz)
    }
}