[PATCH] D33059: Create an shared include directory for gtest helper functions

Juergen Ributzka via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 14 14:02:46 PDT 2017


> On Jun 14, 2017, at 1:51 PM, Zachary Turner <zturner at google.com> wrote:
> 
> Hopefully you’ll forgive my ignorance, as I only pretend to know CMake, but when it gets more involved I need some additional assistance :)

I thought I knew CMake too … until I saw the LLVM CMake scripts :-(

> 
> To dumb this down, are you saying that I need to:
> 
> a) Never list TestingSupport in LLVM_LINK_COMPONENTS
> and

Yup

> b) instead link it with target_link_libraries()?

Yup. This is what we currently do for gtest_main and gtest in add_unittest:

llvm/cmake/modules/AddLLVM.cmake:1031: target_link_libraries(${test_name} gtest_main gtest ${LLVM_PTHREAD_LIB})

> 
> And that should fix the problem?

Yes, I tired it and it works for my configuration. It seems a little hacky, but that is how gtest is handled too.

> 
> On Wed, Jun 14, 2017 at 1:44 PM Juergen Ributzka <juergen at ributzka.de <mailto:juergen at ributzka.de>> wrote:
> Hi Zack,
> 
> this breaks cmake for me when I try to configure a build with NO targets:
> CMake Error at cmake/modules/LLVM-Config.cmake:31 (list):
>   list sub-command REMOVE_ITEM requires two or more arguments.
> Call Stack (most recent call first):
>   cmake/modules/LLVM-Config.cmake:256 (is_llvm_target_library)
>   cmake/modules/LLVM-Config.cmake:100 (llvm_map_components_to_libnames)
>   cmake/modules/LLVM-Config.cmake:93 (explicit_llvm_config)
>   cmake/modules/AddLLVM.cmake:714 (llvm_config)
>   cmake/modules/AddLLVM.cmake:1025 (add_llvm_executable)
>   unittests/CMakeLists.txt:5 (add_unittest)
>   unittests/DebugInfo/CodeView/CMakeLists.txt:11 (add_llvm_unittest)
> 
> TestingSupport is configured with BUILDTREE_ONLY. This prevents it from being added to LLVM_LIBS. This seems intentional and mirrors what gtest_main is doing. The problem is that once you add TestingSupport as a link dependency our current cmake logic fails. It works for test_main, because it is never listed in LLVM_LINK_COMPONENTS and always added as part of add_unittest.
> 
> Doing the same for TestingSupport would fix the issue. 
> 
> --Juergen
> 
> On Wed, Jun 14, 2017 at 9:42 AM, Zachary Turner via Phabricator via llvm-commits <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
> This revision was automatically updated to reflect the committed changes.
> Closed by commit rL305395: [gtest] Create a shared include directory for gtest utilities. (authored by zturner).
> 
> Changed prior to commit:
>   https://reviews.llvm.org/D33059?vs=102340&id=102563#toc <https://reviews.llvm.org/D33059?vs=102340&id=102563#toc>
> 
> Repository:
>   rL LLVM
> 
> https://reviews.llvm.org/D33059 <https://reviews.llvm.org/D33059>
> 
> Files:
>   llvm/trunk/include/llvm/Testing/Support/Error.h
>   llvm/trunk/include/llvm/Testing/Support/SupportHelpers.h
>   llvm/trunk/lib/CMakeLists.txt
>   llvm/trunk/lib/LLVMBuild.txt
>   llvm/trunk/lib/Testing/CMakeLists.txt
>   llvm/trunk/lib/Testing/LLVMBuild.txt
>   llvm/trunk/lib/Testing/Support/CMakeLists.txt
>   llvm/trunk/lib/Testing/Support/Error.cpp
>   llvm/trunk/lib/Testing/Support/LLVMBuild.txt
>   llvm/trunk/unittests/DebugInfo/CodeView/CMakeLists.txt
>   llvm/trunk/unittests/DebugInfo/CodeView/ErrorChecking.h
>   llvm/trunk/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp
>   llvm/trunk/unittests/DebugInfo/CodeView/TypeIndexDiscoveryTest.cpp
>   llvm/trunk/unittests/DebugInfo/PDB/CMakeLists.txt
>   llvm/trunk/unittests/DebugInfo/PDB/ErrorChecking.h
>   llvm/trunk/unittests/DebugInfo/PDB/HashTableTest.cpp
>   llvm/trunk/unittests/DebugInfo/PDB/MSFBuilderTest.cpp
>   llvm/trunk/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp
>   llvm/trunk/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp
>   llvm/trunk/unittests/DebugInfo/PDB/TypeServerHandlerTest.cpp
>   llvm/trunk/unittests/Support/BinaryStreamTest.cpp
>   llvm/trunk/unittests/Support/CMakeLists.txt
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits>
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170614/b8d591a4/attachment.html>


More information about the llvm-commits mailing list