From ff121fcbb461a4d8f768e87128facf32e6272889 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Tue, 13 Oct 2026 14:25:59 +0000 Subject: Group language manuals into function and keyword directories Co-Authored-By: Claude Fable 5.1 --- cmake/Manual.cmake | 2 +- cmake/Release.cmake | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) (limited to 'cmake') 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}" -- cgit v1.3.1-4-g156e