如何在cmake中将预构建的目标文件添加到可执行文件

问题描述:

我有一个 add_custom_target 可以触发一个项目的make(该项目不使用cmake!)并生成一个目标文件。我想将此目标文件添加到项目cmake中的可执行目标中。有办法吗?

I have an add_custom_target that triggers a make for a project (that project does not use cmake!) and generates an object file. I would like to add this object file to an executable target in my project's cmake. Is there a way to do this?

SET(OBJS
  ${CMAKE_CURRENT_SOURCE_DIR}/libs/obj.o
)

ADD_EXECUTABLE(myProgram ${OBJS} <other-sources>)

SET_SOURCE_FILES_PROPERTIES(
  ${OBJS}
  PROPERTIES
  EXTERNAL_OBJECT true
  GENERATED true
)

对我有用。显然,必须设置这两个属性 EXTERNAL_OBJECT GENERATED

That worked for me. Apparently one must set these two properties, EXTERNAL_OBJECT and GENERATED.