CMakeLists.txt 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. cmake_minimum_required(VERSION 2.8)
  2. project(Sinsy)
  3. set (CMAKE_CXX_STANDARD 11) #required on manjaro
  4. set(PROJECT_VER_MAJOR 0)
  5. set(PROJECT_VER_MINOR 9)
  6. set(PROJECT_VER_PATCH 5)
  7. set(PROJECT_VER "${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}.${PROJECT_VER_PATCH}")
  8. set(PROJECT_APIVER "${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}")
  9. # set the default path for built executables to the "bin" directory
  10. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
  11. # set the default path for built libraries to the "lib" directory
  12. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
  13. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
  14. # find HTSEngine
  15. # adapted from https://github.com/r9y9/open_jtalk/blob/1.10/src/CMakeLists.txt
  16. # find_path(HTS_ENGINE_INCLUDE_DIR HTS_engine.h)
  17. # find_library(HTS_ENGINE_LIB hts_engine_API)
  18. #if(NOT HTS_ENGINE_LIB)
  19. # # fallback
  20. # find_library(HTS_ENGINE_LIB HTSEngine)
  21. #endif()
  22. configure_file(src/sinsy.pc.in "${PROJECT_BINARY_DIR}/sinsy.pc" @ONLY)
  23. aux_source_directory(src/lib/converter converter_source)
  24. aux_source_directory(src/lib/hts_engine_API hts_engine_API_source)
  25. aux_source_directory(src/lib/japanese japanese_source)
  26. aux_source_directory(src/lib/label label_source)
  27. aux_source_directory(src/lib/score score_source)
  28. aux_source_directory(src/lib/temporary temporary_source)
  29. aux_source_directory(src/lib/util util_source)
  30. aux_source_directory(src/lib/xml xml_source)
  31. aux_source_directory(src/lib/utau utau_source)
  32. aux_source_directory(src/lib/espeak-sg espeak_sg_source)
  33. aux_source_directory(src/lib/lyric lyric_source)
  34. include_directories(sinsy
  35. src/include
  36. src/include/sinsy
  37. src/lib
  38. src/lib/converter
  39. src/lib/hts_engine_API
  40. src/lib/japanese
  41. src/lib/label
  42. src/lib/score
  43. src/lib/temporary
  44. src/lib/util
  45. src/lib/xml
  46. src/lib/utau
  47. src/lib/lyric
  48. ${PROJECT_BINARY_DIR} # for generated headers
  49. )
  50. add_library(sinsy SHARED src/lib/Sinsy.cpp
  51. ${converter_source} ${hts_engine_API_source} ${japanese_source} ${label_source}
  52. ${score_source} ${temporary_source} ${util_source} ${xml_source} ${utau_source} ${espeak_sg_source} ${lyric_source})
  53. set_target_properties(sinsy PROPERTIES
  54. VERSION ${PROJECT_VER}
  55. SOVERSION ${PROJECT_APIVER}
  56. )
  57. # link hts_engine_API and add include dir
  58. #if(HTS_ENGINE_INCLUDE_DIR AND HTS_ENGINE_LIB)
  59. # target_link_libraries(sinsy ${HTS_ENGINE_LIB})
  60. # include_directories(sinsy ${HTS_ENGINE_INCLUDE_DIR})
  61. #else()
  62. # message(FATAL_ERROR "Required HTSEngine not found")
  63. #endif()
  64. target_link_libraries(sinsy sekai sndfile)
  65. target_link_libraries(sinsy boost_system boost_filesystem)
  66. add_executable(sinsy-bin src/bin/sinsy.cpp)
  67. target_link_libraries(sinsy-bin sinsy)
  68. target_link_libraries(sinsy-bin ${HTS_ENGINE_LIB})
  69. set_target_properties(sinsy-bin PROPERTIES OUTPUT_NAME sinsy)
  70. install(TARGETS sinsy sinsy-bin DESTINATION lib RUNTIME DESTINATION bin)
  71. install(DIRECTORY src/include/sinsy DESTINATION include)
  72. install(DIRECTORY src/dic DESTINATION lib/sinsy PATTERN "dic/Makefile*" EXCLUDE)
  73. install(FILES "${PROJECT_BINARY_DIR}/sinsy.pc" DESTINATION lib/pkgconfig/)