【发布时间】:2014-09-19 14:03:09
【问题描述】:
我想将一些目标文件添加到 CMake 静态库中,但它们具有自定义扩展名。
这是我尝试过的:
set(SRCS testfile.cxx jsobj.js)
add_library(testlib STATIC ${SRCS})
创建后,CMake 调用ar testfile.cxx.o(即完全忽略其他文件)。如何将其包含在存档中?以下是我尝试过的其他一些技巧:
list(APPEND CMAKE_CXX_SOURCE_FILE_EXTENSIONS js)
list(APPEND CMAKE_C_SOURCE_FILE_EXTENSIONS js) # no luck
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/jsobj.js.o
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/jsobj.js
${CMAKE_CURRENT_BINARY_DIR}/jsobj.js.o
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/jsobj.js.o) # still no luck
(如果您有兴趣,我正在使用 emscripten 编译器,它可以接受 C/C++ 文件作为源输入,而 JavaScript 文件本质上是“预编译对象”。我想找到一种方法让 CMake将它们添加到ar 命令行,仅此而已!)
【问题讨论】:
-
你解决了这个问题吗?我正在寻找我真正感兴趣的解决方案
-
@DarioOO 我已经汇总了我在下面所做的事情的指示;希望这会有所帮助。
标签: build cmake emscripten unix-ar