使用 cpack 和 cmake 安装特定的模式文件

     2023-02-22     93

关键词:

【中文标题】使用 cpack 和 cmake 安装特定的模式文件【英文标题】:install specific pattern files with cpack and cmake 【发布时间】:2016-12-28 14:43:50 【问题描述】:

假设我的项目中有下一个结构:

src_dir\a
src_dir\b\b2
src_dir\c\c2\c3

在每个文件夹中,我都有几种类型的文件(.txt、.lib、.dll....) 我只想安装目录 X 中的 dll 文件,所以我尝试了:

install(
DIRECTORY src_dir
DESTINATION X/
COMPONENT DLLS
FILES_MATCHING PATTERN "*.dll"
)

它确实工作正常,但它给了我原始结构的完整结构(我只想要 X 目录中的 dll 文件)。输出它:

X/a/a.dll
X/b/b2/b.dll
X/c/c2/c3/c.dll

我希望 a.dll、b.dll 和 c.dll 都在 X 中(没有任何子文件夹)。

有没有办法在不提供我项目中每个 dll 文件的完整路径的情况下做到这一点?

谢谢:)

【问题讨论】:

【参考方案1】:

您应该能够通过列出每个目录(不一定是每个 DLL)来获得您想要的行为。如果您在 DIRECTORY 末尾包含尾部正斜杠,则在复制到目标时它将省略目录名称。我希望以下内容可以实现您想要的:

install(
    DIRECTORY      src_dir/a/
    DESTINATION    X
    COMPONENT      DLLS
    FILES_MATCHING PATTERN "*.dll"
)
install(
    DIRECTORY      src_dir/b/b2/
    DESTINATION    X
    COMPONENT      DLLS
    FILES_MATCHING PATTERN "*.dll"
)
install(
    DIRECTORY      src_dir/c/c2/c3/
    DESTINATION    X
    COMPONENT      DLLS
    FILES_MATCHING PATTERN "*.dll"
)

【讨论】:

感谢您的回复,但我想避免复制代码。

使用 cmake 或 cpack 编辑 .bat

】使用cmake或cpack编辑.bat【英文标题】:edit.batusingcmakeorcpack【发布时间】:2018-02-0813:11:41【问题描述】:我使用cmake和cpack为我的软件制作了安装程序。在cpack安装程序中,用户选择安装软件的位置。比如说C:\\Users\\MySoftware我的所... 查看详情

CMake 和 CPack。配置文件中的安装路径

...【发布时间】:2016-03-2912:19:06【问题描述】:有没有办法使用CMakeinstall和package(我需要一个deb包)targets/em>,安装路径是从install-time中的某个配置文件(例如/etc/myconfig.cfg)读取的。我可以使用shell脚本来做到这一 查看详情

使用 CPack 打包时是不是需要 CMake 安装步骤?

】使用CPack打包时是不是需要CMake安装步骤?【英文标题】:doIneedtheCMakeinstallstepwhenpackagingwithCPack?使用CPack打包时是否需要CMake安装步骤?【发布时间】:2018-06-2613:10:56【问题描述】:阅读cmake/cpack文档,说明CPack将生成一个安装... 查看详情

使用 CMake 和 CPack 为一个组件创建包

】使用CMake和CPack为一个组件创建包【英文标题】:CreatepackageforjustonecomponentwithCMakeandCPack【发布时间】:2016-01-2911:45:21【问题描述】:我有一个用于客户端/服务器应用程序的项目,并且我为每个应用程序定义了一个安装组件。当... 查看详情

CMake + CPack:安装整个目录(包括子文件夹)

...【发布时间】:2016-09-2818:14:31【问题描述】:我正在尝试使用CMake和CPack创建安装包。一切正常,但我想通过一次调用而不是每个子文件夹一个调用完全复制我的资源文件夹来大幅减少代码量。到目前为止,我通过以下方式进行... 查看详情

CPack / CMake:每个 CPACK_GENERATOR 的不同安装前缀

】CPack/CMake:每个CPACK_GENERATOR的不同安装前缀【英文标题】:CPack/CMake:DifferentinstallationprefixesperCPACK_GENERATOR【发布时间】:2015-06-1911:44:12【问题描述】:如何为不同的CPACK_GENERATOR指定不同的安装前缀?例如:DEB包应该安装到/opt/pro... 查看详情

InstallDirRegKey 的 CMake/CPack 命令

