2018/05/17

[android][ndk]MbedTLSをビルドしてみよう (4 挫折)

久々に挫折した・・・。
いや、「久々に挫折した」という記事を書きます。


前回からも修正を続け、よくわからないなりにMbedTLSの.aファイルを作ることができた。
それで終わらせれば良かったのだが、もともとは、複数のライブラリを使うライブラリがあるので、それをAndroid Studioからビルドしたい、ということだったのを思い出した。


MbedTLSだけのとき、build.gradleに-Dで設定をすることでビルドができていた。
それをset()で置き換えられるのであればよかったのだが、それは失敗している。

となると、他のライブラリをビルドするときにも、同じbuild.gradleの影響下で行うならば、同じ設定を使うことになる。
それは、まずい。
もしかしたら問題ないのかもしれないが、不安要素は残しておきたくない。

それを回避してできるように、ああでもないこうでもないと数日やっていたのだが、さすがに時間を掛けすぎている。
Android Studioを捨てれば、Makefileでビルドはできているので、そんなに難しいことはないだろう。



という流れで、「今回はこれで挫折して終わらせ、MakefileでAndroid用にビルドする」のが無駄が少なかろうと判断したのだ。
時間ができたらやり直そう、とは思うが・・・まあ、そういうのって、やらんよね。


ただ、まだ回避方法はあると思っている。

たとえば、今はMbedTLSに入っているCMakeLists.txtをそのまま使っているけど、それをコピーして、build.gradleに設定しないと有効にならなかった設定を編集してしまっておく、とか。


なぜやらなかったかといえば、正攻法ではない気がしたからだ。
しかし、正攻法ではない、というのは気分的なもので、実はそうするのが普通なのかもしれん。
ライブラリがアップデートされたときに、コピー&編集したCMakeLists.txtへの反映を忘れそうだから嫌だ、というだけかもしれない。


判断ができないのは、cmakeに詳しくないからだ。
付け焼き刃の知識で逃げようとしているのも、cmakeに詳しくないからだ。

では、cmakeを覚える気力があるかというと・・・無い。
なんだか、暗黙のルールが多い感じがして、気力が湧かないのだ。
まあ、そんなことをいえばmakeだって同じようなものかもしれないが、同じようなものを2つ覚えるには歳を取り過ぎたのだ。


という言い訳をして、今回は挫折した、で終わらせてもらおう。

1 件のコメント:

  1. build.gradleに書かないと動かなかったのは、CMakeLists.txtにset()で書いていたためでした。
    option()を使えば動きました。
    なんで私はset()を使ったんだろう・・・。

    返信削除

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。