我想将构建工件捆绑到一个 zip 文件中,以便在交付服务器上交付它们。那是因为我将 zip 创建集成到 CMake 例程中。
# zip the final release files into the build artifact
# call the zipping with 'cmake --build . --target zip' or 'make zip'
string(TIMESTAMP DATE_STRING %Y%m%d)
add_custom_target(zip
COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}-${DATE_STRING}.zip" "--format=zip" "--"
"${PROJECT_SOURCE_DIR}/bin/release/*")
工件被捆绑到bin/release
ProjectSourceDir的文件夹中。我的问题是,zip 文件具有我的构建目录中文件的相对路径。所以所有文件都位于../bin/release/
这不是我想要的。我想将文件放在 zip 文件的“主文件夹”中。
我找到了在我的构建文件夹中准备 zip 文件夹的解决方案,但我认为这是非常不切实际的或者对我来说看起来很脏。
AWORKING_DIRECTORY
可以指定给add_custom command
.
add_custom_target(zip
COMMAND ${CMAKE_COMMAND} -E tar cvf ${PROJECT_SOURCE_DIR}/${PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}-${DATE_STRING}.zip --format=zip .
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/release
)
您不需要示例中给出的所有额外引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句