ݺߣ

ݺߣShare a Scribd company logo
Cmake소개cross-platform build system Աٴǰ2010-06-08깶명관
CMakeKitware Inc.오픈소스/ BSD 라이선스빌드 시스템 제너레이터
지원 플랫폼운영체제Linux, *BSD, Unix, Mac OS X, MS Windows빌드 시스템Makefile(Unix, NMake, Borland, Watcom, MinGW, MSYS, Cygwin) Visual Studio 6, 7, 8, 9, 10Kdevelop, Eclipse, XCode, Code::Block
빌드 시스템
빌드 시스템 제너레이터빌드 시스템에 독립적인 설정파일에 빌드과정을 기술하고,특정 빌드 시스템의 프로젝트 설정을 생성(Generate)한다.
빌드 과정CMakeLists.txtCMake추가Native Build System.vcproj/makefile/etcNative Build ToolsVisual Studio/Eclipse/KDevelop/etc기존Excutables/Libraries.exe/.dll/.lib/.a/.so/.dylib
왜?프로젝트 구성이 특정 빌드 시스템으로부터 독립다양한 빌드 시스템의 설정을 통합관리복잡한 빌드 환경을 쉽게 관리단순하고 직관적인 문법유연하고 확장성이 뛰어남
한계직접 Make를 수행하지 않으므로대상 네이티브 빌드 시스템이 가지는 한계를 넘지 못함
스크립트 문법COMMAND(args...) # 변수/리스트SET(Foo a b c)COMMAND(${Foo})COMMAND(a b c) # 분기IF(var)    SOME_COMMAND(...) ENDIF(var)  # 반복FOREACH(f ${VAR}) MESSAGE(${f}) ENDFOREACH(f)
데모 : hello, World
데모 : static lib
KDE 사례 Why the KDE project switched to CMake -- and how 가장 큰 FOSS(Free and Open Source Software)프로젝트 중 하나1200명 이상의 참여 개발자4백만 줄이 넘는 소스10만 명 이상의 사용자를 위한 80가지 언어 지원매일 300번 이상의 커밋
빌드 시스템으로 Autotools를 사용전체구조를 이해하기 어려워 Autohell이라 불리움SCons(파이썬 기반 빌드 툴) 검토SCons는 대형 프로젝트에 적용 할 만큼 성숙하지 못함특히 Linux가 아닌 플랫폼에서 문제가 됨CMake성공적으로 진행돼 KDE4 버전부터 정식 적용
CMake를 사용하는 프로젝트Allegro libraryArmadillo - linear algebra libraryAvidemuxawesome - window managerBlender 3DBoost C++ LibrariesBullet Physics EngineChickenChipmunk physics engineclangConkyDoomsday EngineDrishtiFennelGammuGDCMGmshHypertablehuginIGSTKInsight Segmentation and Registration ToolkitKDE (starting with version 4)KicadLMMSLLVMMariaDBMiKTeXMuseScoreMySQLOGREOpenSceneGraphOpenCVOpenFLUIDParaViewPopplerPvPGNQuantum GISRaw TherapeeRemRyzom CoreScribusSecond LifeSuperTuxSlicerStellariumThe Visualization ToolkitVXL
Converters http://www.cmake.org/Wiki/CMake#Converters_from_other_buildsystems_to_CMakeautomake/autotools/autoconfam2cmake (requires Ruby)Alternative Automake2CMake (requires PHP)Converting autoconf testsQmakeqmake converter (requires Ruby)Visual Studiovcproj2cmake.rb (requires Ruby)vcproj2cmake.ps1(PowerShell version)
- 끝 -

More Related Content

CMake 소개