首页 > 解决方案 > cmake foreach 循环未运行

问题描述

我在 cmake 中有以下代码块:-

foreach(X IN LISTS "${DBSCHEMA}/dbschema.cpp;${DBSCHEMA}/dbschema.hpp")
    message("-----------setting ${X} --------------")
    set_property(SOURCE ${X} PROPERTY SKIP_AUTOMOC ON)
    set_property(SOURCE ${X} PROPERTY SKIP_AUTOUIC ON)
endforeach()

但是当我运行 cmake 时,我看不到任何类似

message("-----------setting ${X} --------------")

和属性未设置

但喜欢

message("list = ${DBSCHEMA}/dbschema.cpp;${DBSCHEMA}/dbschema.hpp")

确实给了我这样的输出:-

/some/very/long/path/dbschema.cpp;/some/very/long/path/dbschema.hpp

标签: c++cmake

解决方案


我需要删除IN LIST单词:-

foreach(X ${DBSCHEMA}/dbschema.cpp ${DBSCHEMA}/dbschema.hpp)
    set_property(SOURCE ${X} PROPERTY SKIP_AUTOMOC ON)
    set_property(SOURCE ${X} PROPERTY SKIP_AUTOUIC ON)
endforeach()

推荐阅读