** 너무 길고 번역이 재미가 없어 번역을 종료합니다.
CMake 는 이기종 간의 make 파일을 효과적으로 생성할 수 있도록 도와주는 유용한 도구입니다.
본 문서는 http://www.cmake.org/cmake/help/cmake2.6docs.html 를 번역하고 있습니다.
* 영어를 잘 못해서 번역을 하게 되었는데, 이번 번역은 특히나 허접하군요. 전.혀. 참고가 되지 않을 듯 싶습니다. 번역 후 CMake 를 사용하면서 좀 더 실용적인 지식이 풍부해지면 다시 블로깅을 해야 할 것 같습니다.
Master Index
* 이름
* 사용법
* 설명
* 옵션
* 생성기
* 명령어
* 속성
* 전역 속성
* 폴더 속성
* 타겟 속성
* 테스트 속성
* 소스 파일 속성
* 표준 CMake 모듈
* 정책
* 변수
* 행동을 변화시키는 변수
* 시스템을 설명하는 변수
* 언어 변수
* 빌드 제어 변수
* 제공 정보 관련 변수
이름
cmake - Cross-Platform Makefile Generator(이기종 makefile 생성기)
사용법
cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
설명
'cmake' 실행파일은 CMake 의 커맨드 라인 인터페이스로써 프로젝트 설정을 만들어 내기 위해 사용합니다. 프로젝트 설정은 보통 -D 옵션과 함께 커멘드라인으로 명시하도록 되어 있습니다. -i 옵션은 이러한 설정을 하나씩 적용할 수 있도록 도와줍니다.
CMake 는 이기종 빌드 시스템 생성기 입니다. 프로젝트는 CMakeLists.txt 라는 이름의 파일에 소스 트리의 각 디렉토리 설정을 포함하여 플렛폼에 독립적인 CMake 리스트의 파일을 작성, 빌드 프로세스를 명시하게 됩니다. 사용자는 CMake 와 자신의 플렛폼에 있는 빌드 도구를 사용하여 빌드 시스템을 생성합니다.
옵션
-C <initial-cache>
미리 로드되는 스크립트에 케쉬를 할당합니다.
cmake 가 비어있는 빌드 트리에서 처음 실행되었을 때, CMakeCache.txt 파일을 생성하고, 프로젝트를 위한 기본 설정값을 넣게 됩니다. 이 옵션은 기본 설정값에 사용되는 파일의 케쉬를 설정합니다. 로딩된 엔트리는 프로젝트의 기본 값보다 우선순위가 높습니다. CACHE 옵션을 사용한 SET 커멘트 를 포함하고 있는 CMake 스크립트가 사용됩니다.
-D <var>:<type>=<value>
cmake 케쉬 엔트리를 생성합니다.
cmake 가 비어있는 빌드 트리에서 처음 실행되었을 때, CMakeCache.txt 파일을 생성하고, 프로젝트를 위한 기본 설정값을 넣게 됩니다. 로딩된 엔트리는 프로젝트의 기본 값보다 우선순위가 높습니다. 이 옵션을 사용하여 원하는 설정을 반복적으로 케쉬에 넣을 수 있습니다.
-U <globbing_expr>
CMake 케쉬에서 매칭되는 엔트리를 지웁니다.
이 옵션은 CMakeCache.txt 파일에서 하나 이상의 변수를 삭제할 때 사용하며 * 와 ? 표현식을 지원합니다.(역주. * 는 어떤 문자열을 의미하고 ? 는 어떤 문자를 의미합니다. *.txt 는 확장자가 .txt 인 모든 파일을 의미하고 Test?.txt 는 Test 로 시작하고 한글자 어떤 문자가 나오고 확장자가 .txt 인 모든 파일을 의미하는 것이죠) 이 옵션을 반복적으로 사용하여 여러개의 케쉬 엔트리를 삭제할 수 있습니다.
이 옵션을 사용하여 CMakeCache.txt 파일이 아무런 동작도 하지 않도록 할 수도 있습니다.
-G <generator-name>
makefile 생성기를 명시합니다.
CMake 는 사용자의 플렛폼에 있는 다중 빌드 시스템을 지원합니다. makefile 생성기는 각 빌드 시스템마다 설정 가능합니다. 가능한 생성기의 이름은 생성기 섹션에 명시되어 있습니다.
-Wno-dev
개발자 경고를 끕니다.
CMakeLists.txt 파일 제작자의 경고를 끕니다.
-Wdev
개발자 경고를 킵니다.
-E
CMake 명령 모드입니다.
플렛폼 독립적으로, CMake 는 모든 시스템에서 사용할 수 있는 명령어 리스트를 제공합니다. -E 로 실행하면 사용법을 알려줄 것입니다. 커멘드에서는 다음과 같은 명령어가 입력 가능합니다: chdir, copy, copy_if_different, copy_directory, compare_files, echo, echo_append, environment, make_directory, md5sum, remove_directory, remove, tar, time, touch, touch_nocreate, write_regv, delete_regv, comspec, create_symlink
-i
마법사 모드를 실행합니다.
마법사 모드는 GUI 없이 cmake 를 실행합니다. 사용자는 프롬프트에서 프로젝트 설정관련 물음에 대해 답을 해 주어야 합니다. 답변 내용은 cmake 케쉬 값으로 설정 및 사용됩니다.
-L[A][H]
케쉬되지 않은 변수를 리스트 업합니다.
케쉬에 등록된 변수의 리스트는 CMake 가 실행하게 되고 INTERNAL 혹은 ADVANCED 설정되지 않은 CMake 케쉬의 변수를 리스트업 합니다. 이 옵션은 현재 CMake 설정을 효과적으로 보여주며 -D 옵션으로 바꾼 후에 확인을 위해 사용할 수 있습니다. 변수를 바꾸는 것은 여러 변수들이 생성되는 결과를 가져옵니다. 이 옵션에 A 를 사용하는 경우 advanced 변수도 볼 수 있게 됩니다. 마찬가지로 H 를 사용하는 경우 각 변수의 도움말을 볼 수 있을 겁니다.
-N
보기 모드.
오직 케쉬만을 로드합니다. 설정을 실행하거나 스텝을 생성할 수 없습니다.
-P <file>
스크립트 모드를 수행합니다.
입력한 cmake 파일(CMake 언어로 쓰여진)을 수행합니다. 설정이나 생성한 스텝이 없는 경우 수행하고 케쉬는 수정하지 않습니다. 만약 변수가 -D 를 사용하여 정의되었다면, -P 인지 전에 수행되어야만 합니다.
--graphviz=[file]
graphviz 를 사용하여 의존성 그래프를 생성합니다.
프로젝트에 의존된 모든 라이브러리와 실행파일을 포함하여 graphviz 입력 파일을 생성합니다.(역주: graphviz 는 이전에 cppdoc 를 사용할 때 만난 도구인데요, 클래스의 그래프를 그리는 등 오픈소스쪽에서 종종 사용하는 도구로 문서의 그림 및 차트 등을 생성해 내는 도구입니다.)
--system-information [file]
현재 시스템의 정보를 뜹니다.
현재 시스템의 다양한 정보를 뜹니다. CMake 프로젝트의 바이너리 트리의 가장 상위에서 실행한다면 추가적으로 케쉬, 로그파일 등의 정보를 함께 생성하게 됩니다.
--debug-trycompile
컴파일 디렉토리를 삭제하지 않습니다.
try_compile 호출로 생성된 파일과 디렉토리를 삭제하지 않습니다. 이 옵션은 try_compiles 가 실패하여 디버깅 하고자 할 때 유용합니다.
--debug-output
cmake 를 디버그 모드로 설정합니다.
--trace
cmake 를 추적 모드로 설정합니다.
역주: 이하 --help 커멘드 생략..
생성기
생략.
다양한 환경의 다양한 빌더들을 지원한다는 내용. MS 의 visual studio 계열, borland 계열, unix system, eclipse 쪽, CodeBlocks 도 지원합니다.
명령어
add_custom_command
생성된 빌드 시스템에 사용자 빌드 규칙을 추가합니다.
일반적으로 사용하게 되는 add_custom_command 의 두 가지 사용 예제에 대해 알아봅니다.첫 번째는, output 에 대한 사용자 정의를 추가하는 것입니다.
add_custom_command(OUTPUT output1 [output2 ...]
COMMAND command1 [ARGS] [args1...]
[COMMAND command2 [ARGS] [args2...] ...]
[MAIN_DEFENDENCY depend]
[DEPENDS [depends...]]
[IMPLICIT_DEPENDS <lang1> depend1 ...]
[WORKING_DIRECTORY dir]
속성
전역 속성
폴더 속성
타겟 속성
테스트 속성
소스 파일 속성
표준 CMake 모듈
정책
변수
행동을 변화시키는 변수
시스템을 설명하는 변수
언어 변수
빌드 제어 변수
제공 정보 관련 변수
태그 : cmake



덧글