...问题描述】:在NSIS脚本文件中,可以设置以下内容,以使用注册表项作为安装目录:InstallDirRegKeyHKCU"Software\\Test""RegEntry"我想知道是否可以从cmake文件设置此命令,以便自动生成NSIS脚 查看详情

使用 CPACK 自定义 NSIS 安装程序

】使用CPACK自定义NSIS安装程序【英文标题】:CustomizingNSISinstallerusingCPACK【发布时间】:2014-01-1517:48:24【问题描述】:我正在尝试使用CMAKE和CPACK自定义NSIS安装程序。特别是我想在生成的project.nsi中包含一个外部脚本。类似:!includ... 查看详情

资源文件在使用 CMake 和 CPack 构建的 Mac OS X 应用程序包中包含两次

】资源文件在使用CMake和CPack构建的MacOSX应用程序包中包含两次【英文标题】:ResourcefilegetsincludedtwiceinMacOSXapplicationpackagebuiltusingCMakeandCPack【发布时间】:2014-05-0807:39:57【问题描述】:我正在尝试使用CMake和CPack来构建和打包MacOSX... 查看详情

如何更改使用 CPack 安装的可执行文件的名称?

】如何更改使用CPack安装的可执行文件的名称?【英文标题】:HowdoIchangethenameoftheexecutablethatI\'minstallingusingCPack?【发布时间】:2020-02-0219:58:08【问题描述】:如果这听起来微不足道,我会提前道歉。我是使用CMake和CPack的新手。我... 查看详情

如何使用补丁文件修改 CPack 生成的 WiX XML?

】如何使用补丁文件修改CPack生成的WiXXML?【英文标题】:HowcanonemodifyCPackgeneratedWiXXMLsusingapatchfile?【发布时间】:2018-06-1223:58:42【问题描述】:我正在尝试添加功能以在安装某个安装程序的新版本之前卸载以前的版本。CPackWIX文... 查看详情

同时使用 CMAKE_INSTALL_PATH 和 CPack WiX 生成器

】同时使用CMAKE_INSTALL_PATH和CPackWiX生成器【英文标题】:UsingbothCMAKE_INSTALL_PATHandCPackWiXgenerator【发布时间】:2017-06-0213:21:35【问题描述】:我正在尝试使用CPackWiXGenerator生成msi包。在我的CMakeLists.txt中有CMAKE_INSTALL_PREFIX设置为"C:... 查看详情

向 cpack 添加额外的命令 - NSIS 打包程序/安装程序

...installer【发布时间】:2014-10-2314:55:39【问题描述】:我想使用现有的CPack和NSIS为我的windows项目打包GeneratorConfig.cmake文件,我想在其中添加一个额外的命令,它将一个名为myProject.ini的.ini文件复制到%APPDA 查看详情

CMake 支持“进行卸载”吗?

...解决方案,以使我的用户能够安装和卸载我的应用程序。使用set(CMAKE_INSTALL_PREFIX"$ENVHOME/opt/$CPACK_PACKAGE_NAME-$CPACK_PACKAGE_VERSION/" 查看详情

安装最新版本的cmake(代码片段)

Ubuntu自带的apt-getinstall方式安装的CMake版本有点老。项目中需要最新版本的CMake2.8.9,这个版本还是采用CPack打包的,为了体验一把CPack的发布的便利性,就试用一下。首先卸载已经安装的旧版的CMakeapt-getautoremovecmake然后下载:cd/usrwg... 查看详情

在 CMake + CPack + NSIS 中创建 Windows 桌面图标

...布时间】:2010-04-1420:24:16【问题描述】:我在CMake2.8.1中使用NSIS包生成器来分发Qt应用程序。一切正常...除了使用CPACK_CREATE_DESKTOP_LINKS创建指向应用程序的桌面链接。我查看了CMakesource(包括它自己 查看详情

cmake系列:wix打包(代码片段)

...件背景简化最终用户的安装配置过程,方便最终用户使用。同时保护代码安全,防止人为打包有意无意的错误。实现方案下载配置WIX下载WIX3.11版本,链接:https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-bina... 查看详情

cmake系列:wix打包(代码片段)

...件背景简化最终用户的安装配置过程,方便最终用户使用。同时保护代码安全,防止人为打包有意无意的错误。实现方案下载配置WIX下载WIX3.11版本,链接:https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-bina... 查看详情