aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-13 05:13:32 +0000
committer_ov4 <ov4@ov4.org>2026-10-13 05:13:32 +0000
commita6fc1625ea8f825a7161354eb9167a281542fa29 (patch)
treeb610b85c1ca9a94481cfcb1f19ee192508fb9a60 /cmake
parent8b633927930095d2a8f6ffd48dc2f88a21b3e0bf (diff)
build: package Windows releases as ZIP archives
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Release.cmake24
1 files changed, 20 insertions, 4 deletions
diff --git a/cmake/Release.cmake b/cmake/Release.cmake
index be78088..fe78711 100644
--- a/cmake/Release.cmake
+++ b/cmake/Release.cmake
@@ -14,15 +14,31 @@ set(cpsc_short_id "${CMAKE_MATCH_2}")
string(TIMESTAMP cpsc_commit_time "%Y-%m-%d-%H-%M-%S" UTC)
set(cpsc_package_name "cpsc-${cpsc_commit_time}-${cpsc_short_id}-${CPSC_PLATFORM}")
set(cpsc_package_dir "${CPSC_BINARY_DIR}/release/${cpsc_package_name}")
-set(cpsc_archive "${CPSC_BINARY_DIR}/${cpsc_package_name}.tar.xz")
+if(CPSC_WINDOWS)
+ set(cpsc_archive "${CPSC_BINARY_DIR}/${cpsc_package_name}.zip")
+ set(cpsc_binary_name cpsc.exe)
+ set(cpsc_installer install.ps1)
+ set(cpsc_manual cpsc.html)
+ set(cpsc_tar_flags cf)
+ set(cpsc_archive_format zip)
+else()
+ set(cpsc_archive "${CPSC_BINARY_DIR}/${cpsc_package_name}.tar.xz")
+ set(cpsc_binary_name cpsc)
+ set(cpsc_installer install.sh)
+ set(cpsc_manual cpsc.1)
+ set(cpsc_tar_flags cJf)
+ set(cpsc_archive_format gnutar)
+endif()
file(REMOVE_RECURSE "${cpsc_package_dir}")
file(MAKE_DIRECTORY "${cpsc_package_dir}/doc")
-file(COPY "${CPSC_EXECUTABLE}" "${CPSC_SOURCE_DIR}/install.sh" "${CPSC_SOURCE_DIR}/LICENSE"
+configure_file("${CPSC_EXECUTABLE}" "${cpsc_package_dir}/${cpsc_binary_name}" COPYONLY)
+file(COPY "${CPSC_SOURCE_DIR}/${cpsc_installer}" "${CPSC_SOURCE_DIR}/LICENSE"
DESTINATION "${cpsc_package_dir}")
-file(COPY "${CPSC_BINARY_DIR}/doc/cpsc.1" DESTINATION "${cpsc_package_dir}/doc")
+file(COPY "${CPSC_BINARY_DIR}/doc/${cpsc_manual}" DESTINATION "${cpsc_package_dir}/doc")
execute_process(
- COMMAND "${CMAKE_COMMAND}" -E tar cJf "${cpsc_archive}" --format=gnutar "${cpsc_package_name}"
+ COMMAND "${CMAKE_COMMAND}" -E tar "${cpsc_tar_flags}" "${cpsc_archive}"
+ "--format=${cpsc_archive_format}" "${cpsc_package_name}"
WORKING_DIRECTORY "${CPSC_BINARY_DIR}/release"
RESULT_VARIABLE cpsc_tar_result
)