mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-08 14:50:10 -06:00
Restore commit4cb616fed6(Tutorial: Provide a source archive when published on cmake.org, 2022-04-27, v3.23.2~22^2). Its effects were accidentally reverted by commit9784834b4c(Help: Use `*.rst` extension for included files, 2025-04-07, v4.1.0-rc1~354^2). Reported-by: Vito Gamberini <vito.gamberini@kitware.com>
43 lines
1.5 KiB
CMake
43 lines
1.5 KiB
CMake
if(NOT version)
|
|
message(FATAL_ERROR "Pass -Dversion=")
|
|
endif()
|
|
|
|
# Name of the archive and its top-level directory.
|
|
set(archive_name "cmake-${version}-tutorial-source")
|
|
|
|
# Base directory for CMake Documentation.
|
|
set(help_dir "${CMAKE_CURRENT_LIST_DIR}/../../Help")
|
|
cmake_path(ABSOLUTE_PATH help_dir NORMALIZE)
|
|
|
|
# Collect the non-documentation part of the tutorial directory.
|
|
file(COPY "${help_dir}/guide/tutorial/"
|
|
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/${archive_name}"
|
|
NO_SOURCE_PERMISSIONS
|
|
PATTERN *.rst EXCLUDE
|
|
REGEX "/guide/tutorial/include$" EXCLUDE
|
|
)
|
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${archive_name}/README.txt" [[
|
|
This directory contains source code examples for the CMake Tutorial.
|
|
Each step has its own subdirectory containing code that may be used as a
|
|
starting point. The tutorial examples are progressive so that each step
|
|
provides the complete solution for the previous step.
|
|
]])
|
|
|
|
# Create an archive containing the tutorial source examples.
|
|
file(MAKE_DIRECTORY "${help_dir}/_generated")
|
|
file(ARCHIVE_CREATE
|
|
OUTPUT "${help_dir}/_generated/${archive_name}.zip"
|
|
PATHS "${CMAKE_CURRENT_BINARY_DIR}/${archive_name}"
|
|
FORMAT zip
|
|
)
|
|
|
|
# Write a reStructuredText snippet included from the tutorial index.
|
|
file(WRITE "${help_dir}/guide/tutorial/include/source.rst" [[
|
|
.. |tutorial_source| replace::
|
|
The tutorial source code examples are available in
|
|
:download:`this archive </_generated/]] "${archive_name}" [[.zip>`.
|
|
]])
|
|
|
|
# Remove temporary directory.
|
|
file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/${archive_name}")
|