2016年01月24日

mozc_emacs_helper の Windows上のコンパイル

mozc version 2.17.2288.100の場合です。

depot_toolsを使っても良いはずですが、私は上手く動かなかったので、python2.7とninjaを直接インストールしました。pythonはPATHを通して起きました。ninja https://ninja-build.org/https://github.com/ninja-build/ninja/releases からダウンロードして、PATHが通っている場所にコピーしました。

git clone https://github.com/google/mozc.git --recursive

sourceの修正


branding=Mozc のままだと、Google日本語入力と通信が上手く出来ないようです。以下のように修正したら動きました。

mozc\src\build_mozc.py

--- src.orig/build_mozc.py 2016-01-10 16:58:38.978852300 +0900
+++ src/build_mozc.py 2016-01-10 16:14:26.145930200 +0900
@@ -345,7 +345,7 @@
parser = optparse.OptionParser(usage='Usage: %prog gyp [options]')
AddCommonOptions(parser)
AddGeneratorOption(parser)
- default_branding = 'Mozc'
+ default_branding = 'GoogleJapaneseInput'
parser.add_option('--branding', dest='branding', default=default_branding,
help='Specifies the branding. [default: %default]')
parser.add_option('--gypdir', dest='gypdir',


mozc\src\win32\build32\build32.gyp

--- src.orig/win32/build32/build32.gyp 2016-01-10 16:53:05.597285800 +0900
+++ src/win32/build32/build32.gyp 2016-01-10 15:45:47.054732300 +0900
@@ -49,6 +49,7 @@
'../broker/broker.gyp:mozc_broker32',
'../ime/ime.gyp:mozc_ime',
'../tip/tip.gyp:mozc_tip32',
+ '../../unix/emacs/emacs.gyp:mozc_emacs_helper',
],
'conditions': [
['use_dynamically_linked_qt!=1', {

mozc\src\win32\build64\build64.gyp

--- src/win32/build64/build64.gyp.orig 2016-01-10 16:50:34.853723900 +0900
+++ src/win32/build64/build64.gyp 2016-01-10 15:46:47.153259800 +0900
@@ -46,6 +46,7 @@
'../broker/broker.gyp:mozc_broker64',
'../ime/ime.gyp:mozc_ime',
'../tip/tip.gyp:mozc_tip64',
+ '../../unix/emacs/emacs.gyp:mozc_emacs_helper',
],
'conditions': [
['branding=="GoogleJapaneseInput"', {

mozc\src\data_manager\packed\packed_data_manager.gyp

--- src/data_manager/packed/packed_data_manager.gyp.orig 2016-01-10 16:56:32.269967400 +0900
+++ src/data_manager/packed/packed_data_manager.gyp 2016-01-10 16:23:01.338638700 +0900
@@ -40,7 +40,7 @@
},
'includes': [ 'packed_data_manager.gypi' ],
}],
- ['branding=="Mozc"', {
+ ['branding=="GoogleJapaneseInput"', {
'variables': {
'dataset_dir': 'oss',
'dataset_tag': 'oss',


mozc\src\data_manager\packed\packed_data_manager_base.gyp

--- src/data_manager/packed/packed_data_manager_base.gyp.orig 2016-01-10 16:57:09.134508600 +0900
+++ src/data_manager/packed/packed_data_manager_base.gyp 2016-01-10 16:23:19.361753500 +0900
@@ -96,7 +96,7 @@
},
'includes': [ 'packed_data_manager_base.gypi' ],
}],
- ['branding=="Mozc"', {
+ ['branding=="GoogleJapaneseInput"', {
'variables': {
'dataset_dir': 'oss',
'dataset_tag': 'oss',

コンパイル


以下はコマンドプロンプトから実行しました。

$ cd src
$ python.bat build_mozc.py gyp --msvs_version=2013 --noqt --branding=GoogleJapaneseInput
$ python.bat build_mozc.py build -c Release package

buildをやり直す場合は

$ python.bat build_mozc.py clean

動作の確認



echo -e '(0 CreateSession)\n(1 SendKey 1 hiragana)\n(2 SendKey 1 hiragana)\n(3 SendKey 1 97)' | ./mozc_emacs_helper.exe

を実行します。以下のようになっていれば、OKです。

((mozc-emacs-helper . t)(version . "2.17.2288.100")(config . ((preedit-method . roman))))
((emacs-event-id . 0)(emacs-session-id . 1)(output . ()))
((emacs-event-id . 1)(emacs-session-id . 1)(output . ((id . "14103043341600411975")(mode . hiragana)(consumed . t)(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana))))))
((emacs-event-id . 2)(emacs-session-id . 1)(output . ((id . "14103043341600411975")(mode . hiragana)(consumed . t)(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana))))))
((emacs-event-id . 3)(emacs-session-id . 1)(output . ((id . "14103043341600411975")(mode . hiragana)(consumed . t)(preedit . ((cursor . 1)(segment ((annotation . underline)(value . "あ")(value-length . 1)(key . "あ")))))(candidates . ((size . 1)(candidate ((index . 0)(value . "あ")(annotation . ((description . "ひらがな")))(id . 0)))(position . 0)(category . suggestion)(display-type . main)(footer . ((label . "Tabキーで選択")))(page-size . 9)))(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana)))(all-candidate-words . ((candidates ((id . 0)(index . 0)(value . "あ")(annotation . ((description . "ひらがな")))))(category . suggestion))))))

あとは、mozc_emacs_helper.exeをPATHが通っているフォルダにコピーして終わりです。

参考

emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)を参考しました。
タグ:Windows emacs mozc
posted by BadCat4 at 10:56| Emacs