bulbazord added inline comments.
================ Comment at: lldb/cmake/modules/LLDBFramework.cmake:91 DEPENDS ${header} OUTPUT ${staged_header} - COMMAND ${CMAKE_COMMAND} -E copy ${header} ${staged_header} - COMMENT "LLDB.framework: collect framework header") + COMMAND unifdef -USWIG -o ${staged_header} ${header} || (exit 0) + COMMENT "LLDB.framework: collect framework header and remove SWIG macros") ---------------- mib wrote: > May be we should add a cmake check to make sure `unidef` is available on the > system. Yeah for the purposes of this diff I just used it without checking. If we go ahead with this patch I'll add some safety checks. ================ Comment at: lldb/include/lldb/API/SBAddress.h:14-16 +#ifdef SWIG +%include "interface/SBAddressDocstrings.i" +#endif ---------------- clayborg wrote: > Do we want two different .i files? Right now we have > both"interface/SB*Docstrings.i" and "interface/SB*Extensions.i". Can those be > combined into just one "interface/SBAddress.i" and only included if we have > anything in the .i file that isn't just a copy of the API itself? Or does the > doc string stuff have to come first? What I discovered when working this patch is that the docstring information needs to come before the declaration of what it wants to document. So `SB*Docstrings.i` should come first. The `SB*Extensions.i` are there to extend an existing class, so they should come after the class itself. I'm not sure there's a good way to do this. Alternatively, we could changes the `interfaces.swig` file to include `./interface/SBAddressDocstrings.i`, then `lldb/API/SBAddress.h`, then `./interface/SBAddressExtensions.i`. That way we don't need to have these 2 `#ifdef` blocks in the API headers themselves. ================ Comment at: lldb/include/lldb/API/SBAddress.h:33 +#ifndef SWIG const lldb::SBAddress &operator=(const lldb::SBAddress &rhs); ---------------- clayborg wrote: > Do we need all assignment operators left out for Swig? If so it might be good > to add a comment explaining so it is clear to people. I can't remember if > this is true or not in all cases? Yeah I can add a comment. When generating python bindings, swig will ignore assignment operators as it doesn't map cleanly into python, which is why I left this out. It may be more accurate to do something like `#ifndef SWIGPYTHON` but seeing as the `SBAddress.i` class doesn't have an `operator=` in it, I decided to leave it out for swig generation entirely. ================ Comment at: lldb/include/lldb/API/SBAddress.h:133 +#ifndef SWIG bool LLDB_API operator==(const SBAddress &lhs, const SBAddress &rhs); ---------------- clayborg wrote: > Do we need all == operators left out of Swig stuff? Comment if so? Can't > remember if this applies to all API objects or just to SBAddress? I don't think that all instances of `operator==` need to be left out. There are some classes that have it in the interface files, e.g. SBBreakpoint. I intentionally left this one out because it wasn't in `SBAddress.i` and I wanted this to leave the python bindings roughly the same (no new functions/methods, re-ordering them in the `lldb.py` should be ok though). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D142926/new/ https://reviews.llvm.org/D142926 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits