【问题标题】:Using cmake with a custom file generator将 cmake 与自定义文件生成器一起使用
【发布时间】:2011-09-17 17:31:33
【问题描述】:

我想使用 CMake 生成混淆的 lua 文件以进行交付。对于我的生活,我无法让 add_custom_command + add_custom_target 为我构建这些文件。我缺少一些东西。

ADD_CUSTOM_TARGET(LUABIND_COMPILED_FILES ALL)
FOREACH(F ${LUA_SCRIPT_FILES})
ADD_CUSTOM_COMMAND(
OUTPUT ${LUA_COMPILED_SCRIPTS}/${F}
COMMAND ${LUAC} -o ${LUA_COMPILED_SCRIPTS}/${F}
COMMENT "Compiling ${F} to binary"
ADD_DEPENDENCIES(LUABIND_COMPILED_FILES ${LUA_COMPILED_SCRIPTS}/${F})
ENDFOREACH()

由于某种原因,当我运行 cmake + make 时,输出告诉我目标 LUABIND_COMPILED_FILES 没有什么可做的。我在这里错过了什么吗?提前致谢。

【问题讨论】:

    标签: cmake


    【解决方案1】:

    ADD_DEPENDENCIES 命令只能用于添加顶级目标之间的依赖关系。但是,ADD_CUSTOM_COMMAND 命令会生成输出文件,但不会添加新目标。

    要使自定义目标依赖于生成的文件,请使用 add_custom_target 命令的 DEPENDS 选项:

    set (LUA_COMPILED_FILES "")
    foreach(F ${LUA_SCRIPT_FILES})
        add_custom_command(
            OUTPUT "${LUA_COMPILED_SCRIPTS}/${F}"
            COMMAND ${LUAC} -o "${LUA_COMPILED_SCRIPTS}/${F}"
            COMMENT "Compiling ${F} to binary")
        list (APPEND LUA_COMPILED_FILES "${LUA_COMPILED_SCRIPTS}/${F}")
    endforeach()
    
    add_custom_target(LUABIND ALL DEPENDS ${LUA_COMPILED_FILES})
    

    【讨论】:

    • 看起来是这样做的!感谢您的帮助!
    猜你喜欢
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    • 2016-06-28
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多