================
@@ -18,6 +18,11 @@ add_lldb_tool(lldb-rpc-gen
       Support
   )
 
-if (NOT DEFINED LLDB_RPC_GEN_EXE)
-  set(LLDB_RPC_GEN_EXE $<TARGET_FILE:lldb-rpc-gen> CACHE STRING "Executable 
that generates lldb-rpc-server")
+if (CMAKE_CROSSCOMPILING)
+  setup_host_tool(lldb-rpc-gen LLDB_RPC_GEN_EXE lldb_rpc_gen_exe 
lldb_rpc_gen_target)
----------------
mstorsjo wrote:

This doesn't seem right to me. And in actual tests with cross builds, this 
still hits the same `/bin/sh: 1: -p: not found` error.

We shouldn't need any sort of `if (CMAKE_CROSSCOMPILING)` here at all - we 
should unconditionally use `setup_host_tool`. That cmake function then 
internally checks whether it can expect to use the just-built tool, or if it 
needs to do a nested build to produce a native `lldb-rpc-gen` that can be used 
instead. Again, have a look at the corresponding clang-tidy case - it doesn't 
have any such conditionals.

Then after that, you do need to modify the following code that actually _uses_ 
`lldb-rpc-gen` too. It needs to call the tool `${lldb_rpc_gen_exe}` instead of 
`$<TARGET_FILE:lldb-rpc-gen>`. This variable then contains the path of the 
right `lldb-rpc-gen` executable that should be used. And whenever you're using 
it, you need to add a dependency on `${lldb_rpc_gen_target}`, which is the 
cmake/ninja target which produces `${lldb_rpc_gen_exe}`, possibly through a 
nested cmake build.

See 
https://github.com/llvm/llvm-project/blob/llvmorg-22-init/clang-tools-extra/clang-tidy/misc/CMakeLists.txt#L12-L15
 how this is done in the case of clang-tidy. I understand that lldb-rpc-gen is 
donig something more complicated here, but this needs to be hooked up in one 
way or another.

https://github.com/llvm/llvm-project/pull/151603
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to