Target system에서 빌드할 수 있도록 도와주는 오픈 소스 소프트웨어이다. 빌드를 직접 하는것이 아니라 빌드에 필요한 커맨드를 생성해 준다.
Hardware architecture에 관계없이 c언어로 작성된 코드를 빌드, 테스트 그리고 설치를 도와주는 오픈 소스 소프트웨어이다.

CMake install
$ sudo apt install cmake
get opnecv source code in github(https://github.com/opencv/opencv)
make directories and move pwd
mkdir build
mkdir install
cd build
run cmake command
빌드에 필요한 명령어들을 생성하는 과정을 수행한다.
cmake_list.txt 파일이 존재하는 최상의 디렉터리의 경로를 지정해준다.
$ cmake ../opencv/
debug mode
$ cmake -DCMAKE_BUILD_TYPE=Debug ../opencv/
release mode
$ cmake -DCMAKE_BUILD_TYPE=Release ../opencv/
select build system(generator)
$ cmake -GNinja ../opencv/
set target directory 설치 경로를 지정할 수 있다. 같은 패키지의 다른 버전을 사용할 때 꼬일 수 있는 문제를 방지하며, 삭제도 디렉터리만 지우는 방법으로 편리하게 할 수 있다.
$ cmake -DCMAKE_INSTALL_PREFIX=../install ../opencv/
$ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../install ../opencv/
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install ../opencv/
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install \
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules -DBUILD_opencv_legacy=OFF ../opencv/
cmake 명령을 수행하면 현재 디렉터리 안에 많은 파일들이 생성되는 것을 확인 할 수 있다.
makefile: make build 시스템이 사용할 수 있는 명령어들을 기록해 둔 파일이다.
$ make or parallel build (병렬 빌드)$ make -j1~n모든 CPU 자원을 사용해서 build 한다.$ sudo make install