CMake の検索結果:

Apache Arrowのビルド

…d debug % cmake .. % make unittest % sudo make install % sudo ldconfig c_glib ビルド手順はc_glib/README.mdに載っている。今回はgithubから取ってきたソースなので、「How to build by users」ではなく「How to build by developers」に従ってビルドする。 c_glibのビルドもほぼc_glib/README.mdの手順通り。 % cd c_g…

CMakeを使ってみた (7) find_packageとpkg_check_modulesによるライブラリ探索

久しぶりにCMakeの話。外部の依存ライブラリがあるC/C++のコードをCMakeでビルドする場合、インクルードパスやライブラリパスを指定する必要がある。パスを直接指定する方法以前書いた。しかし、そこで書いたのはパスやライブラリ名を直接指定するもので、それらがすでに分かっている必要がある。しかし、システムにインストールされたライブラリを使うような場合はそのパスを探し出して指定する必要がある。システムによってインストールされた場所が異なることがあるためだ。Unix系OSでよく使…

CMakeを使ってみた (6) ソース外ビルド

CMakeを使うと、CMakeCache.txtやCMakeFilesなど様々ななファイルやディレクトリが生成される。結果的にプロジェクトのディレクトリが見にくくなりがちだ。そんなときはビルド作業を行うディレクトリを別のディレクトリにするとよい。これをソース外ビルド(out-of-source build)と呼ぶ。例えば、CMakeLists.txtやmain.cppがmyappディレクトリにあるとき、myappにbuildディレクトリを作り、その中でビルドを行うようにしよう…

CMakeを使ってみた (5) 設定ファイルを作る

…定ファイルと言ってもCMakeに対する設定ではなくプログラムに対するものだ。 条件付コンパイルと指定方法 ある程度の規模のプログラムの場合、#ifなどによる条件付コンパイルがあるだろう。 #include <cstdio> int main(){ #if USE_FEATURE_X printf("use feature-x\n"); #else printf("do not use feature-x\n"); #endif return 0; } このコードはUSE_FE…

CMakeを使ってみた (4) ビルドオプション

…使うことができる。 cmake_minimum_required(VERSION 2.8) add_executable(myapp main.cpp) option(USE_FEATURE_X "Use feature x" ON) if(USE_FEATURE_X) add_definitions(-DENABLE_FEATURE_X) endif() optionコマンドの引数はオプション変数名、説明、初期値だ。そして、オプション変数USE_FEATURE_XがONのと…

CMakeを使ってみた(3)ライブラリを作る

…cppからなるとき、CMakeLists.txtは以下のようになる。 cmake_minimum_required(VERSION 2.8) add_library(mylib src1.cpp)デフォルトでは静的ライブラリが作られる。コンパイルのコマンドは変わらないが、その後arとranlibが呼ばれる。 /usr/bin/c++ -o CMakeFiles/mylib.dir/src1.cpp.o -c /home/ws/study-cmake/test/src1.cpp…

CMakeを使ってみた(2)もう少しまともなプロジェクト

…リケーションを作り、CMakeでビルドしてみた。もちろん実際のプロジェクトはもっと複雑で、ソースファイルも複数あるだろうし、各種パスの設定も必要だろう。そこで今回は以下を設定してみる。 デバッグ版ビルドとリリース版ビルドができるようにする コンパイラ・リンカへの基本的な設定を行う インクルードパス (-I) マクロ定義 (-D, -U) ライブラリパス (-L) ライブラリ (-l) デバッグオプションをつける 多くのプロジェクトではデバッグビルドとリリースビルドを用意してい…

CMakeを使ってみた(1)経緯と簡単なアプリケーション

はじめに CMakeを調べた経緯 CやC++でプログラムを書くときは普通何らかのビルドツールを使う。Unix/LinuxならMakeが多いだろう。Makefileにビルド手順を書くわけだ。一方WindowsでVisual Studio(以下VS)を使うときはVS上でビルドの設定を行い、その結果はプロジェクトファイル(.vcproj)に保存される。そのため、Unix/LinuxとWindows両方に対応しようとすると、例えばソースファイルを追加するたびにMakefileとVSの…