2015-02-23 46 views
3

我想爲我的項目創建兩個不同的包。在cmake中使用CPack生成兩個不同的包:Linux

  1. DCM(包括除RCM特定模塊的所有模塊)
  2. RCM

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

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虛擬機的提示。

$make -j4 
$make install 
$make package 

它只創建單個包裝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包。

我使用Google搜索,但無法找到確切的解決方案。

如果您需要更多信息,請告知我。

很多預先感謝。

+0

是否有我缺少的東西..? – 2015-02-24 12:18:46

回答

2

我只需要設置CPACK標誌。

set(CPACK_ARCHIVE_COMPONENT_INSTALL ON) 

之前

include(CPack) 

和運行命令。

make 
make install 
make package 

和它創建兩個不同的包。

+0

但是,它仍然沒有按預期創建軟件包名稱。包名是類似的,在CPACK變量'set(CPACK_PACKAGE_FILE_NAME DCM-1.90.0)'中設置的名稱,則包創建時的名稱爲1.'DCM-1.90.0-Linux.tar.gz'和2.'DCM-1.90 .0- .tar.gz' – 2015-02-26 05:45:38

0

我不使用CPack,所以也許有比以下更好的解決方案。

對於我的不同安裝,我在CACHE中定義了一些變量(例如:set(INCLUDE_MODULE_XYZ OFF CACHE BOOL "Include the module xyz")),用於定義我在安裝中放置的內容。你可以改變運行ccmake的這個變量的值。在你的情況下,你可以生成你的第一個包,用ccmake改變de配置,然後生成第二個包(如果需要的話)。

+0

我想使用相同的配置文件生成這兩個軟件包。因爲我不能更改個別軟件包的配置文件。 – 2015-02-23 13:02:15

相關問題