我想創建一個cmake的功能:cmake的功能,參數和返回
function(test src_list dst_list)
# do something
endfunction()
用法:
test(${my_list} chg_list)
這意味着,my_list是幾個字段列表,chg_list將收到在測試功能內部修改的列表。
但它不工作,我怎麼可以在cmake中創建一個函數來做到這一點?
我想創建一個cmake的功能:cmake的功能,參數和返回
function(test src_list dst_list)
# do something
endfunction()
用法:
test(${my_list} chg_list)
這意味着,my_list是幾個字段列表,chg_list將收到在測試功能內部修改的列表。
但它不工作,我怎麼可以在cmake中創建一個函數來做到這一點?
在CMake中,函數有各自的範圍,並且默認情況下,所有變量的修改都是本地的,除非您將CACHE
或PARENT_SCOPE
作爲參數傳遞給set
。在函數裏,如果你想修改主叫範圍的變量,你應該使用:
set(${dst_list} <something> PARENT_SCOPE)
函數打開一個新的範圍:見set(var PARENT_SCOPE)瞭解詳情。
問題是你沒有提供函數的代碼。是否有'set($ {dst_list} PARENT_SCOPE);'在裏面? –
julp