eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.gradle 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. buildscript {
  2. repositories {
  3. google()
  4. mavenCentral()
  5. }
  6. dependencies {
  7. classpath 'com.android.tools.build:gradle:7.3.1'
  8. }
  9. }
  10. plugins {
  11. id 'org.gradle.crypto.checksum' version '1.4.0'
  12. }
  13. import org.gradle.crypto.checksum.Checksum
  14. apply plugin: 'com.android.application'
  15. repositories {
  16. google()
  17. mavenCentral()
  18. }
  19. dependencies {
  20. testImplementation 'junit:junit:4.13.2'
  21. androidTestImplementation 'org.hamcrest:hamcrest-all:1.3'
  22. }
  23. android {
  24. compileSdk 33
  25. ndkVersion "25.1.8937393"
  26. namespace "com.reecedunn.espeak"
  27. defaultConfig {
  28. minSdk 19
  29. targetSdk 33
  30. versionCode 22
  31. versionName "1.52-dev"
  32. externalNativeBuild {
  33. cmake {
  34. arguments "-DUSE_ASYNC:BOOL=OFF", "-DUSE_MBROLA:BOOL=OFF"
  35. targets "ttsespeak", "espeak-data"
  36. }
  37. }
  38. }
  39. externalNativeBuild {
  40. cmake {
  41. path "jni/CMakeLists.txt"
  42. version "3.22.1"
  43. }
  44. }
  45. sourceSets {
  46. main {
  47. manifest.srcFile 'AndroidManifest.xml'
  48. java.srcDirs = ['src']
  49. res.srcDirs = ['res']
  50. }
  51. androidTest.setRoot('eSpeakTests')
  52. androidTest {
  53. java.srcDirs = ['eSpeakTests/src']
  54. }
  55. }
  56. lint {
  57. abortOnError false
  58. }
  59. }
  60. tasks.register('checkData') {
  61. doFirst {
  62. assert file("../espeak-ng-data/en_dict").exists()
  63. assert file("../espeak-ng-data/intonations").exists()
  64. assert file("../espeak-ng-data/phondata").exists()
  65. assert file("../espeak-ng-data/phondata-manifest").exists()
  66. assert file("../espeak-ng-data/phonindex").exists()
  67. assert file("../espeak-ng-data/phontab").exists()
  68. }
  69. }
  70. tasks.register('createDataArchive', Zip) {
  71. preserveFileTimestamps = false
  72. reproducibleFileOrder = true
  73. archiveFileName = "espeakdata.zip"
  74. destinationDirectory = file("res/raw")
  75. from("build/generated/espeak-ng-data/") {
  76. into "espeak-ng-data"
  77. }
  78. }
  79. tasks.register('createDataHash', Checksum) {
  80. dependsOn tasks.createDataArchive
  81. checksumAlgorithm.set(Checksum.Algorithm.SHA256)
  82. inputFiles.setFrom(file("./res/raw/espeakdata.zip"))
  83. outputDirectory.set(layout.buildDirectory.dir('intermediates/datahash'))
  84. }
  85. tasks.register('createDataVersion', Copy) {
  86. dependsOn tasks.createDataHash
  87. from layout.buildDirectory.file('intermediates/datahash/espeakdata.zip.sha256')
  88. rename { return 'espeakdata_version' }
  89. into file("./res/raw")
  90. }
  91. project.afterEvaluate {
  92. tasks.checkData.dependsOn(externalNativeBuildDebug)
  93. tasks.createDataArchive.dependsOn(externalNativeBuildDebug)
  94. javaPreCompileDebug.dependsOn(tasks.createDataVersion)
  95. javaPreCompileRelease.dependsOn(tasks.createDataVersion)
  96. }