CMake で C ファイルのビルド環境をつくる
macOS 環境で CMake を試してみる。
CMake を使用することで環境に依存しないビルドのための作業を自動できる。
具体的にはソースファイルから環境によってことなるビルド構成ファイル(Makefile, Xcode プロジェクト)を作成できる。
関連
CMake インストール
brew 経由でインストールする
$ brew install cmake
インストールされたかを確認する
$ cmake --version cmake version 3.15.4
テスト用のファイルを用意する
今回は以下のファイルでテストする
main.c
#include <stdio.h> #include "sub.h" int main() { func(); return 0; }
sub.h
#ifndef ___SUB_H_ #define ___SUB_H_ extern void func(); #endif // ___SUB_H_
sub.c
#include <stdio.h> void func() { printf("this is func.\n"); }
CMakeList.txt
cmake_minimum_required(VERSION 3.1) # 要求する最低限の CMake バージョン project(test C) # プロジェクト名とプログラミング言語の指定 add_executable(test_app main.c sub.c) # 実行ファイル名とソースファイルの指定
CMake を実行する
ビルド用のフォルダを作成する。
$ mkdir build
この時点でフォルダ構成はこうなっている。
- フォルダ
- CMakeLists.txt
- main.c
- sub.h
- sub.c
- build/
先ほど作成した build
フォルダに移動して CMake を実行する。
cmake ..
は上の階層にある CMakeLists.txt
を参照することを意味する。
$ cd build
$ cmake ..
成功すると build
フォルダ内に CMake の成果物ができる。
私の環境の場合は Makefile
ができた。
もし Xcode のプロジェクトファイルを生成したい場合は以下にする。
$ cmake .. -G Xcode
これで xcodeproj
が生成される。