如何在CPack中更改包目标文件夹?

sea*_*eas 6 build-process cmake

我有一个带有多个add_subdirectory宏的根CMakeLists.txt的多模块CMake项目.

据我所知,CPack/CMake的默认设置是在项目根文件夹中创建包,其中根CMakeLists.txt所在的位置.我想创建一个单独的安装模块,有自己的文件夹和创建包吗?这该怎么做?

Flo*_*ers 7

使用 CPack 变量CPACK_PACKAGE_DIRECTORY

例子:

set(CPACK_PACKAGE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Packaging")
Run Code Online (Sandbox Code Playgroud)

不要按照答案之一的建议使用未记录的变量。CPACK_OUTPUT_FILE_PREFIX它使命令-B的参数cpack不可用(使用 CMake v3.21.0 测试)。

另请注意,接受的答案中提到的变量CPACK_PACKAGE_FILE_NAMECPACK_TOPLEVEL_TAG与 CPack 使用的包(输出)目录无关。


小智 6

要在构建目录的"packages"子目录中获取创建的包,请使用:

SET(CPACK_OUTPUT_FILE_PREFIX packages)
Run Code Online (Sandbox Code Playgroud)


the*_*oid 2

查看文档中的CPACK_TOPLEVEL_TAG和变量。CPACK_PACKAGE_FILE_NAME