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.

CMakeLists.txt 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. set(ESPEAK_CONFIG_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)
  2. set(ESPEAK_CONFIG_H ${ESPEAK_CONFIG_DIR}/config.h)
  3. configure_file(config.h.in ${ESPEAK_CONFIG_H})
  4. add_library(espeak-ng-config INTERFACE)
  5. target_include_directories(espeak-ng-config INTERFACE ${ESPEAK_CONFIG_DIR})
  6. add_library(espeak-ng
  7. common.c
  8. mnemonics.c
  9. error.c
  10. ieee80.c
  11. compiledata.c
  12. compiledict.c
  13. dictionary.c
  14. encoding.c
  15. intonation.c
  16. langopts.c
  17. numbers.c
  18. phoneme.c
  19. phonemelist.c
  20. readclause.c
  21. setlengths.c
  22. soundicon.c
  23. spect.c
  24. ssml.c
  25. synthdata.c
  26. synthesize.c
  27. tr_languages.c
  28. translate.c
  29. translateword.c
  30. voices.c
  31. wavegen.c
  32. speech.c
  33. espeak_api.c
  34. )
  35. set_target_properties(
  36. espeak-ng PROPERTIES
  37. MACOSX_RPATH ON
  38. INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
  39. )
  40. target_include_directories(espeak-ng BEFORE PRIVATE $<TARGET_PROPERTY:espeak-include,INTERFACE_INCLUDE_DIRECTORIES>)
  41. if (NOT MSVC)
  42. target_compile_options(espeak-ng PRIVATE
  43. "-fPIC"
  44. "-fvisibility=hidden"
  45. "-fno-exceptions"
  46. "-fwrapv"
  47. "-pedantic"
  48. "-Wunused-parameter"
  49. "-Wunused"
  50. "-Wuninitialized"
  51. "-Wreturn-type"
  52. "-Wmissing-prototypes"
  53. "-Wint-conversion"
  54. "-Wimplicit"
  55. "-Wmisleading-indentation"
  56. )
  57. endif()
  58. target_compile_definitions(espeak-ng PRIVATE "LIBESPEAK_NG_EXPORT=1")
  59. if (NOT BUILD_SHARED_LIBS)
  60. target_compile_definitions(espeak-ng INTERFACE "LIBESPEAK_NG_EXPORT=1")
  61. endif()
  62. target_compile_definitions(espeak-ng PRIVATE "PATH_ESPEAK_DATA=\"${CMAKE_INSTALL_PREFIX}/share/espeak-ng-data\"")
  63. if (USE_ASYNC)
  64. target_sources(espeak-ng PRIVATE
  65. event.c
  66. fifo.c
  67. espeak_command.c
  68. )
  69. endif(USE_ASYNC)
  70. if (USE_MBROLA)
  71. target_sources(espeak-ng PRIVATE
  72. mbrowrap.c
  73. compilembrola.c
  74. synth_mbrola.c
  75. )
  76. endif(USE_MBROLA)
  77. if (USE_KLATT)
  78. target_sources(espeak-ng PRIVATE klatt.c)
  79. endif(USE_KLATT)
  80. if (USE_SPEECHPLAYER)
  81. target_sources(espeak-ng PRIVATE sPlayer.c)
  82. target_link_libraries(espeak-ng PRIVATE speechPlayer)
  83. endif(USE_SPEECHPLAYER)
  84. if (HAVE_LIBSONIC AND USE_LIBSONIC)
  85. target_link_libraries(espeak-ng PRIVATE ${SONIC_LIB})
  86. target_include_directories(espeak-ng PRIVATE ${SONIC_INC})
  87. endif()
  88. if (HAVE_LIBPCAUDIO AND USE_LIBPCAUDIO)
  89. target_link_libraries(espeak-ng PRIVATE ${PCAUDIO_LIB})
  90. target_include_directories(espeak-ng PRIVATE ${PCAUDIO_INC})
  91. target_link_libraries(espeak-ng PRIVATE "-framework CoreAudio" "-framework AudioToolbox" "-framework AudioUnit")
  92. endif()
  93. target_link_libraries(espeak-ng PRIVATE espeak-ng-config ucd)
  94. if (NOT MSVC)
  95. target_link_libraries(espeak-ng PRIVATE m)
  96. endif()
  97. target_link_libraries(espeak-ng PUBLIC espeak-include)
  98. if ((MINGW OR WIN32 OR MSVC) AND BUILD_SHARED_LIBS)
  99. set_target_properties(espeak-ng PROPERTIES
  100. RUNTIME_OUTPUT_DIRECTORY ..
  101. )
  102. endif()
  103. if (MINGW)
  104. target_link_options(espeak-ng PRIVATE "-static-libstdc++" "-static")
  105. endif()
  106. set_target_properties(espeak-ng PROPERTIES
  107. SOVERSION ${PROJECT_VERSION_MAJOR}
  108. VERSION ${PROJECT_VERSION}
  109. )
  110. install(TARGETS espeak-ng LIBRARY)