openFrameworks 0.11.0がリリースされましたね!
公式にVSCodeサポートが追加されて、MacでもWindowsでも嬉しいアップデートになったんじゃないかと思います。
さて、公式サイトのdownloadページにあるリリース版のoFをダウンロードして使ってる方はすんなり新バージョンのPGが使えたと思いますが、GitHubからoFをcloneして使っている方だと、これまでの方法でビルドするといざプロジェクトを作ろうとしたときにエラーを吐くようになってしまっているのではないかと思います。
(これまでの方法とはこれのつもり)
git submodule update --init
cd apps/projectGenerator/frontend
npm install
npm run build:osx
この記事では、macos上でちゃんと使えるoF0.11.0時代のProjectGeneratorをビルドする方法を紹介します。
前提
いきなりアレですが、特に興味や必要がない人はリリース版のzipをDLして、PGだけコピーしてきてください。
環境
macos 10.14.6
oF(tag 0.11.0) b674f7ec1
PG(記事執筆時点での最新版) 5f9f625
TL;DR
- submoduleがupdate済みであること(ProjectGeneratorが
OF_ROOT/apps/projectGeneratorにclone済みであること) -
OF_ROOT/scripts/osx/download_libs.shが実行済みであること -
OF_ROOT/libs/openFrameworksCompiled/lib/osx/openFrameworks.aが存在すること -
OF_ROOT/libs/openFrameworksCompiled/lib/osx/openFrameworksDebug.aが存在すること
を確認のうえ下記を実行
※OF_ROOTは環境によって変えてください_
cd OF_ROOT
wget https://gist.githubusercontent.com/nariakiiwatani/f3f18a0587f214c4ec5c8c889d51edda/raw/a25e785d7622f895b2122a3c01a3299cbc3237f6/BuildPG.sh
chmod +x BuildPG.sh
./BuildPG.sh
rm BuildPG.sh
(要はちょっと編集したBuildPG.shを実行するだけです)
これ以下は検証時の四方山話
projectGenerator/scripts/osx/BuildPG.sh というファイルがあります。
これを叩くとビルドできるのかと思いきや、エラーが出ます。
ちなみにreadmeにはないので、こいつが果たして直接叩くことを想定されてるスクリプトなのかは謎です。
cd ProjectGenerator
scripts/osx/BuildPG.sh
clang: error: no such file or directory: 'ほにゃほにゃ/libs/openFrameworksCompiled/lib/osx/openFrameworksDebug.a'
Command Ld failed with a nonzero exit code
スクリプトの中を見ると、PGのコマンドライン版をリリースビルドしようとしているようなので、なんでデバッグ版のライブラリが求められてるのかわかりませんがとにかくこれで失敗します。
commandLine/commandLine.xcodeprojをXcodeからビルドしようとしても同じエラーが起こるので、多分Dependencyの設定まわりのバグ?という気がします。(Issue建てました)
で、適当なプロジェクトをビルドするとかしてopenFrameworksDebug.aを作って、参照されてるパスにコピーして再度実行しようとしてもやっぱりダメでした。
どうやらBuildPG.sh内で毎回新たにoFをGitHubからcloneしてくるようになっているようで、それが原因のようです。
ということで、いちいちcloneさせずにすでにあるoFを使うように修正したものがTL;DRに書いたものです。
以上!
あとはこの記事を参照してoF on VSCodeライフを楽しんでください。
VSCodeでビルドできるプロジェクトがサクッと作れるのは本当に嬉しい。
あと地味だけどmain.cppをGLのバージョンだとかno windowだとかで指定できて作り変えてくれるのも地味に便利そう。必要になるたびに毎回ググってたので・・・。
ちなみに、
- オプションでは
Emscriptenが選べるけど未対応っぽい?普通にXcodeのmacアプリをビルドするプロジェクトが作られた。 -
Git Ignoreという選択肢もあるけどなんなんだろう・・・。これも普通にXcodeのプロジェクトが作られた。