Я хочу собрать артефакты сборки в 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-папки в моей папке сборки, но я считаю, что это очень непрактично или выглядит грязно для меня.