Cmake에 관해서 찾아보다가 좋은 블로그 글을 발견했다.
우분투에서 C++ 개발하기 (1) - 컴파일 과정 및 gcc
위 블로그에서 기본적인 상식을 알고가자. gcc를 이용한 컴파일, 라이브러리 이용방법등이 적혀있다.
프로젝트가 거대해지면 라이브러리 경로와 라이브러리 파일등을 입력하는게 매우 번거로워 진다. 이를 편하게 하기 위해 리눅스에서는 Makefile이라는 툴을 쓴다.
Makefile은 빌드에 필요한 스크립트를 텍스트 형식으로 저장한 파일이다.
이 Makefile의 스크립트를 해석하는 프로그램이 make이다.
[타깃 이름] : [타깃에 필요한 파일들]
[타깃 실행 코드]
위와 같은 형태로 작성한다. 아래는 예시이다.
my.o : my.h my.cpp
g++ -c my.cpp
main.o : my.h main.cpp
g++ -c main.cpp
test : my.o main.o
g++ -o test main.o my.o
all : test
clear :
rm -f my.o main.o test
그리고 아래와 같이 실행한다.
make my.o
make all
make rm
...

CMake를 통해 이러한 작업을 간소화할 수 있다. CMake는 사용자가 작성한 스크립트를 해석해서 Makefile을 만들어준다.
make명령이 makefile을 자동으로 인식했던 것 처럼 cmake파일도 CMakeLists.txt.파일을 인식한다.