CMake に渡されるCMAKE_ARGC
変数の量 (空白で区切られた) を含む variable と、実際の値を含むCMAKE_ARGV0
, CMAKE_ARGV1
, ... があります。
C++ の言語では、最初の (ゼロの) 変数が (cmake
この状況では)呼び出したコマンドを保持するのが一般的であるため、 CMAKE_ARGV0
. 次に、単純なループを作成しましょう。
set(PASSED_PARAMETERS "") # it will contain all params string
set(ARG_NUM 1) # current index, starting with 1 (0 ignored)
# you can subtract something from that if you want to ignore some last variables
# using "${CMAKE_ARGC}-1" for example
math(EXPR ARGC_COUNT "${CMAKE_ARGC}")
while(ARG_NUM LESS ARGC_COUNT)
# making current arg named "CMAKE_ARGV" + "CURRENT_INDEX"
# in CMake like in Bash it's easy
set(CURRENT_ARG ${CMAKE_ARGV${ARG_NUM}})
message(STATUS "Doing whatever with ${CURRENT_ARG}")
# adding current param to the list
set(PASSED_PARAMETERS ${PASSED_PARAMETERS} ${CURRENT_ARG})
math(EXPR ARG_NUM "${ARG_NUM}+1") # incrementing current index
endwhile()
(私自身の質問に答えて、SOでそのようなものを見つけられませんでした、多分それは誰かを助けるでしょう)