【发布时间】:2017-11-02 16:53:10
【问题描述】:
我希望 cpack 只使用某些组件。但他同时使用了 run 和 deb 组件。我查看了很多来源。包括这个cpack component level install。但我不明白我做错了什么。请告诉我,我做错了什么? 我的 CMakeLists.txt
cmake_minimum_required(VERSION 3.8)
project(testProj)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)
add_executable(testProj ${SOURCE_FILES})
set(CMAKE_INSTALL_PREFIX .)
install(FILES temp.h DESTINATION someFolder
PERMISSIONS OWNER_READ OWNER_WRITE WORLD_READ WORLD_EXECUTE COMPONENT deb
)
install(FILES Alpha0.400000.txt DESTINATION someFolder
PERMISSIONS OWNER_READ OWNER_WRITE WORLD_READ WORLD_EXECUTE COMPONENT run
)
set(CPACK_TGZ_COMPONENT_INSTALL ON)
set(CPACK_COMPONENT_ALL deb)
set(CPACK_COMPONENTS_ALL deb)
include(CPack)
我获得神器的步骤
cmake .
make
cpack .
CPack: Create package using STGZ
CPack: Install projects
CPack: - Run preinstall target for: testProj
CPack: - Install project: testProj
CPack: Create package
CPack: - package: /home/danyal/testProj/test/testProj-0.1.1-Linux.sh generated.
CPack: Create package using TGZ
CPack: Install projects
CPack: - Run preinstall target for: testProj
CPack: - Install project: testProj
CPack: Create package
CPack: - package: /home/danyal/testProj/test/testProj-0.1.1-Linux.tar.gz generated.
CPack: Create package using TZ
CPack: Install projects
CPack: - Run preinstall target for: testProj
CPack: - Install project: testProj
CPack: Create package
CPack: - package: /home/danyal/testProj/test/testProj-0.1.1-Linux.tar.Z generated.
而testProj-0.1.1-Linux.tar.gz 包含
someFolder
-temp.h
-Alpha0.400000.txt
【问题讨论】:
-
你使用哪个CPack生成器(即创建什么样的包——
.tgz、.rpm等)?请参阅wiki 了解为特定生成器启用组件打包。 -
是的,我尝试在我的 CMakeLists 集中写入(CPACK_TGZ_COMPONENT_INSTALL ON),但它也不起作用
-
所以您使用
TGZ包生成器,它会生成单个testProj.tgz文件,其中包括temp.h和Alpha0.400000.txt。我是否正确理解你现在所拥有的? -
是的,但它会生成 tar.gz
CPack: Create package using TGZ CPack: Install projects CPack: - Run preinstall target for: testProj CPack: - Install project: testProj CPack: Create package CPack: - package: /home/danyal/testProj/test/testProj-0.1.1-Linux.tar.gz generated. -
将 CPack 生成的这些消息添加到问题帖子中(通过edit)。