从位于子模块中的目标构建安装程序

Build installer from target located in submodule

我的项目结构是这样的

project
|-submodule1
|-submodule2
...
CMakeList.txt

每个子模块都有 CMakeList,我的可执行文件是在子模块 1 中构建的:

add_executable(submodule1 ${SOURCES} ${MOC_HEADERS} ${RSRCS})

现在这对我来说很棘手。我想用 Cpack 构建一个安装程序,并且已经在我的项目的 CMake 文件中配置了所有内容,该文件基本上由 add_subdirectory(submodule1)、add_subdirectory(submodule2)、... 我该如何实现?

在一个没有子模块的示例项目中,我刚刚调用了

add_executable("${PROJECT_NAME}" helloworld.cpp)
install(TARGETS "${PROJECT_NAME}" DESTINATION bin)
install(FILES "helloworld.cpp" DESTINATION src)
<Cpack stuff>

但这在这里不起作用,因为 exe 是在子模块中构建的。我也不知道 google 有什么用。

运行命令:

install(TARGETS "${PROJECT_NAME}")

和 运行 make package 来自构建目录就足够了。