在cmake中使用CPack生成两个不同的软件包:Linux [英] Generate two different package using CPack in cmake : Linux

查看:463
本文介绍了在cmake中使用CPack生成两个不同的软件包:Linux的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to create two different package for my project.

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

1. DCM: src/CMakeList.txt

1. DCM : src/CMakeList.txt

cmake_minimum_required (VERSION 2.8)

add_subdirectory(ecs) # Include all modules

set(CPACK_GENERATOR TGZ)
set(CPACK_PACKAGE_NAME "dcm")
set(CPACK_PACKAGE_VENDOR "AB")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Device Control")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
set(CPACK_PACKAGE_VERSION_BUILD ${BUILD_NUMBER})

set(CPACK_COMPONENTS_ALL DCM RCM )

# Include CPack to introduce the appropriate targets
include(CPack)

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

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

set(RCM_SCRIPTS 
commit.sh
install.sh
prepare_for_install.sh
system_check.sh
update_init.sh)

INSTALL(FILES ${RCM_SCRIPTS}
        PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE  WORLD_EXECUTE
        DESTINATION ${RCM_INSTALL_PREFIX}/install
        COMPONENT RCM )
# Create version file
install(FILES "${CMAKE_BINARY_DIR}/version" 
        DESTINATION ${RCM_INSTALL_PREFIX}
        COMPONENT RCM )

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

Try Out : On Linux virtual machine prompt.

$make -j4
$make install
$make package

它仅创建单个程序包DCM-1.90.0-Linux.tar.gz.

参考: CMake Wiki CPack StackOverflow

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

Problem : I want to create 1. DCM-1.90.0-Linux.tar.gz and 2. RCM-1.90.0-Linux.tar.gz package.

我用Google搜索,但是找不到确切的解决方案.

I googled but, unable to find exact solution.

如果您需要更多信息,请告诉我.

Let me know in case of you want more information.

非常感谢.

推荐答案

我只需要将CPACK标志设置为ON.

I just need to set CPACK flag ON.

set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)

就在

include(CPack)

然后运行命令.

make
make install
make package

它会创建两个不同的程序包.

And it creates two different packages.

这篇关于在cmake中使用CPack生成两个不同的软件包:Linux的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