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

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