Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 将修复包结果添加到CPack_Cmake_Nsis_Cpack - Fatal编程技术网

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)