Функция CMake, передающая ARGV в функцию, вызываемую внутри - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь написать функцию-обертку для некоторых функций CMake.Но, сталкиваясь с проблемой, когда дело доходит до того, чтобы сделать аргумент / параметр необязательным.

function(test_function1 TARGET MOD_NAME)
    if (ARGV2)
        message("---->")
        message(${ARGV2})
    else()
        message("-1---> Not Found1")
    endif()
endfunction()


function(test_function2 TARGET MOD_NAME FLEX_NAME)
    if (ARGV3)
        message("---->")
        message(ARGV3)
        test_function1(${TARGET} ${MOD_NAME} ${ARV3})
    else()
        message("-2---> Not Found1")
        test_function1(${TARGET} ${MOD_NAME})
    endif()
endfunction()

Здесь функция test_function2 должна иметь 4-й аргумент (ARGV3) в качестве необязательного.Эта функция должна вызывать функцию «test_function1».Если ARVG3 предоставляется первой «test_function2», то он должен передать ее «test_function1», иначе нет.Однако, когда 4-й аргумент не включен, «test_function1», похоже, все еще обнаруживает 3-й аргумент, который фактически является 3-м аргументом, передаваемым в test_function2.Итак, похоже, что CMake передает список аргументов и вызову подфункции.

Итак, вопрос в том, как избежать этого или любого другого подходящего альтернативного варианта аргументации?

Спасибо!

...