GNU GLOBAL による OpenFOAM ソースコードの探索2018年4月4日 | |
はじめにGNU GLOBAL を使って OpenFOAM のソースコードを探索する。 使用バージョンUbuntu 16.04 LTS、OpenFOAM v1712 インストールapt-get でインストール。 $ sudo apt-get install global 設定GNU GLOBAL は、ソースコードのタグを作成し、キーワードの検索を行うことができる。VIM から使うこともでき、ソースコード間の移動を行ったりできる。また、Doxygen のように HTML ドキュメントを作成することもできる。まず、HTML ドキュメントの作成について記述する。 OpenFOAM のソースディレクトリに移動する。 $ foam ソースコードのタグを作成するには gtags を用いる。その設定ファイルは gtags.conf であり、"/usr/share/doc/global/examples/gtags.conf" にサンプルがある。これをコピーする。 $ sudo cp /usr/share/doc/global/examples/gtags.conf . ここで、OpenFOAM は /opt にインストールされているものとして sudo を使っている。 OpenFOAM 用に設定を修正する。項目 skip で無視させるものを指定できる。ここに "tutorials/"、"doc" などを追加する。
common:\
:skip=GPATH,GTAGS,GRTAGS,GSYMS,HTML/,HTML.pub/,html/,tags,TAGS,ID,y.tab.c,y.tab.h,.notfunction,cscope.out,
cscope.po.out,cscope.in.out,.gdbinit,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,.svn/,.git/,.cvsrc,.cvsignore,.gitignore,.cvspass,.cvswrappers,.deps/,autom4te.cache/,.snprj/,tutorials/,doc/,platforms/,wmake/,bin/,etc/,modules/,test/,Make/,lnInclude/:\
:langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:
gtags を実行。 $ sudo gtags --gtagsconf gtags.conf GPATH, GRTAGS, GSYMS GTAGS というファイルができる。 HTML ドキュメントを作成するには、htags を用いる。 $ htags -ansx HTML ディレクトリができる。HTML/index.html をブラウザで開く。 $ firefox HTML/index.html リンクの下線が邪魔に感じたので、スタイルシートを編集して下線を消した。 HTML/style.css
a { text-decoration: none; }
VIM での利用プラグインを用意。 $ mkdir -p ~/.vim/plugin/ $ cp /usr/share/doc/global/examples/gtags.vim.gz ~/.vim/plugin $ cd ~/.vim/plugin $ gzip -d gtags.vim.gz キーバインドを設定。 ~/.vimrc map <C-g> :Gtags map <C-h> :Gtags -f %<CR> map <C-j> :sp<CR>:GtagsCursor<CR> map <C-n> :cn<CR> map <C-m> :cp<CR> OpenFOAM のソースディレクトリを VIM で開く。 $ foam $ vim . キーワード上で Ctrl+j でジャンプする (戻るときは Ctrl+o)。Ctrl+n, m で候補を変更できる。Ctrl+h で関数一覧が表示される。Ctrl+g でキーワードを検索できる。 VIM の機能だが、パスの設定をしておけば Ctrl-w f でインクルードファイルに移動できる。パスの設定は以下のように行う。 ˜/.zshrc export OPENFOAM_INCLUDE=`find $WM_PROJECT_DIR -type d | grep lnInclude | tr '\n' ','` ˜/.vimrc
function! s:add_path(path)
execute "set path+=".a:path
endfunction
call s:add_path($OPENFOAM_INCLUDE)
参考 | |
| PENGUINITIS | |