CMake 명령 기능

1345 단어
CMake 스크립트의 다른 위치에서 호출할 수 있는 함수를 정의합니다.
function([arg1 [arg2 [arg3 ...]]])     COMMAND1(ARGS ...)     COMMAND2(ARGS ...)     ...
endfunction()
 
함수 이름은 이고 매개 변수 이름은arg1arg2arg3(...)입니다.함수 내의 명령은 함수가 호출될 때까지 실행됩니다.여기서 ARGC 변수는 함수에 전달되는 매개변수 개수를 나타냅니다.ARGV0, ARGV1, ARGV2는 함수에 전달되는 실제 매개변수를 나타냅니다.ARGN은 마지막 예상 매개 변수를 초과하는 매개 변수 목록을 나타냅니다. 예를 들어 함수 원형 설명 시 하나의 매개 변수만 받아들인다면 함수를 호출할 때 함수에 전달되는 매개 변수 목록에서 두 번째 매개 변수(있다면)부터 ARGN에 저장됩니다.
테스트 인스턴스:
cmake_minimum_required(VERSION 2.8)



project(ArgumentExpansion)



function (argument_tester arg)
    message(STATUS "ARGN: ${ARGN}")
    message(STATUS "ARGC: ${ARGC}")
    message(STATUS "ARGV: ${ARGV}")
    message(STATUS "ARGV0: ${ARGV0}")

    list(LENGTH ARGV  argv_len)
    message(STATUS "length of ARGV: ${argv_len}")
    set(i 0)
    while( i LESS ${argv_len})
         list(GET ARGV ${i} argv_value)
         message(STATUS "argv${i}: ${argv_value}")

         math(EXPR i "${i} + 1")
    endwhile()


endfunction ()



argument_tester(arg0 arg1 arg2 arg3)

실행 결과:
-- ARGN: arg1;arg2;arg3 -- ARGC: 4 -- ARGV: arg0;arg1;arg2;arg3 -- ARGV0: arg0 -- ARGV1: arg1 -- length of ARGV: 4 -- argv0: arg0 -- argv1: arg1 -- argv2: arg2 -- argv3: arg3

좋은 웹페이지 즐겨찾기