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
)
干得漂亮。
我正在使用内联汇编和 .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
)
干得漂亮。