Created
March 27, 2011 14:44
-
-
Save hkrn/889259 to your computer and use it in GitHub Desktop.
Julius/OpenJTalk/HTSEngine のビルド設定の CMake 移植 (当然非公式です)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# CMake configuration for HTSEngine | |
# | |
cmake_minimum_required(VERSION 2.6) | |
# set library version | |
set(HTS_ENGINE_API_VERSION 1.02) | |
project(HTSEngine) | |
aux_source_directory(lib libHTSEngine_source) | |
include_directories(include) | |
add_library(HTSEngine ${libHTSEngine_source}) | |
set_target_properties(HTSEngine PROPERTIES VERSION ${HTS_ENGINE_API_VERSION}) | |
set_target_properties(HTSEngine PROPERTIES SO_VERSION ${HTS_ENGINE_API_VERSION}) | |
option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) | |
if(BUILD_SHARED_LIBS) | |
set(LIB_TYPE SHARED) | |
else() | |
set(LIB_TYPE STATIC) | |
endif() | |
option(EMBEDDED "Turn on compiling for embedded devices" OFF) | |
if(EMBEDDED) | |
add_definitions(-DHTS_EMBEDDED) | |
endif() | |
option(FESTIVAL "Use memory allocation/free functions of speech tools" OFF) | |
if(FESTIVAL) | |
add_definitions(-DFESTIVAL) | |
endif() | |
if(NOT MSVC) | |
install(TARGETS HTSEngine DESTINATION lib) | |
install(DIRECTORY include DESTINATION include PATTERN "*.h" PATTERN ".svn" EXCLUDE) | |
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# CMake configuration for julius | |
# | |
# FIXME: configuration of NetAudio support for libsent | |
# | |
cmake_minimum_required(VERSION 2.6) | |
include(CheckFunctionExists) | |
include(CheckIncludeFiles) | |
include(CheckLibraryExists) | |
# set library version | |
set(VERSION 4.1.5) | |
# build configuration | |
project(julius) | |
aux_source_directory(libjulius/src libjulius_source) | |
aux_source_directory(libsent/src/anlz libsent_anlz_source) | |
aux_source_directory(libsent/src/dfa libsent_dfa_source) | |
aux_source_directory(libsent/src/hmminfo libsent_hmminfo_source) | |
aux_source_directory(libsent/src/net libsent_net_source) | |
aux_source_directory(libsent/src/ngram libsent_ngram_source) | |
aux_source_directory(libsent/src/phmm libsent_phmm_source) | |
aux_source_directory(libsent/src/util libsent_util_source) | |
aux_source_directory(libsent/src/voca libsent_voca_source) | |
aux_source_directory(libsent/src/wav2mfcc libsent_wav2mfcc_source) | |
include_directories(libjulius/include libsent/include) | |
# create a empty file | |
file(WRITE libjulius/include/julius/config.h "") | |
file(WRITE libsent/include/sent/config.h "") | |
#set(JULIUS_PRODUCTNAME "\"juliusLib\"") | |
#set(JULIUS_VERSION "\"${JULIUS_VERSION}\"") | |
#set(JULIUS_HOSTINFO "\"\"") | |
add_definitions(-DJULIUS_PRODUCTNAME="juliusLib" | |
-DJULIUS_VERSION="${JULIUS_VERSION}" | |
-DJULIUS_HOSTINFO="") | |
option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) | |
if(BUILD_SHARED_LIBS) | |
set(LIB_TYPE SHARED) | |
else() | |
set(LIB_TYPE STATIC) | |
endif() | |
# libjulius configuration | |
option(UNIGRAM_FACOTRING "use 1-gram factoring on 1st pass" OFF) | |
option(BIGRAM_FACOTRING "use 2-gram factoring on 1st pass" OFF) | |
option(PASS1_IWCD "handle inter-word triphone on 1st pass" OFF) | |
option(PASS2_STRICT_ICWD "strict IWCD scoring on 2nd pass" OFF) | |
if(BIGRAM_FACOTRING) | |
set(UNIGRAM_FACOTRING OFF BOOL) | |
endif() | |
option(ALGORITHM_SET_STANDARD "high accuracy, slow speed" OFF) | |
option(ALGORITHM_SET_FAST "balanced for both speed and accuracy" ON) | |
if(ALGORITHM_SET_FAST) | |
set(UNIGRAM_FACOTRING ON BOOL) | |
set(PASS1_IWCD ON BOOL) | |
set(PASS2_STRICT_ICWD ON BOOL) | |
set(GPRUNE_DEFAULT "safe" INTERNAL) | |
#set(JULIUS_SETUP "\"fast\"") | |
add_definitions(-DJULIUS_SETUP="fast") | |
elseif(ALGORITHM_SET_STANDARD) | |
set(UNIGRAM_FACOTRING ON BOOL) | |
set(PASS1_IWCD ON BOOL) | |
set(PASS2_STRICT_ICWD ON BOOL) | |
set(GPRUNE_DEFAULT "\"beam\"" INTERNAL) | |
#set(JULIUS_SETUP "\"standard\"") | |
add_definitions(-DJULIUS_SETUP="standard") | |
endif() | |
if(UNIGRAM_FACOTRING) | |
add_definitions(-DUNIGRAM_FACTORING) | |
endif() | |
if(PASS1_IWCD) | |
add_definitions(-DPASS1_IWCD) | |
endif() | |
if(PASS2_STRICT_ICWD) | |
add_definitions(-DPASS2_STRICT_IWCD) | |
endif() | |
if(GPRUNE_DEFAULT STREQUAL "safe") | |
add_definitions(-DGPRUNE_DEFAULT_SAFE) | |
#set(GPRUNE_DEFAULT_SAFE ON BOOL) | |
elseif(GPRUNE_DEFAULT STREQUAL "beam") | |
add_definitions(-DGPRUNE_DEFAULT_BEAM) | |
#set(GPRUNE_DEFAULT_BEAM ON BOOL) | |
endif() | |
option(LOWMEM "all words share a single root on lexicon tree" OFF) | |
if(LOWMEM) | |
add_definitions(-DLOWMEM) | |
endif() | |
option(LOWMEM2 "separate hi-freq words from lexicon tree" OFF) | |
if(LOWMEM2) | |
add_definitions(-DLOWMEM2) | |
endif() | |
option(MONOTREE "monophone lexicon on 1st pass (EXPERIMENTAL)" OFF) | |
if(MONOTREE) | |
add_definitions(-DMONOTREE) | |
endif() | |
option(SCORE_BEAM "enable score envelope beaming on 2nd pass scan" ON) | |
if(SCORE_BEAM) | |
add_definitions(-DSCAN_BEAM) | |
endif() | |
option(WPAIR "use word-pair approximation on 1st pass" OFF) | |
if(WPAIR) | |
add_definitions(-DWPAIR) | |
endif() | |
option(WPAIR_NLIMIT "keep only N-best path with wpair (-nlimit)" OFF) | |
if(WPAIR_NLIMIT) | |
add_definitions(-DWPAIR) | |
add_definitions(-DWPAIR_KEEP_NLIMIT) | |
endif() | |
option(WORD_GRAPH "use word graph instead of trellis between passes" OFF) | |
if(WORD_GRAPH) | |
add_definitions(-DWORD_GRAPH) | |
endif() | |
option(GMM_VAD "GMM-based VAD (EXPERIMENTAL)" OFF) | |
if(GMM_VAD) | |
add_definitions(-DGMM_VAD -DBACKEND_VAD) | |
#set(GMM_VAD ON) | |
#set(BACKEND_VAD ON) | |
endif() | |
option(DECODER_VAD "a new decoder-based VAD by NAIST team" OFF) | |
if(DECODER_VAD) | |
add_definitions(-DSPSEGMENT_NAIST -DBACKEND_VAD) | |
#set(SPSEGMENT_NAIST ON BOOL) | |
#set(BACKEND_VAD ON BOOL) | |
endif() | |
option(POWER_REJECT "post rejection by power" OFF) | |
if(POWER_REJECT) | |
add_definitions(-DPOWER_REJECT) | |
endif() | |
option(GRAPHOUT_NBEST "word graph output from N-best sentence" OFF) | |
if(NOT GRAPHOUT_NBEST) | |
add_definitions(-DGRAPHOUT_DYNAMIC -DGRAPHOUT_SEARCH) | |
#set(GRAPHOUT_DYNAMIC ON BOOL) | |
#set(GRAPHOUT_SEARCH ON BOOL) | |
endif() | |
option(LMFIX "" ON) | |
if(LMFIX) | |
add_definitions(-DLM_FIX_DOUBLE_SCORING) | |
endif() | |
option(ENABLE_PLUGIN "plugin support" ON) | |
if(ENABLE_PLUGIN) | |
check_library_exists(dl dlopen "" HAVE_DLOPEN) | |
if(HAVE_DLOPEN) | |
add_definitions(-DENABLE_PLUGIN) | |
endif() | |
endif() | |
option(ENABLE_THREAD "use thread" ON) | |
if(ENABLE_THREAD) | |
include(FindThreads) | |
set(HAVE_PTHREAD CMAKE_USE_PTHREADS_INIT) | |
endif() | |
option(CONFIDENCE_MEASURE "confidence measure computation" ON) | |
option(CM_NBEST "N-best CM instead of search CM" OFF) | |
option(CM_MULTIPLE_ALPHA "EXPERIMENTAL: test multi alphas (need much mem)" OFF) | |
option(CMTHRES "confidence score based pruning on 2nd pass" OFF) | |
if(CONFIDENCE_MEASURE) | |
add_definitions(-DCONFIDENCE_MEASURE) | |
endif() | |
if(CM_NBEST) | |
if(CONFIDENCE_MEASURE) | |
add_definitions(-DCM_BEST) | |
else() | |
message(FATAL_ERROR "CM AND JULIUS_CM_NBEST conflicts") | |
endif() | |
endif() | |
if(CM_MULTIPLE_ALPHA) | |
if(CONFIDENCE_MEASURE) | |
add_definitions(-DCM_MULTIPLE_ALPHA) | |
else() | |
message(FATAL_ERROR "CM AND JULIUS_CM_MULTIPLE_ALPHA conflicts") | |
endif() | |
endif() | |
if(CMTHRES) | |
if(CONFIDENCE_MEASURE) | |
if(CM_NBEST) | |
message(FATAL_ERROR "CMTHRES cannot be used with JULIUS_CM_NBEST") | |
elseif(CM_MULTIPLE_ALPHA) | |
message(FATAL_ERROR "CMTHRES cannot be used with JULIUS_CM_MULTIPLE_ALPHA") | |
else() | |
add_definitions(-DCM_SEARCH_LIMIT) | |
set(CM_SEARCH_LIMIT ON) | |
endif() | |
else() | |
message(FATAL_ERROR "CM and JULIUS_CMTHRES conflicts") | |
endif() | |
endif() | |
#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libjulius/include/julius/config.h.in | |
# ${CMAKE_CURRENT_SOURCE_DIR}/libjulius/include/julius/config.h) | |
# libsent configuration | |
set(libsent_adin_source "libsent/src/adin/adin_file.c" | |
"libsent/src/adin/adin_tcpip.c" | |
"libsent/src/adin/ds48to16.c" | |
"libsent/src/adin/zc-e.c" | |
"libsent/src/adin/zmean.c") | |
option(USE_ADD_ARRAY "addlog_array() function" ON) | |
if(USE_ADD_ARRAY) | |
add_definitions(-DUSE_ADD_ARRAY) | |
endif() | |
option(WORDS_INT "integer instead of unsigned short for word ID to extend vocabulary limit to 2^31=2G words" OFF) | |
if(WORDS_INT) | |
add_definitions(-DWORDS_INT) | |
endif() | |
option(CLASS_NGRAM "class N-gram support" ON) | |
if(CLASS_NGRAM) | |
add_definitions(-DCLASS_NGRAM) | |
endif() | |
option(FORK_ADINNET "process forking on adinnet" OFF) | |
if(FORK_ADINNET) | |
add_definitions(-DFORK_ADINNET) | |
endif() | |
option(MFCC_SINCOS_TABLE "sin/cos table for MFCC calculation" ON) | |
if(MFCC_SINCOS_TABLE) | |
add_definitions(-DMFCC_SINCOS_TABLE) | |
endif() | |
option(ENABLE_MSD "MSD model support" OFF) | |
if(ENABLE_MSD) | |
add_definitions(-DENABLE_MSD) | |
endif() | |
option(LINK_ZLIB "link against with zlib" ON) | |
if(LINK_ZLIB) | |
find_package(ZLIB) | |
if(ZLIB_FOUND) | |
list(APPEND LIBSENT_DEPENDS_INCLUDE ${ZLIB_INCLUDE_DIR}) | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${ZLIB_LIBRARIES}) | |
set(GZDESC "zlib library") | |
endif() | |
endif() | |
find_program(GZIP_BIN "gzip") | |
if(GZIP_BIN) | |
add_definitions(-DZCAT="gzip -d -c") | |
else() | |
add_definitions(-DZCAT="") | |
endif() | |
if(NOT ZLIB_FOUND) | |
set(GZDESC "gzip command") | |
elseif(NOT ZLIB_FOUND AND NOT GZIP_BIN) | |
set(GZDESC "none") | |
endif() | |
set(WAVEFILE_SUPPORT "RAW and WAV only") | |
option(LINK_SNDFILE "link against with libsndfile" ON) | |
if(LINK_SNDFILE) | |
find_path(LIBSNDFILE_INCLUDE sndfile.h) | |
find_library(LIBSNDFILE_LIBRARY sndfile) | |
if(LIBSNDFILE_INCLUDE AND LIBSNDFILE_LIBRARY) | |
list(APPEND LIBSENT_DEPENDS_INCLUDE ${LIBSNDFILE_INCLUDE}) | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${LIBSNDFILE_LIBRARY}) | |
list(APPEND libsent_adin_source "libsent/src/adin/adin_sndfile.c") | |
set(WAVEFILE_SUPPORT "various formats by libsndfile ver.1") | |
add_definitions(-DHAVE_LIBSNDFILE -DHAVE_LIBSNDFILE_VER1) | |
endif() | |
endif() | |
set(ALTYPE "portaudio") | |
if(ALTYPE STREQUAL "portaudio" OR ALTYPE MATCHES "pa-*") | |
include(CheckLibraryExists) | |
find_path(PA_INCLUDE portaudio.h) | |
find_library(PA_LIBRARY portaudio) | |
if(PA_INCLUDE AND PA_LIBRARY) | |
list(APPEND libsent_adin_source "libsent/src/adin/adin_portaudio.c") | |
list(APPEND LIBSENT_DEPENDS_INCLUDE ${PA_INCLUDE}) | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${PA_LIBRARY}) | |
set(ALDESC "PortAudio library (external)") | |
else() | |
list(APPEND libsent_adin_source "libsent/src/adin/adin_portaudio.c" | |
"libsent/src/adin/pa/pa_lib.c" | |
"libsent/src/adin/pa/pa_convert.c" | |
"libsent/src/adin/pa/pa_trace.c" | |
"libsent/src/adin/pa/pablio.c" | |
"libsent/src/adin/pa/ringbuffer.c") | |
include_directories("libsent/src/adin/pa") | |
if(ALTYPE STREQUAL "pa-winmm") | |
find_library(WINMM_LIBRARY "winmm") | |
list(APPEND libsent_adin_source "libsent/src/adin/pa/pa_win_wmme.c") | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${WINMM_LIBRARY}) | |
elseif(ALTYPE STREQUAL "pa-dsound") | |
find_library(WINMM_LIBRARY "winmm") | |
find_library(DSOUND_LIBRARY "dsound") | |
list(APPEND libsent_adin_source "libsent/src/adin/pa/dsound_wrapper.c") | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${WINMM_LIBRARY} ${DSOUND_LIBRARY}) | |
elseif(ALTYPE STREQUAL "pa-oss") | |
list(APPEND libsent_adin_source "libsent/src/adin/pa/pa_unix.c" | |
"libsent/src/adin/pa/pa_unix_oss.c") | |
elseif(ALTYPE STREQUAL "pa-solaris") | |
list(APPEND libsent_adin_source "libsent/src/adin/pa/pa_unix_solaris.c") | |
endif() | |
endif() | |
add_definitions(-DUSE_MIC) | |
endif() | |
if(APPLE) | |
find_library(AUDIO_UNIT_FRAMEWORK "AudioUnit") | |
find_library(AUDIO_TOOLBOX_FRAMEWORK "AudioToolbox") | |
find_library(CORE_AUDIO_FRAMEWORK "CoreAudio") | |
find_library(CORE_SERVICES_FRAMEWORK "CoreServices") | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${AUDIO_UNIT_FRAMEWORK} | |
${AUDIO_TOOLBOX_FRAMEWORK} | |
${CORE_AUDIO_FRAMEWORK} | |
${CORE_SERVICES_FRAMEWORK}) | |
endif() | |
check_include_files(unistd.h HAVE_UNISTD_H) | |
if(HAVE_UNISTD_H) | |
add_definitions(-DHAVE_UNISTD_H) | |
endif() | |
check_function_exists(strcasecmp HAVE_STRCASECMP) | |
if(HAVE_STRCASECMP) | |
add_definitions(-DHAVE_STRCASECMP) | |
endif() | |
check_function_exists(strcasecmp HAVE_SLEEP) | |
if(HAVE_SLEEP) | |
add_definitions(-DHAVE_SLEEP) | |
endif() | |
find_library(SOCKET_LIBRARY socket) | |
if(SOCKET_LIBRARY) | |
add_definitions(-DHAVE_LIBSOCKET) | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${SOCKET_LIBRARY}) | |
endif() | |
find_library(ICONV_LIBRARY iconv) | |
if(ICONV_LIBRARY) | |
add_definitions(-DHAVE_ICONV) | |
list(APPEND LIBSENT_DEPENDS_LIBRARY ${ICONV_LIBRARY}) | |
endif() | |
add_definitions(-DLIBSENT_VERSION="${JULIUS_VERSION}" | |
-DAUDIO_API_NAME="${ALTYPE}" | |
-DAUDIO_API_DESC="${ALDESC}" | |
-DAUDIO_FORMAT_DESC="${WAVEFILE_SUPPORT}" | |
-DGZIP_READING_DESC="${GZDESC}") | |
add_library(julius ${libjulius_source} ${libsent_anlz_source} | |
${libsent_dfa_source} ${libsent_hmminfo_source} | |
${libsent_net_source} ${libsent_ngram_source} | |
${libsent_phmm_source} ${libsent_util_source} | |
${libsent_voca_source} ${libsent_wav2mfcc_source} | |
${libsent_adin_source}) | |
target_link_libraries(julius ${LIBSENT_DEPENDS_LIBRARY}) | |
include_directories(julius ${LIBSENT_DEPENDS_INCLUDE}) | |
set_target_properties(julius PROPERTIES VERSION ${VERSION}) | |
set_target_properties(julius PROPERTIES SO_VERSION ${VERSION}) | |
if(NOT MSVC) | |
install(TARGETS julius DESTINATION lib) | |
install(DIRECTORY libjulius/include/ libsent/include | |
DESTINATION include | |
PATTERN "*.h" | |
PATTERN ".svn" EXCLUDE | |
PATTERN "config.h" EXCLUDE) | |
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# CMake configuration for OpenJTalk | |
# | |
cmake_minimum_required(VERSION 2.6) | |
include(CheckIncludeFiles) | |
include(CheckFunctionExists) | |
include(CheckLibraryExists) | |
include(CheckTypeSize) | |
# set library version | |
set(OPEN_JTALK_VERSION 1.02) | |
file(WRITE "mecab/src/config.h") | |
# build configuration | |
project(OpenJTalk) | |
aux_source_directory(jpcommon libjpcommon_source) | |
aux_source_directory(mecab/src libmecab_source) | |
aux_source_directory(mecab2njd libmecab2njd_source) | |
aux_source_directory(njd libnjd_source) | |
aux_source_directory(njd2jpcommon libnjd2jpcommon_source) | |
aux_source_directory(njd_set_accent_phrase libnjd_set_accent_phrase_source) | |
aux_source_directory(njd_set_accent_type libnjd_set_accent_type_source) | |
aux_source_directory(njd_set_digit libnjd_set_digit_source) | |
aux_source_directory(njd_set_long_vowel libnjd_set_long_vowel_source) | |
aux_source_directory(njd_set_pronunciation libnjd_set_pronunciation_source) | |
aux_source_directory(njd_set_unvoiced_vowel libnjd_set_unvoiced_vowel_source) | |
aux_source_directory(text2mecab libtext2mecab_source) | |
include_directories(jpcommon mecab/src mecab2njd njd njd2jpcommon njd_set_accent_phrase | |
njd_set_accent_type njd_set_digit njd_set_long_vowel | |
njd_set_pronunciation njd_set_unvoiced_vowel text2mecab) | |
add_library(OpenJTalk ${libjpcommon_source} ${libmecab_source} ${libmecab2njd_source} | |
${libnjd_source} ${libnjd2jpcommon_source} | |
${libnjd_set_accent_phrase_source} ${libnjd_set_accent_type_source} | |
${libnjd_set_digit_source} ${libnjd_set_long_vowel_source} | |
${libnjd_set_pronunciation_source} ${libnjd_set_unvoiced_vowel_source} | |
${libtext2mecab_source}) | |
set_target_properties(OpenJTalk PROPERTIES VERSION ${OPEN_JTALK_VERSION}) | |
set_target_properties(OpenJTalk PROPERTIES SO_VERSION ${OPEN_JTALK_VERSION}) | |
# generate mecab/config.h | |
check_include_files(ctype.h HAVE_CTYPE_H) | |
if(HAVE_CTYPE_H) | |
add_definitions(-DHAVE_CTYPE_H) | |
endif() | |
check_include_files(dirent.h HAVE_DIRENT_H) | |
if(HAVE_DIRENT_H) | |
add_definitions(-DHAVE_DIRENT_H) | |
endif() | |
check_include_files(fcntl.h HAVE_FCNTL_H) | |
if(HAVE_FCNTL_H) | |
add_definitions(-DHAVE_FCNTL_H) | |
endif() | |
check_include_files(inttypes.h HAVE_INTTYPES_H) | |
if(HAVE_INTTYPES_H) | |
add_definitions(-DHAVE_INTTYPES_H) | |
endif() | |
check_include_files(io.h HAVE_IO_H) | |
if(HAVE_IO_H) | |
add_definitions(-DHAVE_IO_H) | |
endif() | |
check_include_files(memory.h HAVE_MEMORY_H) | |
if(HAVE_MEMORY_H) | |
add_definitions(-DHAVE_MEMORY_H) | |
endif() | |
check_include_files(setjmp.h HAVE_SETJMP_H) | |
if(HAVE_SETJMP_H) | |
add_definitions(-DHAVE_SETJMP_H) | |
endif() | |
check_include_files(stdint.h HAVE_STDINT_H) | |
if(HAVE_STDINT_H) | |
add_definitions(-DHAVE_STDINT_H) | |
endif() | |
check_include_files(stdlib.h HAVE_STDLIB_H) | |
if(HAVE_STDLIB_H) | |
add_definitions(-DHAVE_STDLIB_H) | |
endif() | |
check_include_files(strings.h HAVE_STRINGS_H) | |
if(HAVE_STRINGS_H) | |
add_definitions(-DHAVE_STRINGS_H) | |
endif() | |
check_include_files(string.h HAVE_STRING_H) | |
if(HAVE_STRING_H) | |
add_definitions(-DHAVE_STRING_H) | |
endif() | |
check_include_files(sys/mman.h HAVE_SYS_MMAN_H) | |
if(HAVE_SYS_MMAN_H) | |
add_definitions(-DHAVE_SYS_MMAN_H) | |
endif() | |
check_include_files(sys/stat.h HAVE_SYS_STAT_H) | |
if(HAVE_SYS_STAT_H) | |
add_definitions(-DHAVE_SYS_STAT_H) | |
endif() | |
check_include_files(sys/times.h HAVE_SYS_TIMES_H) | |
if(HAVE_SYS_TIMES_H) | |
add_definitions(-DHAVE_SYS_TIMES_H) | |
endif() | |
check_include_files(sys/types.h HAVE_SYS_TYPES_H) | |
if(HAVE_SYS_TYPES_H) | |
add_definitions(-DHAVE_SYS_TYPES_H) | |
endif() | |
check_include_files(unistd.h HAVE_UNISTD_H) | |
if(HAVE_UNISTD_H) | |
add_definitions(-DHAVE_UNISTD_H) | |
endif() | |
check_function_exists(getenv HAVE_GETENV) | |
if(HAVE_GETENV) | |
add_definitions(-DHAVE_GETENV) | |
endif() | |
check_function_exists(getpagesize HAVE_GETPAGESIZE) | |
if(HAVE_GETPAGESIZE) | |
add_definitions(-DHAVE_GETPAGESIZE) | |
endif() | |
check_function_exists(mmap HAVE_MMAP) | |
if(HAVE_MMAP) | |
add_definitions(-DHAVE_MMAP) | |
endif() | |
check_function_exists(opendir HAVE_OPENDIR) | |
if(HAVE_OPENDIR) | |
add_definitions(-DHAVE_OPENDIR) | |
endif() | |
check_function_exists(setjmp HAVE_SETJMP) | |
if(HAVE_SETJMP) | |
add_definitions(-DHAVE_SETJMP) | |
endif() | |
check_function_exists(sqrt HAVE_SQRT) | |
if(HAVE_SQRT) | |
add_definitions(-DHAVE_SQRT) | |
endif() | |
check_function_exists(strstr HAVE_STRSTR) | |
if(HAVE_STRSTR) | |
add_definitions(-DHAVE_STRSTR) | |
endif() | |
find_library(HAVE_ICONV "iconv") | |
if(HAVE_ICONV) | |
add_definitions(-DICONV_CONST) | |
endif() | |
find_library(HAVE_LIBM "m") | |
if(HAVE_LIBM) | |
add_definitions(-DHAVE_LIBM) | |
endif() | |
add_definitions(-DHAVE_CONFIG_H | |
-DDIC_VERSION=102 | |
-DMECAB_DEFAULT_RC="dummy" | |
-DMECAB_WITHOUT_SHARE_DIC | |
-DPACKAGE="open_jtalk" | |
-DVERSION="${OPEN_JTALK_VERSION}") | |
# whether build as a shared library or not | |
option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) | |
if(BUILD_SHARED_LIBS) | |
set(LIB_TYPE SHARED) | |
else() | |
set(LIB_TYPE STATIC) | |
endif() | |
# find HTSEngine | |
find_path(HTS_ENGINE_INCLUDE_DIR HTS_engine.h) | |
find_library(HTS_ENGINE_LIB HTSEngine) | |
if(HTS_ENGINE_INCLUDE_DIR AND HTS_ENGINE_LIB) | |
target_link_libraries(OpenJTalk ${HTS_ENGINE_LIB}) | |
include_directories(OpenJTalk ${HTS_ENGINE_INCLUDE_DIR}) | |
else() | |
message(FATAL_ERROR "Required HTSEngine not found") | |
endif() | |
# configuration for charset | |
#option(CHARSET "Encoding set for mecab" "eucjp") | |
set(CHARSET "sjis") | |
if(${CHARSET} STREQUAL "sjis") | |
add_definitions(-DCHARSET_SHIFT_JIS -DMECAB_CHARSET=sjis) | |
foreach(flag CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) | |
set(${flag} "${${flag}} -finput-charset=cp932 -fexec-charset=cp932") | |
endforeach() | |
elseif(${CHARSET} STREQUAL "eucjp") | |
add_definitions(-DCHARSET_EUC_JP -DMECAB_CHARSET=euc-jp) | |
elseif(${CHARSET} STREQUAL "utf8") | |
add_definitions(-DCHARSET_UTF_8 -DMECAB_CHARSET=utf-8 -DMECAB_UTF8_USE_ONLY) | |
foreach(flag CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) | |
set(${flag} "${${flag}} -finput-charset=UTF-8 -fexec-charset=UTF-8") | |
endforeach() | |
else() | |
message(FATAL_ERROR "Encoding ${CHARSET} not recognized. You can set sjis/eucjp/utf8") | |
endif() | |
# installation | |
if(NOT MSVC) | |
install(TARGETS OpenJTalk DESTINATION lib) | |
install(FILES jpcommon/jpcommon.h mecab/src/mecab.h mecab2njd/mecab2njd.h njd/njd.h njd2jpcommon/njd2jpcommon.h | |
njd_set_accent_phrase/njd_set_accent_phrase.h njd_set_accent_type/njd_set_accent_type.h | |
njd_set_digit/njd_set_digit.h njd_set_long_vowel/njd_set_long_vowel.h njd_set_pronunciation/njd_set_pronunciation.h | |
njd_set_unvoiced_vowel/njd_set_unvoiced_vowel.h text2mecab/text2mecab.h | |
DESTINATION include/OpenJTalk) | |
endif() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment