beanz added a comment.

In D68430#1693964 <https://reviews.llvm.org/D68430#1693964>, @jordan_rose wrote:

> I'm not quite sure //what// it's doing. The executable targets end up trying 
> to link against the static libraries anyway, which of course haven't been 
> built. It's possible that this is because the LIBTYPE is both STATIC and 
> OBJECT and if it were just OBJECT we might be better off, but I'm not sure if 
> Xcode's IDE features will be happy with a target that doesn't actually 
> produce a library. I can try it if you want, though.


I don't think that is necessary, it sounds like we just need to disable this 
functionality if Xcode is the build tool. That is unfortunate, but Xcode's 
build system is problematic to work with.

> (I did look at CMake's Xcode generator logic for OBJECT targets and it looks 
> completely bonkers to me, as if it's still building the static library but 
> then removing it to make sure it's not depended on or something. Even if it 
> builds cleanly I don't trust it to do dependency analysis correctly.)

Fair. Unfortunately Xcode's build dependencies aren't as expressive as other 
build systems, which causes some unfortunate limitations on what it can do.

> 
> 
>> This has the side-effect of making `libclang_cpp` effectively empty when you 
>> build with Xcode.
> 
> I can remove that target if you want, or have it link the libraries normally.

clang_cpp can't link the libraries "normally" because it has no unresolved 
symbols to force the contents of the libraries to link. I don't like it, but I 
think the best option is to disable clang_cpp under Xcode. You can add `AND 
XCODE` to the `if` on line 2 of clang/tools/clang-shlib/CMakeLists.txt, and 
that should do the trick.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68430/new/

https://reviews.llvm.org/D68430



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to