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 copy ${FROM} ${TO})

     

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

    • ${TARGET}  : 빌드 타겟 (예: add_executable()에 지정된 타겟)
    • ${FROM} : 복사할 원본 파일경로
    • ${TO} : 파일을 복사할 목적지 디렉토리 경로

     

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

     

    예시

    hello.c 파일을 빌드하여 hello라는 실행파일을 생성하고 해당 파일을 "/workspace" 디렉토리에 복사하는 전체 CMakeLists.txt 파일의 예시는 다음과 같다.

    set(TARGET_APP hello)
    
    add_executable(${TARGET_APP} hello.c)
    
    add_custom_command(TARGET ${TARGET_APP} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${TARGET_APP} /workspace/${TARGET_APP})

     

     

     

     

    댓글

    Designed by JB FACTORY