CMake?

cmake란 cross platform 기반의 프로젝트 전체 빌드 프로세스를 관리해주는 유용한 툴이다. 직접 빌드를 수행하지는 않지만 지정된 OS에 맞는 Make파일 혹은 **솔루션(sln)**파일의 생성을 도와주어 소스코드 빌드를 편리하게 해준다.

Cmake의 장점

  (root)
|- foo.cpp
|- CMakeLists.txt

foo.cpp 라는 소스코드가 하나 있다고 가정하자. 이 소스코드를 각각의 다른 OS에서 빌드할 때, 윈도우즈라면 Visual Studio를, OSX라면 Xcode, Linux라면 Makefile을 이용할것이다. Cmake는 이런 귀찮은 과정을 CMakeLists.txt라는 프로젝트를 정의하는 파일을 하나 만듦으로써, 각 OS에 맞는 Build tool을 파악해 build command만 입력하면 될수 있도록 해준다.

Install

$ sudo apt install cmake 의 명령어를 입력해 간단하게 설치할 수 있다.
$ cmake --version 명령어를 입력해 cmake가 제대로 install 되었는지 확인한다.


Example

1. Configure

main.cpp 라는 파일이 있다고 하면, 같은 폴더 내 ‘CMakeLists.txt’ 라는 파일을 새로 생성 후 아래와 같이 작성한다.

# CMakeListst.txt
cmake_minimum_required(VERSION 3.3)
project (test)
add_executable(test main.cpp)

2. Generate

이제 작성된 CMakeLists.txt를 기반으로 CMake가 native build tool을 생성할 것이다.
커맨드창에 $ cmake .를 입력하면 마지막 줄에 아래처럼 나오며 Makefile이 생성된다.

-- Configure done
-- Generating done
-- Build files have been written to: ...

3. Build

$ make 커맨드를 입력하면 작성된 Makefile에 의하여 foo.cpp -> foo.cpp.o -> foo 의 과정을 통해 executable 파일이 생성된다.