visual studio 2013 で openframeworks をビルド

openframeworks を visual studio 2013 でビルドする際のメモ.
現状だと openframeworks は,vs2012 しかサポートしていないのに,なぜ vs2013 でビルドしようとするのか・・・
それは,Rx.cpp を使いたいからです!!
Rx.cpp って何じゃらほい?ってところは,おいておいて,そんなわけで,vs2013 でビルドしたいと思います.

vs2013 用のパッケージをダウンロード

冒頭でも触れたとおり,公式HPからダウンロードできる openframeworks は vs2012 用です.
ただ,github で,vs2013 用のソースコードを公開してくださっている方がおられるので,そこからダウンロードしたものを使用します.

liquidzym/openFrameworks at VS2013 · GitHub

上記 github から VS2013 ブランチをクローンしてきます.
ブランチを指定して,クローンしてくる方法は下記です.

git clone -b ブランチ名 リポジトリアドレス

ビルド

ビルドの前に

openFrameworks\libs\openFrameworksCompiled\project\vs フォルダに移動し,そこにある openframeworks.sln を開いてビルドするわけですが,そのままではプロジェクトが読み込めません.
なんやかんやしてたら,こんなエラーが出てきました.

f:id:rinor:20150702024332p:plain

どうやら kinect 関連のプロジェクトが読み込めていないみたいです.
なので,同フォルダにある openframeworks.vcxproj をテキストエディタTerapad etc.) で開き,kinect 関連の記述を削除します.
Kinect で検索してヒットした箇所を削除したら大丈夫です・・・たぶん.
Kinect 使いたい人は,vs2012 でビルドするか,自前で実装するか,unity に乗り換えましょう.

やっとこさビルド

したらエラーが出るんだな!これが!!
エラーの箇所は,ofVbo.cpp の

if(!vaoChecked){
        supportVAOs = ofGetGLProgrammableRenderer();// || glewIsSupported("GL_ARB_vertex_array_object"); <- this should work but has false positives on some cards like emulation in vm's
        vaoChecked = true;
    }

ここ. ここをまるっとコメントアウトしてやると,エラーは消えてビルドが通ります.
エラーの箇所がシェーダまわりくさいので,ちょっと不安が残りますが,まぁ,ヴィジュアル的にそこまでこったことはしないので,まぁいいか.
というわけで,あとは,apps/myApps 以下にプロジェクトを作っていけば,vs2013 & openframeworks で,開発することができます.

これで,Rx.cpp が試せる!!