diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-13 14:25:59 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-13 14:25:59 +0000 |
| commit | ff121fcbb461a4d8f768e87128facf32e6272889 (patch) | |
| tree | 12cccac70566d4159c9edeb5270889c6958e9c29 /cmake | |
| parent | 2fc1af63b20ab67683b74e6bb8f2a3edf5ef2a3d (diff) | |
Group language manuals into function and keyword directories
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/Manual.cmake | 2 | ||||
| -rw-r--r-- | cmake/Release.cmake | 19 |
2 files changed, 14 insertions, 7 deletions
diff --git a/cmake/Manual.cmake b/cmake/Manual.cmake index 689c91e..17a8e77 100644 --- a/cmake/Manual.cmake +++ b/cmake/Manual.cmake @@ -6,7 +6,7 @@ endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/GenerateManual.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GenerateManual.cmake" @ONLY) -file(GLOB cpsc_language_sources CONFIGURE_DEPENDS +file(GLOB_RECURSE cpsc_language_sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/doc/language/cpsc-*.7.md") set(cpsc_manual_sources "${CMAKE_CURRENT_SOURCE_DIR}/doc/cpsc.1.md" ${cpsc_language_sources}) diff --git a/cmake/Release.cmake b/cmake/Release.cmake index 59a1d79..66c2e2b 100644 --- a/cmake/Release.cmake +++ b/cmake/Release.cmake @@ -21,7 +21,7 @@ if(CPSC_WINDOWS) set(cpsc_binary_name cpsc.exe) set(cpsc_installer install.ps1) set(cpsc_manual cpsc.html) - set(cpsc_language_pattern "${CPSC_BINARY_DIR}/doc/language/cpsc-*.html") + set(cpsc_language_extension html) set(cpsc_tar_flags cf) set(cpsc_archive_format zip) else() @@ -29,7 +29,7 @@ else() set(cpsc_binary_name cpsc) set(cpsc_installer install.sh) set(cpsc_manual cpsc.1) - set(cpsc_language_pattern "${CPSC_BINARY_DIR}/doc/language/cpsc-*.7") + set(cpsc_language_extension 7) set(cpsc_tar_flags cJf) set(cpsc_archive_format gnutar) endif() @@ -40,11 +40,18 @@ configure_file("${CPSC_EXECUTABLE}" "${cpsc_package_dir}/${cpsc_binary_name}" CO file(COPY "${CPSC_SOURCE_DIR}/${cpsc_installer}" "${CPSC_SOURCE_DIR}/LICENSE" DESTINATION "${cpsc_package_dir}") file(COPY "${CPSC_BINARY_DIR}/doc/${cpsc_manual}" DESTINATION "${cpsc_package_dir}/doc") -file(GLOB cpsc_language_manuals "${cpsc_language_pattern}") -if(NOT cpsc_language_manuals) - message(FATAL_ERROR "Language manuals are missing; build the doc target first") +# Package the current source set, preserving categories and ignoring stale outputs. +file(GLOB_RECURSE cpsc_language_sources "${CPSC_SOURCE_DIR}/doc/language/cpsc-*.7.md") +if(NOT cpsc_language_sources) + message(FATAL_ERROR "Language manual sources are missing") endif() -file(COPY ${cpsc_language_manuals} DESTINATION "${cpsc_package_dir}/doc/language") +foreach(source IN LISTS cpsc_language_sources) + file(RELATIVE_PATH relative "${CPSC_SOURCE_DIR}/doc/language" "${source}") + string(REGEX REPLACE "\\.7\\.md$" ".${cpsc_language_extension}" relative "${relative}") + get_filename_component(directory "${relative}" DIRECTORY) + file(COPY "${CPSC_BINARY_DIR}/doc/language/${relative}" + DESTINATION "${cpsc_package_dir}/doc/language/${directory}") +endforeach() execute_process( COMMAND "${CMAKE_COMMAND}" -E tar "${cpsc_tar_flags}" "${cpsc_archive}" "--format=${cpsc_archive_format}" "${cpsc_package_name}" |
