CMake
CMake(Cross Platform Make)는 멀티플랫폼으로 사용할 수 있는 Make의 대용품을 만들기 위한 오픈소스 프로젝트로 키트웨어와 인사이트 콘솔티엄에서 만들었다. 스스로 기존의 Make의 과정을 수행하지는 않고 지정한 운영 체제에 맞는 Make 파일(마이크로소프트 윈도에서는 솔루션 파일)의 생성만을 수행하기 때문에 Meta Make라고도 불린다. 가장 큰 이점은 유닉스 계열 OS 중심이던 기존의 Make와는 달리 한번 작성해 두면 유닉스 계열은 물론, 마이크로소프트 윈도 계열의 프로그래밍 도구도 지원한다는 것이다.
Category
- CMakeLists.txt
- CMake:Variables
- CMake:Modules
- CMake:Generators
- CMake:Policies
- CMake:Example
- CMake:Troubleshooting
Test
Package
Compatibility across different CMake versions
Libraries
Generators
The following generators are available on this platform:
Visual Studio 15 [arch] | Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". |
Visual Studio 14 2015 [arch] | Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". |
Visual Studio 12 2013 [arch] | Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". |
Visual Studio 11 2012 [arch] | Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". |
Visual Studio 10 2010 [arch] | Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". |
Visual Studio 9 2008 [arch] | Generates Visual Studio 2008 project files. Optional [arch] can be "Win64" or "IA64". |
Visual Studio 8 2005 [arch] | Generates Visual Studio 2005 project files. Optional [arch] can be "Win64". |
Visual Studio 7 .NET 2003 | Deprecated. Generates Visual Studio .NET 2003 project files. |
Borland Makefiles | Generates Borland makefiles. |
NMake Makefiles | Generates NMake makefiles. |
NMake Makefiles JOM | Generates JOM makefiles. |
Green Hills MULTI | Generates Green Hills MULTI files (experimental, work-in-progress). |
MSYS Makefiles | Generates MSYS makefiles. |
MinGW Makefiles | Generates a make file for use with mingw32-make. |
Unix Makefiles | Generates standard UNIX makefiles. |
Ninja | Generates build.ninja files. |
Watcom WMake | Generates Watcom WMake makefiles. |
CodeBlocks - MinGW Makefiles | Generates CodeBlocks project files. |
CodeBlocks - NMake Makefiles | Generates CodeBlocks project files. |
CodeBlocks - Ninja | Generates CodeBlocks project files. |
CodeBlocks - Unix Makefiles | Generates CodeBlocks project files. |
CodeLite - MinGW Makefiles | Generates CodeLite project files. |
CodeLite - NMake Makefiles | Generates CodeLite project files. |
CodeLite - Ninja | Generates CodeLite project files. |
CodeLite - Unix Makefiles | Generates CodeLite project files. |
Sublime Text 2 - MinGW Makefiles | Generates Sublime Text 2 project files. |
Sublime Text 2 - NMake Makefiles | Generates Sublime Text 2 project files. |
Sublime Text 2 - Ninja | Generates Sublime Text 2 project files. |
Sublime Text 2 - Unix Makefiles | Generates Sublime Text 2 project files. |
Kate - MinGW Makefiles | Generates Kate project files. |
Kate - NMake Makefiles | Generates Kate project files. |
Kate - Ninja | Generates Kate project files. |
Kate - Unix Makefiles | Generates Kate project files. |
Eclipse CDT4 - NMake Makefiles | Generates Eclipse CDT 4.0 project files. |
Eclipse CDT4 - MinGW Makefiles | Generates Eclipse CDT 4.0 project files. |
Eclipse CDT4 - Ninja | Generates Eclipse CDT 4.0 project files. |
Eclipse CDT4 - Unix Makefiles | Generates Eclipse CDT 4.0 project files. |
How to install
Official
$ curl -L -O https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0-Linux-x86_64.sh
$ chmod +x cmake-3.18.0-Linux-x86_64.sh
$ sudo ./cmake-3.18.0-Linux-x86_64.sh --skip-license --prefix=/usr/local
또는 한 줄에:
$ curl -s -L "https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0-Linux-x86_64.tar.gz" | tar vxzf - --strip-components=1
Ubuntu cmake 3.x
Ubuntu의 공식 저장소에 있는 cmake는 3.x 버전이 아니다. 버전을 올리고 싶다면 아래와 같이 저장소를 추가하면 된다.
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:george-edison55/cmake-3.x
$ sudo apt-get update
$ sudo apt-get install cmake cmake-data
Debug build
Build command
cmake ..
## Debug, Release 빌드 방법
cmake --build . --config Debug
cmake --build . --config Release
## 설치 방법
cmake --build . --target install
CMakeLists.txt
파일 있는 디렉토리에서 이동 없이 빌드하는 방법:
cmake -B ./cmake-build-release -DCMAKE_BUILD_TYPE=Release
cmake --build ./cmake-build-release --config Release
Convert
- Converters from other buildsystems to CMake
- Stackoverflow - Tutorial for converting Autotools to CMake
- autoconf, autotools, automake 프로젝트를 CMake 로 전환
See also
Favorite site
- CMake website
- Wikipedia (en) CMake에 대한 설명
- CMake 스크립트 만들기 1
- Development/Tutorials/CMake (ko)
- Teaching CMake’s Eclipse Plugin C++11
Turorial & Guide
- CMake Tutorial
- CMake Useful Variables
-
CMake Wiki: FAQ-> CMake Wiki: FAQ - CMake Tutorial #01. 정의/개념
- [추천] KLDP: CPK 2.3.5 사용방법 대한 설명
- cmake에서 외부 또는 내부 프로젝트 연동하기
- cmake에서 정적 라이브러리를 하나로 합치기
- CMake 소개 및 사용방법
- [추천] CMake Tutorial #2 - 주요 명령어 2
- CMake Useful Variables
- A list of common CMake antipatterns
- Development/Tutorials/CMake (ko)
- [추천] Cmake를 이용한 Version 관리
- [추천] cmake에서 정적 라이브러리를 하나로 합치기
- cmake를 이용하여 gtest 사용하기
- [추천] An Introduction to Modern CMake · Modern CMake 3