llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Adrian Prantl (adrian-prantl) <details> <summary>Changes</summary> a05b232076ed dropped lldb-defines.h from the header staging loop so that the source header is never copied, leaving the staged copy to be produced by a POST_BUILD command on liblldb-header-staging. Ninja cannot see files produced that way, and LLDBRPCHeaders.cmake depends on the staged path directly, so a clean build with LLDB_BUILD_LLDBRPC enabled fails to even load the graph: ninja: error: 'include/lldb/lldb-defines.h', needed by 'tools/lldb-rpc/DerivedHeaders/lldb-rpc-defines.h', missing and no known rule to make it Dropping the header from the loop also removed it from lldb_staged_headers and from LLDB.framework/Headers, even though SBDefines.h includes it. Stage the header through version-header-fix.py from inside the loop instead. The script reads the source header and writes a fresh staged copy, so the source tree can still be read-only, and the staged header gets a rule that dependents can rely on. Assisted-by: Claude --- Full diff: https://github.com/llvm/llvm-project/pull/216394.diff 1 Files Affected: - (modified) lldb/source/API/CMakeLists.txt (+6-6) ``````````diff diff --git a/lldb/source/API/CMakeLists.txt b/lldb/source/API/CMakeLists.txt index 83ecb428d8ea4..c589756060a6b 100644 --- a/lldb/source/API/CMakeLists.txt +++ b/lldb/source/API/CMakeLists.txt @@ -284,8 +284,6 @@ set(generated_public_headers ${LLDB_OBJ_DIR}/include/lldb/API/SBLanguages.h) file(GLOB root_public_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-*.h) file(GLOB root_private_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-private*.h) list(REMOVE_ITEM root_public_headers ${root_private_headers}) -# Skip the initial copy of lldb-defines.h. The fixed version is generated at build time. -list(REMOVE_ITEM root_public_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-defines.h) add_custom_command( OUTPUT ${lldb_header_staging_dir} @@ -311,7 +309,12 @@ foreach(header get_filename_component(basename ${header} NAME) set(staged_header ${lldb_header_staging_dir}/${basename}) - if(unifdef_EXECUTABLE) + if(basename STREQUAL "lldb-defines.h") + set(copy_command "${Python3_EXECUTABLE}" + ${LLDB_SOURCE_DIR}/scripts/version-header-fix.py + -i ${header} -o ${staged_header} + -m ${LLDB_VERSION_MAJOR} -n ${LLDB_VERSION_MINOR} -p ${LLDB_VERSION_PATCH}) + elseif(unifdef_EXECUTABLE) # unifdef returns 0 when the file is unchanged and 1 if something was changed. # That means if we successfully remove SWIG code, the build system believes # that the command has failed and stops. This is undesirable. @@ -345,9 +348,6 @@ foreach(header endif() endforeach() -add_custom_command(TARGET liblldb-header-staging POST_BUILD - COMMAND "${Python3_EXECUTABLE}" ${LLDB_SOURCE_DIR}/scripts/version-header-fix.py -i ${LLDB_SOURCE_DIR}/include/lldb/lldb-defines.h -o ${lldb_header_staging_dir}/lldb-defines.h -m ${LLDB_VERSION_MAJOR} -n ${LLDB_VERSION_MINOR} -p ${LLDB_VERSION_PATCH} -) add_dependencies(liblldb liblldb-header-staging) if(LLDB_BUILD_FRAMEWORK) `````````` </details> https://github.com/llvm/llvm-project/pull/216394 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
