From cb22ded1ee69cd6a1655d41789c58def53def8ae Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 16 Jul 2026 09:30:10 -0500 Subject: [PATCH 1/2] JCF: on James Paul Turner's recommendation, generate pybind11-stubgen output files when that tool is installed --- cmake/DAQ.cmake | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cmake/DAQ.cmake b/cmake/DAQ.cmake index fba70e6..59b89fb 100644 --- a/cmake/DAQ.cmake +++ b/cmake/DAQ.cmake @@ -910,8 +910,26 @@ function(daq_add_python_bindings) message(FATAL_ERROR "ERROR: No source files found for python library: ${libname}.") endif() + find_program(PYBIND11_STUBGEN pybind11-stubgen) + + if(PYBIND11_STUBGEN) + execute_process( + COMMAND ${PYBIND11_STUBGEN} -o ${PROJECT_NAME}/python ${PROJECT_NAME} + RESULT_VARIABLE retval + ERROR_VARIABLE errmsg + ) + + if(retval) + message(WARNING + "pybind11-stubgen failed for ${PROJECT_NAME}.\n" + "${errmsg}\n" + "The Python buildings were build successfully, but pybind11-stubgen was unable to generate stubs.") + endif() + endif() + _daq_define_exportname() install(TARGETS ${libname} EXPORT ${DAQ_PROJECT_EXPORTNAME} DESTINATION ${destdir}) + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python/${PROJECT_NAME}/ DESTINATION ${destdir} OPTIONAL FILES_MATCHING PATTERN "*.pyi") set(DAQ_PROJECT_INSTALLS_TARGETS true PARENT_SCOPE) endfunction() From 02ab173385691db96baa6d4520c7bc92e0d61f9b Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 23 Jul 2026 09:25:36 -0500 Subject: [PATCH 2/2] JCF: PR #172: add Pawel's suggestion, and also fix typos in warning message --- cmake/DAQ.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/DAQ.cmake b/cmake/DAQ.cmake index 59b89fb..c77bb31 100644 --- a/cmake/DAQ.cmake +++ b/cmake/DAQ.cmake @@ -923,13 +923,13 @@ function(daq_add_python_bindings) message(WARNING "pybind11-stubgen failed for ${PROJECT_NAME}.\n" "${errmsg}\n" - "The Python buildings were build successfully, but pybind11-stubgen was unable to generate stubs.") + "The Python bindings were built successfully, but pybind11-stubgen was unable to generate stubs.") endif() endif() _daq_define_exportname() install(TARGETS ${libname} EXPORT ${DAQ_PROJECT_EXPORTNAME} DESTINATION ${destdir}) - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python/${PROJECT_NAME}/ DESTINATION ${destdir} OPTIONAL FILES_MATCHING PATTERN "*.pyi") + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python/${PROJECT_NAME}/ DESTINATION ${destdir} OPTIONAL FILES_MATCHING PATTERN "*.pyi" PATTERN "py.typed") set(DAQ_PROJECT_INSTALLS_TARGETS true PARENT_SCOPE) endfunction()