Introduction
クロスプラットフォームのアプリケーションを作成するとき、CMakeは鉄板中の鉄板ですが、魔術のようなCMakeLists.txtを書くのはうんざりします。
Visual Studioならプロパティからヘッダーの参照、ライブラリの参照、という感じでスラスラ作業できますが。
そんな中クロスプラットフォームのコンソールアプリを作る必要に駆られたのでメモ。
ソースは下記になります
といっても、ソースそのものは本質では無く、CMakeLists.txtとboostの使い方が一番の肝。
特に、boostのパスを外部から指定してビルドするのがターゲットになります。
Explanation
まずは、CMakeLists.txt
1 | cmake_minimum_required(VERSION 3.9.0) |
色々コメントがありますが、add_executableで実行ファイルを指定しているのと、include_directoriesでboostのパスを指定するのが肝。
特に、include_directoriesが無いと、cmakeコマンドにboostのパスを渡してもビルドに失敗します。
次に、main.cpp
1 |
|
円周率を表示するだけです。
Build&Run
ビルドします。
CMakeLists.txtとmain.cpが同じ階層にあるものとし、カレントディレクトリがCMakeLists.txtと同じだとします。
また、CMakeのパスは通っているものとします。
1 | $ mkdir build |
上のような感じです。
Conclusion
意外とboost+CMakeの簡単なアプリという組み合わせが無くて困りました。
ましてや、boostのパスを外部から指定するタイプの完全なサンプルが無かったのです。
インストール済みのboostをfindするのはあったのですが。
Source Code
https://github.com/takuya-takeuchi/Demo/tree/master/CMake/01_CMake1