9
我需要替換CMake列表中的值,但似乎沒有任何支持此列表操作。替換CMake列表中的值
我想出這個代碼:
macro (LIST_REPLACE LIST INDEX NEWVALUE)
list (REMOVE_AT ${LIST} ${INDEX})
list (LENGTH ${LIST} __length)
# Cannot insert at the end
if (${__length} EQUAL ${INDEX})
list (APPEND ${LIST} ${NEWVALUE})
else (${__length} EQUAL ${INDEX})
list (INSERT ${LIST} ${INDEX} ${NEWVALUE})
endif (${__length} EQUAL ${INDEX})
endmacro (LIST_REPLACE)
# Example
set (fubar A;B;C)
LIST_REPLACE (fubar 2 "X")
message (STATUS ${fubar})
你有什麼更好的想法如何實現這一目標?