如何使用 emscripten 的 CMake 目标安装 .js 和 .wasm 文件?

ymo*_*eau 6 cmake emscripten

使用 CMake 和 emscripten 构建 C++/web-assembly 项目时,install目标命令仅安装.js文件而不安装.wasm文件。

install(TARGETS MyTarget RUNTIME DESTINATION ${CMAKE_BINARY_DIR}/dist)
Run Code Online (Sandbox Code Playgroud)

这将仅安装 JS 文件。我尝试为LIBRARY, RESOURCE, ARCHIVE...添加规则,但从未复制 Wasm。我在官方文档中找不到任何内容。

我知道使用install(FILES ...命令强制复制 wasm很容易解决,但是有没有办法让标准安装对这两个文件都有效?他们都需要作为目标......

小智 3

这是问题中提到的解决方法的示例,适用于像我这样在谷歌搜索后登陆此页面的人。

if (NOT EMSCRIPTEN)
    install(TARGETS MyTarget RUNTIME DESTINATION ${CMAKE_BINARY_DIR}/dist)
else()
    install(FILES
        "$<TARGET_FILE_DIR:MyTarget>/MyTarget.js"
        "$<TARGET_FILE_DIR:MyTarget>/MyTarget.wasm"
        DESTINATION ${CMAKE_BINARY_DIR}/dist)
endif()
Run Code Online (Sandbox Code Playgroud)