Kouhei Sutou
kou****@clear*****
2014年 8月 13日 (水) 22:52:18 JST
須藤です。 In <53EB6****@gmail*****> "[groonga-dev,02615] Re: お願い: Rroongaのリリース" on Wed, 13 Aug 2014 22:22:14 +0900, hiroshi hatake <cosmo****@gmail*****> wrote: > ひと通りこちらではクロスコンパイルの手順を踏んでクロスコンパイルが出来ま > した。 おぉ! > 一つはクロスコンパイル用のGroongaをcleanするRake taskがないことです。 > (もしくは他に良いやり方がある?) あぁ、ないですね。 > $ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.2 cross > RROONGA_USE_GROONGA_X64=true clean native gem > した後にx86向けのクロスコンパイルを行うと > $ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.2 cross clean native gem > > リンカエラーで落ちてしまいます。 > $ rm -rf vendor/local > した後にもう一度 > $ bundle exec rake RUBY_CC_VERSION=1.9.3:2.0.0:2.1.2 cross clean native gem > すれば通ります。 > > これを毎回やるのもなぁというところです。それを行うRake taskを作れば少し > は楽になるんでしょうか…。 私はアーキテクチャー毎に別のワーキングディレクトリーでビルド していたのでした。。。 rake cleanでvendor/も削除するようにするのがいいんじゃないか なぁと思いました。 > 二つ目は、クロスコンパイルを行うホストへLatestGroongaVersion::VERSIONの > Groonga(今現在では 4.0.4)がインストールされていると、PkgConfigではホス > トのGroongaを見に行ってしまい、 ... > で止まってしまいます。 > > こちらは、ext/groonga/extconf.rbを見に行った所、 > PkgConfig.have_packageを使って判定している箇所が怪しそうでした。 > クロスコンパイルを行う時はvendor/localへgroonga-(x86|x64)をダウンロード > してくるように書かれているので > win32? #=> trueの時はvendor/localにhave_local_groonga?がtrue > となるかどうかを先にチェックしたほうが良さそうです。 そうですね! > 以上の事を試してみたパッチ > https://github.com/cosmo0920/rroonga/compare/fix-for-cross-compile-win32 > を書いてみたのですが、 > 直接masterにコミットするのもどこか違う気がしたのでメールしました! ありがとうございます! clean:groongaの方はCLEAN << vendor_dirで十分だと思います! pkg-configの方はそれでいいです! -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/