CMake:源文件依赖于源文件

CMake: Source file depends on source file

我正在使用内联汇编和 .incbin 将一个源文件嵌入到另一个源文件中,这正是我想要的。我不会接受标准的 objcopy 方法,虽然它有效(恕我直言)是次要的方法。 xxd 也是一个选项,但实际上仅适用于非常小的包含。我有一个静态站点构建器,它占用大量资源并将其打包到一个程序中,使用 .incbin 非常快。

不幸的是,将 JS 文件添加到源列表是不够的:

ninja explain: output CMakeFiles/jsapp.dir/static_site.c.o older than most recent input static_site.c (1629797306094133842 vs 1629797311521966739)
ninja explain: CMakeFiles/jsapp.dir/static_site.c.o is dirty
ninja explain: jsapp is dirty
[2/2] Linking C executable jsapp

嵌入JS的主C文件没有重建,这里不相关的静态站点源是因为时间戳改变了。

如何告诉 CMake source.c 现在依赖于 some_file.js?

按照@arrowd 的想法:

set_source_files_properties(main.c OBJECT_DEPENDS
    ${CMAKE_SOURCE_DIR}/my.js
)

干得漂亮。