将 cmake 与自定义文件生成器结合使用

2024-05-03

我想使用 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 执行任何操作。我在这里错过了什么吗?提前致谢。


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

要使自定义目标依赖于生成的文件,请使用添加自定义目标 https://cmake.org/cmake/help/latest/command/add_custom_target.html命令:

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})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 cmake 与自定义文件生成器结合使用 的相关文章

随机推荐