Skip to content

CMake

CMake(Cross Platform Make)는 멀티플랫폼으로 사용할 수 있는 Make의 대용품을 만들기 위한 오픈소스 프로젝트로 키트웨어와 인사이트 콘솔티엄에서 만들었다. 스스로 기존의 Make의 과정을 수행하지는 않고 지정한 운영 체제에 맞는 Make 파일(마이크로소프트 윈도에서는 솔루션 파일)의 생성만을 수행하기 때문에 Meta Make라고도 불린다. 가장 큰 이점은 유닉스 계열 OS 중심이던 기존의 Make와는 달리 한번 작성해 두면 유닉스 계열은 물론, 마이크로소프트 윈도 계열의 프로그래밍 도구도 지원한다는 것이다.

Category

Test

Package

Compatibility across different CMake versions

Libraries

  • ios-cmake - A CMake toolchain file for iOS, watchOS and tvOS C/C++/Obj-C++ development.

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

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..

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

See also

Favorite site

Turorial & Guide

Performance

Article

References


  1. Introduce_cmake.pdf 

  2. Cmake-tutorials-major_command_02.pdf 

  3. Modern-cmake.pdf