From bd3e74c73d968582d36e4d60e389002540becc8c Mon Sep 17 00:00:00 2001 From: Nathan Lanza Date: Thu, 18 Jul 2019 01:26:53 +0000 Subject: [PATCH] Only build lldb-tblgen if it's not a current target Summary: When doing standalone builds, you could potentially be building against an llvm which also built lldb. If this were the case, you'd be attempting to build this target twice. Reviewers: xiaobai Subscribers: mgorny Differential Revision: https://reviews.llvm.org/D64847 llvm-svn: 366394 --- lldb/utils/TableGen/CMakeLists.txt | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lldb/utils/TableGen/CMakeLists.txt b/lldb/utils/TableGen/CMakeLists.txt index 76e819160ea6..45a5d366222f 100644 --- a/lldb/utils/TableGen/CMakeLists.txt +++ b/lldb/utils/TableGen/CMakeLists.txt @@ -1,8 +1,14 @@ -set(LLVM_LINK_COMPONENTS Support) - -add_tablegen(lldb-tblgen LLDB - LLDBOptionDefEmitter.cpp - LLDBTableGen.cpp - ) -set_target_properties(lldb-tblgen PROPERTIES FOLDER "LLDB tablegenning") +# tablegen targets get exported via llvm for LLVMConfig.cmake. So standalone +# builds of lldb can potentially import this via LLVMConfig and also attempt to +# build it in tree. So only build it if it doesn't exist. +if (TARGET lldb-tblgen) + set(LLDB_TABLEGEN_EXE $ CACHE STRING "") +else() + set(LLVM_LINK_COMPONENTS Support) + add_tablegen(lldb-tblgen LLDB + LLDBOptionDefEmitter.cpp + LLDBTableGen.cpp + ) + set_target_properties(lldb-tblgen PROPERTIES FOLDER "LLDB tablegenning") +endif()