【发布时间】:2018-06-20 15:22:11
【问题描述】:
- 将文件列表作为输入,
- 为每个文件附加路径
-
创建一个新列表(作为输出传递 函数本身的参数)通过将所有文件附加到它
function(concat_path iLiItems oLiItems cVal) foreach(pfile ${${iLiItems}}) string(CONCAT l ${${cVal}} ${pfile}) message(STATUS ${pfile} " - " ${l}) set(${oLiItems} ${${oLiItems}} ${l} PARENT_SCOPE) endforeach() endfunction() function(list_print liItems) message(STATUS "The list contains: ") foreach(f ${${liItems}}) message(STATUS ${f}) endforeach() endfunction() set(PROTO_SRCS base.proto dht.proto) foreach(pfile ${PROTO_SRCS}) string(REPLACE ".proto" ".pb" fname ${pfile}) string(CONCAT cc ${fname} ".cc") string(CONCAT h ${fname} ".h") set(PROTO_CPP_SRCS ${PROTO_CPP_SRCS} ${cc} ${h}) endforeach() string(CONCAT path_prefix ${CMAKE_CURRENT_SOURCE_DIR} "/") concat_path(PROTO_SRCS PROTO_SRCS_PATH path_prefix) list_print(PROTO_SRCS_PATH)
我看到的问题是,当我最终使用函数“list_print”打印时,我发现输出列表 (PROTO_SRCS_PATH) 中只有一个元素,而我期望两个元素对应于两个输入文件:
-- base.proto - C:/Users/vaddina/workspace/protobuf-tests/app-wo-findprotobuf/base.proto
-- dht.proto - C:/Users/vaddina/workspace/protobuf-tests/app-wo-findprotobuf/dht.proto
-- The list contains:
-- C:/Users/vaddina/workspace/protobuf-tests/app-wo-findprotobuf/dht.proto
我做错了什么?谢谢你。
【问题讨论】:
标签: cmake