将 fixup_bundle 结果添加到 CPack
Add fixup_bundle result to CPack
如何将使用 fixup_bundle
找到的其他库添加到 CPack?
这是我的 CMake 安装脚本:
install(
TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION .)
install(
FILES
${PROJECT_SOURCE_DIR}/LICENSE
${PROJECT_SOURCE_DIR}/COPYRIGHT
${PROJECT_SOURCE_DIR}/CHANGELOG
${PROJECT_SOURCE_DIR}/DESCRIPTION
DESTINATION .)
install(
CODE
"
include(InstallRequiredSystemLibraries)
include(BundleUtilities)
fixup_bundle(${CMAKE_INSTALL_PREFIX}/${SERVICE_INSTALL_PREFIX}/test.exe \"\" \"\")
"
DESTINATION .
COMPONENT Runtime)
在 install
文件夹中,我可以找到我的 EXE 文件、文本内容(许可证、版权等)和所有必需的 DLL 库。
但是当我执行 package
目标(使用 NSIS 生成器)时,它只复制 EXE 文件和文本内容,没有额外的 DLL 库。
CPack 将用正确的变量替换 CMAKE_INSTALL_PREFIX
变量。但是对于这个字符串 ${CMAKE_INSTALL_PREFIX}
应该在 CPack 执行代码时存在。将 fixup_bundle
的每个参数包装为字符串就足够了。
install(
CODE
"
include(InstallRequiredSystemLibraries)
include(BundleUtilities)
fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/${SERVICE_INSTALL_PREFIX}/test.exe\" \"\" \"\")
"
DESTINATION .
COMPONENT Runtime)
如何将使用 fixup_bundle
找到的其他库添加到 CPack?
这是我的 CMake 安装脚本:
install(
TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION .)
install(
FILES
${PROJECT_SOURCE_DIR}/LICENSE
${PROJECT_SOURCE_DIR}/COPYRIGHT
${PROJECT_SOURCE_DIR}/CHANGELOG
${PROJECT_SOURCE_DIR}/DESCRIPTION
DESTINATION .)
install(
CODE
"
include(InstallRequiredSystemLibraries)
include(BundleUtilities)
fixup_bundle(${CMAKE_INSTALL_PREFIX}/${SERVICE_INSTALL_PREFIX}/test.exe \"\" \"\")
"
DESTINATION .
COMPONENT Runtime)
在 install
文件夹中,我可以找到我的 EXE 文件、文本内容(许可证、版权等)和所有必需的 DLL 库。
但是当我执行 package
目标(使用 NSIS 生成器)时,它只复制 EXE 文件和文本内容,没有额外的 DLL 库。
CPack 将用正确的变量替换 CMAKE_INSTALL_PREFIX
变量。但是对于这个字符串 ${CMAKE_INSTALL_PREFIX}
应该在 CPack 执行代码时存在。将 fixup_bundle
的每个参数包装为字符串就足够了。
install(
CODE
"
include(InstallRequiredSystemLibraries)
include(BundleUtilities)
fixup_bundle(\"${CMAKE_INSTALL_PREFIX}/${SERVICE_INSTALL_PREFIX}/test.exe\" \"\" \"\")
"
DESTINATION .
COMPONENT Runtime)