Функция CMake, передающая ARGV в функцию, вызываемую внутри

Я пытаюсь написать функцию-обертку для некоторых функций 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 передает список аргументов и вызову подфункции.

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

Спасибо!

0 ответов

Другие вопросы по тегам