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

Posted

技术标签:

【中文标题】如何更改使用 CPack 安装的可执行文件的名称?【英文标题】:How do I change the name of the executable that I'm installing using CPack? 【发布时间】:2020-02-02 19:58:08 【问题描述】:

如果这听起来微不足道,我会提前道歉。我是使用 CMake 和 CPack 的新手。

我目前正在尝试将自己的编译器构建为辅助项目,并且我想测试 CPack 将如何安装我的项目。

这是我在项目文件夹根目录中的 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.15)
project(Simple-C-Compiler VERSION 0.01)

set(CMAKE_CXX_STANDARD 20)

set(COMPILER_VERSION $PROJECT_VERSION)

add_library(include INTERFACE)
target_include_directories(include INTERFACE include/)

add_subdirectory(lib)
add_subdirectory(phases)
add_subdirectory(compiler)
add_subdirectory(tests)

target_link_libraries(compiler lexer)
target_link_libraries(tester lexer)

add_compile_options(-Wall)

install(TARGETS compiler DESTINATION bin)
set(CPACK_PACKAGE_EXECUTABLES "compiler" "Simple-C")
include(CPack)

当我尝试安装我的编译器时,这样做:

mkdir build
cd build
cmake ../
make install

我得到以下输出:

[ 22%] Built target lib
[ 55%] Built target lexer
[ 77%] Built target compiler
[100%] Built target tester
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/compiler

CPack 将我的编译器安装为“编译器”而不是“Simple-C”。我希望正在安装的可执行文件的名称为“Simple-C”。如何在我的 CMakeLists.txt 文件中执行此操作?

【问题讨论】:

【参考方案1】:

您可以使用以下命令更改目标的名称:

set_target_properties(compiler PROPERTIES OUTPUT_NAME Simple-C)

这必须在add_subdirectory(compiler)之后调用

附带说明,您提到的命令没有调用 cpack。为了调用 cpack,您需要运行 cpack command。

【讨论】:

【参考方案2】:

您可以使用 CMake installRENAME 选项。见https://cmake.org/cmake/help/v3.13/command/install.html

总之

install(TARGETS compiler DESTINATION bin RENAME Simple-C)

【讨论】:

我刚试过这个,我仍然遇到同样的问题。

以上是关于如何更改使用 CPack 安装的可执行文件的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有3rdparty运行时依赖项包含在linux上的cmake / cpack生成的包中?

cpack:如何在安装过程中将程序与文件扩展名关联?

使用 cpack 创建 deb 包后运行脚本

CPack:如何执行多个 CPACK_NSIS_EXTRA_INSTALL_COMMANDS?

如何使用 CPACK_INSTALL_COMMANDS?

如何从可执行文件更改mac应用程序名称?