since 2010-12-12
nvdajp 開発者向けセットアップ。nvdajp_bazaar もどうぞ。
updated on 2013-11-19
ソースコードの readme に書かれているが https://bitbucket.org/nvdajp を使うという前提で手順をまとめる。
基本的にすべて32bit版のバイナリ。新しいバージョンが出ていてもむやみに最新版を使わないほうがよい。
特に明記しないかぎり、インストーラーのオプションはデフォルト。
JTalk 単体テストで使うもの
Redmond Path が便利。
Windows 7 (32bit) + Windows SDK 7.0 の場合は環境変数 PATH に以下を追加
"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin"
miscdep の include\jtalk をビルドする前にはコマンドプロンプトで以下を実行
vcvars32
その他 PATH に追加しておく場所
c:\Python27 c:\Python27\Scripts C:\Program Files\7-Zip\7z.exe
64ビット環境の場合は Program Files(x86) になる。
lv も miscdep で使っている。
開発ドキュメント scons devDocs 関連
MFC DLLについて
上記以外のものは launchpad の lp:~nvdajp/nvdajp/MiscellaneousDependencies から取得してください。
nvdajp_bazaar も参照してください。
作業例:
> bzr branch lp:~nvdajp/nvdajp/MiscellaneousDependencies miscdep > bzr branch lp:~nvdajp/nvdajp/jpmain jpmain > cd miscdep > _pack.cmd # これで ..\miscdep.7z を作る > cd ..\jpmain > 7z x ..\miscdep.7z # これで miscdep を jpmain に統合する > chcp 437
> scons -c > scons source # これで jpmain\source\nvda.pyw が実行可能になる。
本家の人たちが勧めているテキストエディター:
かつて JTalk 関連のコンパイルに cygwin を使っていましたが、2011.3j からは不要です。
ただし cygwin を使うと launchpad.net を使うための ssh 設定がやりやすいかも知れません。
since 2011-10-19
Windows 7 x64 に Windows SDK v7 をインストールして、スタートメニューの CMD Shell を開くと x64 の開発環境になっている。
setenv /x86 を実行すると、x86 のコンパイル環境がセットアップされる。
下記のようにショートカットを設定すれば一発で x86 環境が開く:
リンク先 C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "SetEnv.cmd /x86" 作業フォルダ "C:\Program Files\Microsoft SDKs\Windows\v7.0\bin"
この環境は JTalk ライブラリの更新に伴って暫定的に必要になったもので、いずれ scons に統合したら、CMD Shell は不要になる予定。
since 2012-05-26
> bzr branch lp:nvdajp nvdajp-work > dir nvdajp-miscdep-83.7z nvdajp-work > cd nvdajp-work > "C:\Program Files (x86)\7-Zip\7z.exe" x -y ..\nvdajp-miscdep-83.7z > scons -c > scons source
セブンジップ 7z の説明もどうぞ。
since 2011-10-06
espeak は音声合成エンジン(日本語には非対応)。
2011.3 系以降では espeak をソースから scons するようになっている。
1.46.02 以上と書かれているが、どこにあるか分かりにくい。正解は下記:
http://espeak.sourceforge.net/test/latest.html
なぜか espeak を include/espeak において scons source するとエラーになる。
世間で話題になっていないので Windows のロケールに依存するのかも知れない。
解決策(1)は espeak の src/tr_languages.cpp を UTF-8N から UTF-8(BOMあり)に変換する:
解決策(2)は、src/tr_languages.cpp の 519,520 行の行末コメントを無効化する:
2013-03-29 espeak-general メーリングリストで報告したら 1.47.03e で直してもらえた。改行文字が認識されていなかった不具合として、コメントの行末に文字を追加して対応。
// character codes offset by 0x380 static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0}; #if 1 static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0}; #else static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0}; // ε η ι υ έ ή ί ύ static const char el_voiceless[]= {0x38,0x3a,0x3e,0x40,0x42,0x43,0x44,0x46,0x47,0}; // θ κ ξ π ς σ τ φ χ #endif static const char el_consonants[]={0x32,0x33,0x34,0x36,0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x40,0x41,0x42,0x43,0x44,0x46,0x47,0x48,0}; static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ
2012-05-14 : espeak 1.46.12 以降に対応させるパッチという話(2013.1で正式に 1.47 対応になった):
=== modified file 'source/synthDrivers/_espeak.py' --- source/synthDrivers/_espeak.py 2012-03-06 07:49:20 +0000 +++ source/synthDrivers/_espeak.py 2012-05-11 11:45:09 +0000 @@ -80,10 +80,13 @@ #EE_BUFFER_FULL=1 #EE_NOT_FOUND=2 +eightCharsType =c_char *8 + class espeak_EVENT_id(Union): _fields_=[ ('number',c_int), ('name',c_char_p), + ('string',eightCharsType), ] class espeak_EVENT(Structure):
since 2011-12-14
2012.1系(本家 Branch nvda/main: Rev 4839 以降)では liblouis を scons でビルドするようになった。
http://code.google.com/p/liblouis/downloads/list
から liblouis-2.4.1.tar.gz を落とす。
git に移行した。
2013年5月21日にブランチ release-2013.1jp での作業を終了した。がしかし、2013.1.1 が出るらしいので再開した。。
今後は本家 master からの派生 jpbranch で作業を行う。release-2013.1jp ブランチでの変更はすべて jpbranch にマージする。
git checkout master git pull origin master git checkout -b jpbranch git merge release-2013.1jp
やってみたら珍しく conflict した:
Auto-merging source/versionInfo.py Auto-merging source/globalCommands.py Auto-merging source/appModules/skype.py CONFLICT (content): Merge conflict in source/appModules/skype.py Auto-merging source/NVDAObjects/window/edit.py Auto-merging source/NVDAObjects/IAccessible/__init__.py Auto-merging source/IAccessibleHandler.py Auto-merging .gitignore CONFLICT (add/add): Merge conflict in .gitignore Automatic merge failed; fix conflicts and then commit the result.
git status するとこうなる:
# Unmerged paths: # (use "git add <file>..." to mark resolution) # # both added: .gitignore # both modified: source/appModules/skype.py
修正して git add して git commit すればいいらしい。
since 2011-01-31
Windows 版 bazaar をインストールする。
本家のbeta1に手作業で日本語関連をマージしたブランチ lp:~nishimotz/nvdajp/releases_2011.1 を bzr branch する。
後述の nishimotz 版 miscdep を上書きする。
開発環境の作り方 に書かれたツールのうち miscdep に入っていないもの、システムにインストールすべきものを入れる。
翻訳に関しては Translating NVDA into other languages (NVDA localization) に書かれたツールが必要かも知れません。
lp:~nishimotz/nvdajp/releases_2011.1
更新 2011-02-02
bzr で手に入らないファイル:
リポジトリ: lp:~nishimotz/nvdajp/MiscellaneousDependencies
since 2010-12-12
devinstaller というツールが整備されたが、最新の nvda に対応できていない、かも知れない。
Windows XP 32 bit
なるべく devinstaller が役立つような方針で。。
執筆作業中:
インストーラで入れるもの
2010年1月の状況。
以下は svn の場合。2010年4月移行、nvdajp の最新ソースは bazaar で入手。
情報源 に従って必要なファイルを揃える。
http://bazaar.launchpad.net/~nvda-core-dev/nvda/main/view/head:/readme.txt (2011-04更新)
西本は Windows XP Pro SP3 で作業している。
その他もろもろ。
svn からの checkout は c:\work\nvdajp でやった。
開発者としての checkout は下記(sshは設定済み) svn checkout svn+ssh://username@svn.sourceforge.jp/svnroot/nvdajp/trunk
コマンドプロンプトで python nvda.pyw を実行。
Error starting, code 0X6B1
が出る(リビジョン73で各種ライブラリを最新版にしている)が、動いているっぽい。
Adobe FlashAccessibility interface typelib: http://www.nvda-project.org/3rdParty/FlashAccessibility.tlb が抜けてたので入れてみた。
http://www.nvda-project.org/3rdParty/system-dlls.7z の中身 (mfc90.dllなど)が c:\windows\system32 に入っていなかったので入れた。
コマンドプロンプトで bzr が使える必要がある。
bazaar win32 をインストールしておく。
コマンドプロンプトで作業 (cygwin不可)
C:\work\nvdajp\lp> bzr launchpad-login nishimotz C:\work\nvdajp\lp> bzr branch lp:nvdajp/devinstaller C:\work\nvdajp\lp> cd devinstaller C:\work\nvdajp\lp\devinstaller> python bootstrap.py C:\work\nvdajp\lp\devinstaller> bin\buildout.exe
かなり待たされる。
やがて終了。nvda ディレクトリの中に nvda と nvdadepend のディレクトリが作られている。
実行するときは
cd devinstaller\nvda\nvda\source python generate.py python nvda.pyw
自分のブランチの実行環境を作るには
buildout.cfg ファイルの中にある、
urls = http://bazaar.launchpad.net/~nvdajp/nvdajp/main nvda
という項目のURLを変更し、自身のレポジトリにすることが可能
このやり方で(日本語版ではなく)本家の動作環境を作る、といったことも可能。
buildout はやりなおさない。
nvdajp/2010.2 をマージして python generate.py して python nvda.pyw できることを確認。
nvdajp_bazaar 作業関連。
scons portable してエラーが起きない状況を楽に作りたい:
installer/waves source/lib source/lib64 source/liblouis-2.dll source/louis source/typelibs source/waves source/comInterfaces source/images source/synthDrivers/espeak-data source/synthDrivers/espeak.dll source/synthDrivers/jtalk source/nvdajpime.dll
公式のファイルはここ: http://bazaar.launchpad.net/~nvdajp/nvdajp/MiscellaneousDependencies/files/head:/source/
2011-01-30 こんなワーニングが出るので要修正 replace source/comInterfaces/_ _ init _ _.py