Open Source/cmake

[CMAKE] File 다루기

소혼 2011. 5. 30. 21:24
반응형
[목차로 이동]

CMAKE에서 파일과 폴더를 다루는 방법입니다.
특히 GLOB을 활용하면 파일 목록을 손쉽게 가공할 수 있습니다.

주의할 점은 FILE을 다루는 함수들은 cmake를 수행할 때 이루어진다는 점입니다.
헤더를 설치하는 등의 작업을 위해서는 INSTALL을 사용합니다.









file(WRITE filename "message to write"... )
file(APPEND filename "message to write"... )
file(READ filename variable [LIMIT numBytes] [OFFSET offset] [HEX])
file(STRINGS filename variable [LIMIT_COUNT num]
       [LIMIT_INPUT numBytes] [LIMIT_OUTPUT numBytes]
       [LENGTH_MINIMUM numBytes] [LENGTH_MAXIMUM numBytes]
       [NEWLINE_CONSUME] [REGEX regex]
       [NO_HEX_CONVERSION])

file에 메시지를 쓴다. 만약 파일이 없으면 파일을 생성한다. 파일이 생기는 위치는 소스 디렉토리를 기준으로 한다.

예제) CMakeLists.txt
cmake_minimum_required(VERSION 2.8) FILE(WRITE "bada" "first message\n") FILE(APPEND "bada" "second message\n") FILE(APPEND "android" "third message\n")
 
위 예제를 실행하면, bada라는 파일과 android라는 파일이 생기고 위에 지정한 메시지가 출력된다.

file(GLOB variable [RELATIVE path] [globbing expressions]...)
variable 변수에 expression에 부합되는 파일들을 찾아 리스트로 넘겨준다.

예제)
cmake_minimum_required(VERSION 2.8)
 
FILE(GLOB CPP_FILES "*.cpp")
 
MESSAGE("${CPP_FILES}")
 
기타 다른 옵션들. 
file(GLOB_RECURSE variable [RELATIVE path]
       [FOLLOW_SYMLINKS] [globbing expressions]...)
file(REMOVE [file1 ...])
file(REMOVE_RECURSE [file1 ...])
file(MAKE_DIRECTORY [directory1 directory2 ...])
file(RELATIVE_PATH variable directory file)
file(TO_CMAKE_PATH path result)
file(TO_NATIVE_PATH path result)
file(DOWNLOAD url file [TIMEOUT timeout] [STATUS status] [LOG log])
반응형

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

CMake build with ninja  (1) 2012.09.25
[번역] CMake FAQ  (0) 2011.08.18
[cmake] 2. Hello with two files.  (0) 2011.04.12
[cmake] 목차  (0) 2011.04.12
[cmake] 2. Hello  (0) 2011.04.12