Open Source/cmake

CMake 소개

소혼 2011. 4. 7. 20:47
반응형
[목차로 이동]

http://cmake.org/
cmake는 다양한 빌드 도구들 가운데 하나입니다.
일단 몇개의 빌드 도구들을 나열해보겠습니다.
GNU build system (autotools라고 많이 부릅니다.)
Waf
Scons

CMake도 위에 언급된 툴들과 유사한 기능을 하는 매우 유용한 빌드 도구입니다.



이중 가장 널리 알려져 있고 오래된 autotools는 사실상 리눅스 시스템의 대표적인 빌드 도구이지만, 무척 복잡하다고 생각합니다. - autotools란 하나의 툴을 말하는 것이 아닙니다. autoconf, automake, libtool을 포함합니다. make는 autotools의 하나로 보긴 어려울 것 같습니다.

이에 비해, cmake는 직관적이며 간단한 구조를 갖고 있습니다. 
2006년 경부터 KDE 프로젝트가 CMAKE로 빌드 환경을 전환하기로 결정하면서 CMake의 장점에 대해 조금 언급하였습니다. (http://lwn.net/Articles/188693/)
이 글의 중간쯤을 보시면  Peter Linnell이 생각하는 CMake의 네가지 장점이 나옵니다.

 *. " CMakeLists.txt는 명쾌하다. 파일 하나 추가하기 위해 Makefile.am은 세 곳을 바꾸어야 하지만, CMakeLists.txt에서는 그 파일의 이름을 추가하기만 하면 된다." - 왜 Makefile.am에서는 세군데를 고쳐야 하는지는 모르겠습니다. 하지만 분명 많이 귀찮습니다.
 *  " Speed - 내 리눅스에서 autotools가 Scribus(Peter Linnell의 관리하는 KDE 프로젝트)의 Make를 생성하는데 30 ~ 50초가 소요된 반면, CMake는 단지 5 ~ 7만 소요되었다."
 * "  개발자가 빌드 스크립트에 실수를 했을 때, 훨씬 유용한 에러 메시지를 보여준다. autotools의 에러 메시지는 개발자들을 미치게 만드는 것으로 유명하다."
 * " 훨씬 작은 makefiles, Autotools는 Scribus의 Makefile을 257Kb로 생성한 반면 cmake는 단지 57kb 로 생성한다. ..."

개인적으로는 이 것 외에도 autotools에 대비해서는 많은 장점을 갖고 있다고 생각합니다.
하지만, 후발 주자이다 보니 상대적으로 덜 알려져 있는 것다고 생각됩니다.
최근에 개인적으로 cmake를 많이 쓰다보니 점점 autotools를 사용하는 것은 귀찮아지고 있습니다.
파이어폭스, 크롬이나 안드로이드 같은 프로젝트에서도 cmake를 썼으면 하는 바램까지 듭니다. ^^

현재 CMake는 2.8.4까지 Release 되어 있습니다.(http://www.kitware.com/news/home/browse/CMake)
 
반응형

'Open Source > cmake' 카테고리의 다른 글

[번역] CMake FAQ  (0) 2011.08.18
[CMAKE] File 다루기  (0) 2011.05.30
[cmake] 2. Hello with two files.  (0) 2011.04.12
[cmake] 목차  (0) 2011.04.12
[cmake] 2. Hello  (0) 2011.04.12