<div dir="ltr">You might also want to look at clang's CMakeLists.txt file.  I can be build either in or out of tree (llvm tree), and handles a lot of this via llvm-config.<div><br></div><div>hth...</div><div>don</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 4, 2017 at 10:13 PM, Kim Gräsman <span dir="ltr"><<a href="mailto:kim.grasman@gmail.com" target="_blank">kim.grasman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Don,<br>
<br>
Thanks, that looks like it might work! I'll post back with results<br>
when I have them.<br>
<span class="HOEnZb"><font color="#888888"><br>
- Kim<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, Oct 4, 2017 at 9:31 PM, Don Hinton <<a href="mailto:hintonda@gmail.com">hintonda@gmail.com</a>> wrote:<br>
> This might help you get started (this is for out of tree pointing to my<br>
> development build, but you could also point to the installed version if you<br>
> have one).<br>
><br>
> # if you only have/need LLVM:<br>
> #  export<br>
> LLVM_DIR=/Users/dhinton/<wbr>projects/llvm_project/build/<wbr>Debug/lib/cmake/llvm<br>
> # if you also have/need clang:<br>
> #  export<br>
> CLANG_DIR=/Users/dhinton/<wbr>projects/llvm_project/build/<wbr>Debug/lib/cmake/clang<br>
><br>
> # While just setting LLVM_DIR will make find_package work, you need to<br>
> # add it to CMAKE_MODULE_PATH if you want to include AddLLVM, e.g., if<br>
> # you want to use add_llvm_loadable_module.<br>
> set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "$ENV{LLVM_DIR};$ENV{Clang_<wbr>DIR}")<br>
> #find_package(LLVM REQUIRED CONFIG)<br>
> find_package(Clang REQUIRED CONFIG)<br>
> include(AddLLVM)<br>
> add_definitions(${LLVM_<wbr>DEFINITIONS})<br>
> include_directories(${LLVM_<wbr>INCLUDE_DIRS})<br>
> include_directories(${CLANG_<wbr>INCLUDE_DIRS})<br>
> link_directories(${LLVM_<wbr>LIBRARY_DIRS})<br>
><br>
> message("LLVM_DEFINITIONS = ${LLVM_DEFINITIONS}")<br>
> message("LLVM_INCLUDE_DIRS = ${LLVM_INCLUDE_DIRS}")<br>
> message("LLVM_LIBRARY_DIRS = ${LLVM_LIBRARY_DIRS}")<br>
> message("CLANG_INCLUDE_DIRS = ${CLANG_INCLUDE_DIRS}")<br>
><br>
> On Wed, Oct 4, 2017 at 11:39 AM, Kim Gräsman via cfe-dev<br>
> <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> Hi all,<br>
>><br>
>> In include-what-you-use, we recently had this bug report:<br>
>> <a href="https://github.com/include-what-you-use/include-what-you-use/pull/465" rel="noreferrer" target="_blank">https://github.com/include-<wbr>what-you-use/include-what-you-<wbr>use/pull/465</a><br>
>><br>
>> And it's symptomatic for a whole class of problems where we're<br>
>> duplicating knowledge from the LLVM/Clang CMake systems to allow both<br>
>> in-tree and out-of-tree IWYU development.<br>
>><br>
>> (in our terminology, in-tree == cloning the include-what-you-use repo<br>
>> into a full LLVM and Clang checkout/clone under<br>
>> llvm/tools/clang/tools/<wbr>include-what-you-use and out-of-tree == cloning<br>
>> include-what-you-use anywhere, and giving CMake information about<br>
>> where to find LLVM/Clang headers and libraries)<br>
>><br>
>> Looking around my system, I see a lot of CMake modules in<br>
>> /usr/lib/llvm-4.0 and /usr/share/llvm-4.0, but it's not clear to me<br>
>> how to use them. Also, it would be nice to allow a "next-to-tree"<br>
>> configuration instead of in-tree, where I can point IWYU at a trunk<br>
>> checkout of LLVM and Clang and use its CMake modules.<br>
>><br>
>> Is there a correct way to accomplish this?<br>
>><br>
>> Thanks,<br>
>> - Kim<br>
>> ______________________________<wbr>_________________<br>
>> cfe-dev mailing list<br>
>> <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
><br>
><br>
</div></div></blockquote></div><br></div>