CMake를 이용한 C 언어 프로그래밍: 디렉토리 삭제하기

반응형

개요

본 글에서는 CMake를 이용하여 빌드할 때, 특정 디렉토리를 삭제하는 방법을 소개한다.

 

본 글에서 사용된 환경은 다음과 같다.

  • CMake 실행 및 빌드 환경 : 우분투 리눅스 18.04
  • CMake 버전 : 3.13.2

 

CMakeLists.txt에 디렉토리 삭제 명령문 작성하기

CMakeLists.txt 파일에 add_custom_command() 명령문을 작성하여, 타겟 빌드 시에 특정 디렉토리를 삭제할 수 있다.

add_custom_command(TARGET ${TARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove_directory ${DIR})

 

위 명령문에서 작성자의 의도에 따라 변경될 수 있는 부분은 각각 다음과 같다.

  • ${TARGET}  : 빌드 타겟 (예: add_executable()에 지정된 타겟)
  • ${DIR} : 삭제할 디렉토리 경로

 

위 명령문은 POST_BUILD 옵션을 사용하였기 때문에 빌드가 완료된 후 실행된다. 따라서 빌드가 실패하면 실행되지 않는다.

 

예시

hello.c 파일을 빌드한후 hello_dir이라는 디렉토리를 삭제하는 전체 CMakeLists.txt 파일의 예시는 다음과 같다.

set(TARGET_APP hello) 

add_executable(${TARGET_APP} hello.c) 

add_custom_command(TARGET ${TARGET_APP} POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove_directory hello_dir)

댓글

Designed by JB FACTORY