読者です 読者をやめる 読者になる 読者になる

へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

vimb(vim browser)をMacでインストールしてつかってみた

依存関係が結構あるので備忘録的な感じでメモ

前提

Homebrewがインストールされていること

依存関係のパッケージインストール

brew install gtk+
brew install libsoup
brew install webkit2png←あやしい!なくてもいいんではないか。くわしいひとおしえて

途中のエラーその1

Package xcb-shm was not found in the pkg-config search path.
Perhaps you should add the directory containing `xcb-shm.pc'
to the PKG_CONFIG_PATH environment variable

$ sudo find / -name xcb-shm.pc
【パスが出力】

$ echo "export PKG_CONFIG_PATH= 【さっき出たパス】" >> ~/.zshrc

ターミナル読み込み直し

途中のエラーその2

Package webkit-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `webkit-1.0.pc'
to the PKG_CONFIG_PATH environment variable

これは

$ pkg-config ---libs webkit-1.0

と同じメッセージを吐く

→ディレクトリを検索してもない
Getting WebKit bindings to work with Perl and gkt2 - Stack Overflow


→libwebkitgtk-develをインストール

libwebkitgtk-develをMacにインストール(※)

※やったけど詰んだことも書いてるので、詰み方とかどうでもいいよって人はこの段落を飛ばした方がいいです。
pane

  • Oはこの名前でダウンロードするという意味

$ wget -O ige-mac-integration-0.9.8.tar.bz2 http://downloads.sourceforge.net/project/gtk-osx/GTK-OSX%20Build/ige-mac-integration-0.9.8.tar.bz2\?r\=\&ts\=1425859461\&use_mirror\=iweb
$ tar xzvf ige-mac-integration-0.9.8.tar.bz2
$ cd ige-mac-integration-0.9.8
$ ./configure
$ make

makeがはじまる

libtool: link: gcc -D_REENTRANT -I/opt/X11/include/cairo -I/opt/X11/include/pixman-1 -I/opt/X11/include/libpng15 -I/opt/X11/include -I/opt/X11/include/freetype2 -I/usr/local/Cellar/gtk+/2.24.25/include/gtk-2.0 -I/usr/local/Cellar/gtk+/2.24.25/lib/gtk-2.0/include -I/usr/local/Cellar/pango/1.36.8/include/pango-1.0 -I/usr/local/Cellar/atk/2.14.0/include/atk-1.0 -I/usr/local/Cellar/gdk-pixbuf/2.30.8/include/gdk-pixbuf-2.0 -I/usr/local/Cellar/libpng/1.6.16/include/libpng16 -I/usr/local/Cellar/pango/1.36.8/include/pango-1.0 -I/usr/local/Cellar/harfbuzz/0.9.38/include/harfbuzz -I/usr/local/Cellar/pango/1.36.8/include/pango-1.0 -I/usr/local/Cellar/glib/2.42.1/include/glib-2.0 -I/usr/local/Cellar/glib/2.42.1/lib/glib-2.0/include -I/usr/local/opt/gettext/include -g -O2 -o .libs/test-integration test_integration-test-integration.o -L/opt/X11/lib -L/usr/local/Cellar/gtk+/2.24.25/lib -L/usr/local/Cellar/pango/1.36.8/lib -L/usr/local/Cellar/atk/2.14.0/lib -L/usr/local/Cellar/gdk-pixbuf/2.30.8/lib -L/usr/local/Cellar/glib/2.42.1/lib -L/usr/local/opt/gettext/lib ./.libs/libigemacintegration.dylib -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lintl -lfontconfig -lfreetype -lobjc -framework ApplicationServices -framework Carbon
Undefined symbols for architecture x86_64:
"_g_thread_init", referenced from:
_main in test_integration-test-integration.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [test-integration] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

落ちる。なんぞこれ。
リンカがおかしいよと言われる。

ググってもなんかよくわからない。
エラーググっても1件しか出てこない。
とりあえずwebkit-1.0をインストールできればいいので、
放置して違う方法を模索することにする。
(他にもgtk-osx-build-setup.shとかをダウンロードしてたりしてJHBUILDなるものを使っていたりした。でもよくわからない)

Macportsからwebkit-gtkをインストールできるらしいことを知る

ソース:
BuildingGtk – WebKit

$ sudo port install webkit-gtk

このへんから
「あ、Homebrewってとても便利だけど、思っていたほど神がかって便利というわけではないな」
Macportsは結構すごいやつだったのか」
Macは変なLinuxだ」
感を味わうようになった。

で、Macportsからうまくwebkit-gtkがインストールできたので

$ sudo find / -name "*webkit*"

で検索すると、
ねんがんのwebkit-1.0.pcがある。
このwebkitのパスはMacのパスなので、
さっきの~/.zshrcの

export PKG_CONFIG_PATH="/opt/X11/lib/pkgconfig"

を、

export PKG_CONFIG_PATH="/opt/X11/lib/pkgconfig:/opt/local/lib/pkgconfig"

こうする。

ふたたびvimbへいって、make clean; makeする

途中のエラーその3

cc handlers.o
minify hints.js
cc hints.o
In file included from hints.c:28:
./hints.js.h:1:1: error: expected external declaration
-n #define HINTS_JS "
^
./hints.js.h:1:2: error: unknown type name 'n'
-n #define HINTS_JS "
^
./hints.js.h:1:4: error: expected identifier or '('
-n #define HINTS_JS "
^
./hints.js.h:1:21: warning: missing terminating '"' character
[-Winvalid-pp-token]
-n #define HINTS_JS "
^
1 warning and 3 errors generated.
make[1]: *** [hints.o] Error 1
make: *** [vimb] Error 2

なんだこれ。ヘッダファイルの中で死んでるぞ……
かなり読みたくないし。
っていうかこれsrc/hints.jsそのものじゃね。なんでこれこのままコピペされてヘッダファイルってことになってるの。イミフ。
f:id:haruharu1:20150309204203p:plain
と思ったけど
どうもこれはMac側の問題でシェルスクリプト内でやると

$ echo -n "hoge"
hoge%

はちゃんと動くのに

$ cat hoge.sh
echo -n "hoge"
$ sh hoge.sh
-n hoge

ってなるやつのせいだと思う。なんで気付いたのか自分でもすごい。

$ cat hoge.sh
/bin/echo -n "hoge"
$ sh hoge.sh
hoge%

こうするとうまくいくようです。
なぜかは知らん。とりあえずMacがダメなんだ……

そういうわけで

$ vim src/js2h.sh

で、

echo -n '#define HINTS_JS "'

/bin/echo -n '#define HINTS_JS "'

に置き換えてあげます。

その後……!!

$ make clean
$ make

とやり、成功した(´・∀・`)

$ cd src
$ ./vimb

ねんがんのvim browserが起動したぞ!
f:id:haruharu1:20150309211136p:plain

つかいごこち

よくわからない。いまからあそぶ。

追記

結局全くつかってない。起動後10分触って「これはダメだな!!!!!!!!」と確信した。