import androidx.build.Publish

plugins {
    id("AndroidXPlugin")
    id("com.android.library")
}

ext {
    fontDir = project(':noto-emoji-compat-font').projectDir
}

android {
    sourceSets {
        main {
            assets.srcDirs new File(fontDir, "font").getAbsolutePath()
            resources {
                srcDirs += [fontDir.getAbsolutePath()]
                includes += ["LICENSE_UNICODE", "LICENSE_OFL"]
            }
        }

        androidTest {
            assets {
                srcDirs = [new File(fontDir, "supported-emojis").getAbsolutePath()]
            }
        }
    }
    namespace "androidx.emoji2.bundled"

    // Workaround for b/230466571 where targetSdkVersion gets merged incorrectly.
    defaultConfig {
        targetSdk null
    }
}

dependencies {
    api(project(":emoji2:emoji2"))

    androidTestImplementation(libs.testExtJunit)
    androidTestImplementation(libs.testCore)
    androidTestImplementation(libs.testRunner)
    androidTestImplementation(libs.testRules)
    androidTestImplementation(libs.espressoCore, excludes.espresso)
    androidTestImplementation(libs.mockitoCore, excludes.bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation project(':internal-testutils-runtime')

    // view tests that use font are in this module as well; for licensing reasons
    androidTestImplementation project(":emoji2:emoji2-views")
}

androidx {
    name = "Android Emoji2 Compat"
    publish = Publish.SNAPSHOT_AND_RELEASE
    mavenGroup = LibraryGroups.EMOJI2
    inceptionYear = "2017"
    description = "Library bundled with assets to enable emoji compatibility in Kitkat and newer " +
            "devices to avoid the empty emoji characters."

    license {
        name = "SIL Open Font License, Version 1.1"
        url = "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web"
    }

    license {
        name = "Unicode, Inc. License"
        url = "http://www.unicode.org/copyright.html#License"
    }
}