From 878cf7bd551baa41086c0ad2d415be6cf8bf6a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Sat, 4 Jul 2026 21:50:18 -0400 Subject: [PATCH] packaging: ship the generated help patch in Max/Pd single-object packages Copy the interactive help patch into each package so hosts find it: Max searches /help/.maxhelp; Pd opens -help.pd from the external's own folder. Both are best-effort (the help patch may be absent on some toolchains) and must not fail packaging. Consumes the AVND_MAX_HELP / AVND_PD_HELP target properties and the copy_optional.cmake helper already present in the tree. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01JH7HS58wPSA22HztHZsakd --- cmake/avendish.max.cmake | 15 +++++++++++++++ cmake/avendish.pd.cmake | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/cmake/avendish.max.cmake b/cmake/avendish.max.cmake index df42c170..b01aac30 100644 --- a/cmake/avendish.max.cmake +++ b/cmake/avendish.max.cmake @@ -345,6 +345,21 @@ function(avnd_create_max_package) ) endif() + # Max looks for the help patch in /help/.maxhelp. + # Best-effort: it may be absent on some toolchains, so don't fail packaging. + get_target_property(_maxhelp ${_external} AVND_MAX_HELP) + if(_maxhelp) + if(TARGET "${_external}_help") + add_dependencies("${_external}" "${_external}_help") + endif() + get_property(_pkgdir GLOBAL PROPERTY AVND_PACKAGING_DIR) + add_custom_command(TARGET ${_external} POST_BUILD + COMMAND ${CMAKE_COMMAND} + "-DSRC=${CMAKE_BINARY_DIR}/${_maxhelp}" "-DDST=${_pkg}/help" + -P "${_pkgdir}/avendish.packaging.copy_optional.cmake" + VERBATIM) + endif() + # Copy the external (fairly platform-specific) if(WIN32) diff --git a/cmake/avendish.pd.cmake b/cmake/avendish.pd.cmake index 3bea21c6..282a6ea1 100644 --- a/cmake/avendish.pd.cmake +++ b/cmake/avendish.pd.cmake @@ -190,6 +190,21 @@ function(avnd_create_pd_package) add_custom_command(TARGET ${_external} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${_external_bin}" "${_pkg}/" ) + + # Pd opens -help.pd from the external's own folder. + # Best-effort: it may be absent on some toolchains, so don't fail packaging. + get_target_property(_pd_help ${_external} AVND_PD_HELP) + if(_pd_help) + if(TARGET "${_external}_help") + add_dependencies("${_external}" "${_external}_help") + endif() + get_property(_pkgdir GLOBAL PROPERTY AVND_PACKAGING_DIR) + add_custom_command(TARGET ${_external} POST_BUILD + COMMAND ${CMAKE_COMMAND} + "-DSRC=${CMAKE_BINARY_DIR}/${_pd_help}" "-DDST=${_pkg}" + -P "${_pkgdir}/avendish.packaging.copy_optional.cmake" + VERBATIM) + endif() endforeach() # Copy the support files