[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Phabricator via Phabricator via lldb-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL293686: [CMake] Add accurate dependency specifications (authored by cbieneman). Changed prior to commit: https://reviews.llvm.org/D29333?vs=86461&id=86481#toc Repository: rL LLVM https://reviews.llv

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Chris Bieneman via Phabricator via lldb-commits
beanz added a comment. @labath, we'll have to see if CMake's handling is good enough. What CMake actually does is repeat the full chain of the cycle, so it would be something like adding `-lX -lY -lX -lY` in your example. This doesn't work for certain pathological cases, but CMake actually has

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Pavel Labath via Phabricator via lldb-commits
labath added a comment. In https://reviews.llvm.org/D29333#661994, @beanz wrote: > In https://reviews.llvm.org/D29333#661979, @labath wrote: > > > I was thinking about that as well. I am not sure if it will work if we > > actually need multiple iterations of the loop to get all the dependencies

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Chris Bieneman via Phabricator via lldb-commits
beanz added a comment. In https://reviews.llvm.org/D29333#661979, @labath wrote: > I was thinking about that as well. I am not sure if it will work if we > actually need multiple iterations of the loop to get all the dependencies > converging, but it may be worth trying out. The way it is sup

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Pavel Labath via Phabricator via lldb-commits
labath accepted this revision. labath added a comment. In https://reviews.llvm.org/D29333#661960, @beanz wrote: > Thankfully CMake will not complain about circular dependencies in static > archive targets. If it did, we'd really be in trouble because the LLDB > dependencies graph has *lots* of

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Chris Bieneman via Phabricator via lldb-commits
beanz added a comment. @zturner, absolutely! Thanks! I expect this patch and the next one to be pretty safe because I'm not actually removing the existing dependency specifications, just adding new explicit ones. https://reviews.llvm.org/D29333 __

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Zachary Turner via Phabricator via lldb-commits
zturner accepted this revision. zturner added a comment. This revision is now accepted and ready to land. ok, lgtm with the caveat that if it breaks anything on Windows we might have to revert until we figure it out. https://reviews.llvm.org/D29333 ___

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Chris Bieneman via Phabricator via lldb-commits
beanz added a comment. Thankfully CMake will not complain about circular dependencies in static archive targets. If it did, we'd really be in trouble because the LLDB dependencies graph has *lots* of circular dependencies. Actually, I think CMake even handles them properly on Linux, which shoul

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Zachary Turner via Phabricator via lldb-commits
zturner added a comment. As long as you considered the tradeoffs then and you like this better, that's fine then. Is CMake going to complain about circular dependencies? For example, Breakpoint depends on Core and Core depends on Breakpoint. https://reviews.llvm.org/D29333 ___

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Chris Bieneman via Phabricator via lldb-commits
beanz added a comment. @zturner That mechanism does work, however I generally find that it is cleaner to pass named parameters into CMake functions which provides a bit of a self-documenting API, as opposed to relying on known named variables. The named-parameter was introduced for LLD, and I t

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Zachary Turner via Phabricator via lldb-commits
zturner added a comment. Any reason this doesn't use the same strategy as LLVM? I.e. at the top of the `CMakeLists.txt` file, write something like `set(LLVM_LINK_COMPONENTS Foo Bar Baz)`, then just call `add_lldb_library` etc. https://reviews.llvm.org/D29333 ___

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Chris Bieneman via Phabricator via lldb-commits
beanz updated this revision to Diff 86461. beanz added a comment. Updates based on post commit feedback from labath. He was right on both points. LLVM libs should be done through LINK_COMPONENTS, and I messed up lldb-server's dependencies. https://reviews.llvm.org/D29333 Files: source/Break

[Lldb-commits] [PATCH] D29333: [CMake] Add accurate dependency specifications

2017-01-31 Thread Pavel Labath via Phabricator via lldb-commits
labath added a comment. I like where this is going. I am not sure about a couple of details though. Please see comments. Comment at: source/Breakpoint/CMakeLists.txt:32 +lldbPluginObjCLanguage +LLVMSupport ) Shouldn't this be: `LINK_COMPONENTS Suppo