Cmake 将修复包结果添加到CPack
如何将使用Cmake 将修复包结果添加到CPack,cmake,nsis,cpack,Cmake,Nsis,Cpack,如何将使用fixup\u bundle找到的其他库添加到CPack 这是我的CMake安装脚本: install( TARGETS ${PROJECT_NAME} RUNTIME DESTINATION .) install( FILES ${PROJECT_SOURCE_DIR}/LICENSE ${PROJECT_SOURCE_DIR}/COPYRIGHT ${PROJECT_SOURCE_DIR}/CHANGELOG
fixup\u 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
target(使用NSIS builder)时,它只复制EXE文件和文本内容,没有额外的DLL库。CPack将用正确的前缀替换CMAKE\u INSTALL\u PREFIX
变量。但是对于这个字符串,${CMAKE\u INSTALL\u PREFIX}
应该在CPack执行代码时存在。将fixup\u bundle
的每个参数包装为字符串就足够了
install(
CODE
"
include(InstallRequiredSystemLibraries)
include(BundleUtilities)
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/${SERVICE_INSTALL_PREFIX}/test.exe\" \"\" \"\")
"
DESTINATION .
COMPONENT Runtime)