そろそろmakeには疲れました
C/C++で書いたプログラムを実際に動くソフトウェアとしてコンパイル→リンクすることを、ビルドといいます。
当然このビルドって結構手間のかかる作業で、書いたソースファイルを一つ一つコンパイルして、できたオブジェクトファイルを依存関係を考慮しながらリンクして、そしてそれぞれの手順の中でもあっちのライブラリを取ってくる、こっちのライブラリをリンクする…
とてもじゃないけど手動ではやっていられません。
なので旧来からC/C++開発をやっている人間は、概ねmakeというツールを使用してビルドを行います。
ただねぇ、、、これねぇ、、、
書きにくいんですよ、Makefileが。
スペースとタブがいちいちここに入らないといけない入っちゃいけない、記載のルールも関数型言語チックで直感的に解りにくい、依存関係も自分で記載しなきゃいけない。。。
IDE使うという手も有るのですが、開発環境が流動的になる想定がある現状それを一つに絞り込むのも難しい。
ということで、makeに変わるビルドツールに関する調査と検討を行いました。
なので旧来からC/C++開発をやっている人間は、概ねmakeというツールを使用してビルドを行います。
ただねぇ、、、これねぇ、、、
書きにくいんですよ、Makefileが。
スペースとタブがいちいちここに入らないといけない入っちゃいけない、記載のルールも関数型言語チックで直感的に解りにくい、依存関係も自分で記載しなきゃいけない。。。
IDE使うという手も有るのですが、開発環境が流動的になる想定がある現状それを一つに絞り込むのも難しい。
ということで、makeに変わるビルドツールに関する調査と検討を行いました。
候補
今回選定の候補となっているのが以下の3つです。
正直テストに使用する単体テストフレームワークとの親和性で行けばBAZELなのかな、とも思っているのですが、他の2ツールのルールの書きやすさも捨てがたい。
何しろ私一人で開発しているわけではないので、メンバーが理解できる形でビルドルールを記載できることは絶対条件になってきます。
そういう意味でもmakeはねぇな、、、ってなったわけですが。。。
正直テストに使用する単体テストフレームワークとの親和性で行けばBAZELなのかな、とも思っているのですが、他の2ツールのルールの書きやすさも捨てがたい。
何しろ私一人で開発しているわけではないので、メンバーが理解できる形でビルドルールを記載できることは絶対条件になってきます。
CMake Kitware社製ビルダー、比較的オーソドックスなテキストファイルでルールを記載するため、ソフトウェア開発経験が浅くても作りやすい、サブフォルダにそれぞれビルドルールファイルを作っておかないといけないことはネック
BAZEL Google社製ビルダー、GoogleTestとの親和性は最も高いと思われる最後発ビルダーだが発展途上のきらいも若干見え隠れする
SCons Steven Knight氏製ビルダー、ビルドスクリプトがPythonのため、古くからLinux使っている人だと分かりやすい
インストール
検討資料兼マニュアルにするので、このあたりの手順から全部書いていきます。
ちなみにCMakeとSConsは先発である分、apt-getで(Linuxに馴染みのない方でも)あっさりインストールできるのは楽ですね。
CMake
ちなみにCMakeとSConsは先発である分、apt-getで(Linuxに馴染みのない方でも)あっさりインストールできるのは楽ですね。
CMake
sudo apt-get install scons
BAZEL
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update && sudo apt install bazel
SCons
sudo apt-get install scons
とりあえず今回はインストールまで、
仮設サーバの設営も終わったし、Jenkinsも息を吹き返したので、CIツールの動作環境検証は今後行っていきます。
それに伴いこれらの調査に関しても出せるノウハウは都度記載していきたいと思います。
0 件のコメント:
コメントを投稿