问题标签 [cpack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
648 浏览

cmake - 在 CPack 中分离符号链接以生成 deb

我正在尝试在 CMake 中生成 deb 包。问题是,我在分离符号链接以使其符合 Debian 软件包的标准约定时遇到了麻烦:

  • lib<名称>.deb
    • /usr/lib/<名称>.so.<主要版本>.<次要版本>
    • /usr/lib/<name>.so.<major version> -> sim 链接到第一个
  • lib<名称>-dev.deb
    • /usr/lib/<name>.so -> sim 链接到第一个
    • /usr/include/<名称>.h

我想知道的是,如何使用 CPack 的 DEB 生成器将符号链接分开?有没有办法将符号链接放在不同的组件中?

谢谢

0 投票
1 回答
1841 浏览

cmake - Strange error running CPack after building a project.

I have the following extremely simple project:

CMakeLists.txt

myapp.cpp:

DoSomething.cmake

The project builds fine, but I run into issues when I attempt to run CPack:

What does this mean? What was the error? CPack doesn't seem to have generated any logs or provide any further details. Commenting out the contents of DoSomething.cmake doesn't seem to make any difference.

According to the documentation:

CPACK_INSTALL_SCRIPT

Extra CMake script provided by the user.

If set this CMake script will be executed by CPack during its local [CPack-private] installation which is done right before packaging the files. The script is not called by e.g.: make install.

Why won't my package build and my warning message display?

0 投票
2 回答
4188 浏览

c++ - 在 cmake 中使用 CPack 生成两个不同的包:Linux

我想为我的项目创建两个不同的包。

  1. DCM(包括除 RCM 特定模块之外的所有模块)
  2. RCM(特定模块。)

1. DCM : src/CMakeList.txt

2. RCM: src/ecs/mqa/mqa_rcm/CMakeList.txt

试用: 在 Linux 虚拟机提示符下。

它只创建一个包DCM-1.90.0-Linux.tar.gz

参考: CMake WikiCPackStackOverflow

问题: 我想创建 1.DCM-1.90.0-Linux.tar.gz和 2.RCM-1.90.0-Linux.tar.gz包。

我用谷歌搜索,但无法找到确切的解决方案。

如果您想了解更多信息,请告诉我。

提前谢谢了。

0 投票
1 回答
177 浏览

linux - Cpack 标头文件夹目标

我需要从我的库中找到所有标题,而/usr/include不是/usr/include/mylibname. 请注意,我想更改标题的位置。我.so想保存在/usr/lib文件夹中的文件

我试过这个: 如何更改 CPack 中的包目标文件夹?但这无济于事。

0 投票
1 回答
2512 浏览

c++ - CMake:如何使用 CPack 更改默认包名称 - linux

在我的项目中,我创建了两个包。

  1. 包含除“XYZ”模块之外的所有组件的默认包。
  2. 通过COMPONENT <XYZ>inINSTALL命令使用带有 XYZ 组件的特定包。

现在,问题是,我已经指定CPACK_SOURCE_PACKAGE_FILE_NAME并且当我运行make package命令时它生成了两个名称如下指定的包。

set(CPACK_SOURCE_PACKAGE_FILE_NAME "AB-1.0.2")在 CMakeList.txt

然后输出是:

我想更改该默认包名称以及第二个包名称。

我用谷歌搜索但找不到任何直接的方法来指定默认包名称或重命名这个包。

许多谢谢提前。

0 投票
1 回答
1629 浏览

cmake - 如何在 NSIS 安装(CMake)中设置图标

cmake wiki 页面上的文档CPACK_PACKAGE_ICON非常有限。

以下内容对我不起作用(根据):

它导致:

那么如何在 NSIS 安装程序的安装过程中实际设置一个工作图标呢?图标实际上需要什么格式?

0 投票
1 回答
1915 浏览

cmake - 具有多个创建包的子项目的 CMake 顶级项目

我有多个 CMake 项目,每个项目都创建一个 debian 包。我一直在尝试创建一个在每个“子”项目上调用 add_subdirectory() 的顶级项目。所有子项目都会构建,但“制作项目”会使用最后一个子项目的规范创建一个项目,并包含来自所有其他项目的文件。

基本上,每个 set(CPACK_...) 都被下一个项目覆盖,直到最后一个项目和“install()”调用被累积。使用顶级项目时如何分离包创建?

编辑:添加片段。所有的“儿童”项目都是相似的。

0 投票
1 回答
712 浏览

cmake - 空的默认组件名称显示为“未指定”

我正在尝试使用 cmake 2.8.12 制作两个包:第一个包含共享库,第二个包含头文件。显然,我想要两个名称分别为libname和的包libname-dev,所以我install对共享库使用了没有指定组件的命令,COMPONENT dev对头文件使用了相同的命令。在此之前,我定义了一个空的默认组件名称。所以我有一个代码如下:

但结果是,尽管默认组件名称为空libname-Unspecified,并且libname-dev都生成了。我觉得这种行为很奇怪,因为我似乎无法用之前描述的名称定义两个包。是否有任何想法如何以其他方式做到这一点?

0 投票
3 回答
7377 浏览

windows - 使用 CMake + CPack + Wix 生成安装程序

概括:

如何使用 CMake/CPack 生成 Wix 安装程序?

细节:

我正在尝试从使用 Wix 的项目中生成安装程序,但显然,cmake/cpack 坚持使用 nsis,例如,从 repo https://github.com/ngladitz/cmake-wix-testsuite 我选择了第一个示例“基本”文件夹,其中包含 CMakeLists.txt 的以下内容

生成cmake后:

我试图运行生成的 package.vcxproj

并得到了错误

“C:\src\Samples\CPack\cmake-wix-testsuite-master\basic\MY_BUILD\PACKAGE.vcxproj”(默认目标)(1)->(PostBuildEvent 目标)-> EXEC:CPack 错误:找不到 NSIS 编译器makensis:可能没有安装,或者不在您的 PATH [C:\src\Samples\CPack\cmake-wix-testsuite-master\ba sic\MY_BUILD\PACKAGE.vcxproj]

所以看起来它坚持使用 NSIS 生成器。

0 投票
0 回答
1305 浏览

cmake - CMake/CPack:add_custom_command 目标包 POST_BUILD

遇到与此处描述的相同问题,我想将 shell 脚本作为 TARGET“包”的 POST_BUILD 命令执行。目标平台是 Debian/Ubuntu。

我在 CMakeLists 的末尾添加以下内容:

但这不起作用。当我调用“make package”时,脚本不会改变。

目前我有一个自定义目标的解决方法:

但是,如果在调用“make package”时自动完成,对我来说会更舒服,更安全。

顺便说一句,生成${PROJECT_BINARY_DIR}/fixup_deb.sh也适用于: