From c932a25d56d13b5dc448d476af64c72efd64c5ad Mon Sep 17 00:00:00 2001 From: Pengxuan Zheng Date: Thu, 11 Apr 2019 21:05:15 +0000 Subject: [PATCH] [cmake] Fix dependency issue in TableGen Summary: There is a bug in add_tablegen which causes cmake to fail with the following error message if LLVM_TABLEGEN is set. CMake Error at cmake/modules/TableGen.cmake:147 (add_dependencies): The dependency target "LLVM-tablegen-host" of target "CLANG-tablegen-host" does not exist. Call Stack (most recent call first): tools/clang/utils/TableGen/CMakeLists.txt:3 (add_tablegen) The issue happens because setting LLVM_TABLEGEN causes cmake to skip generating the LLVM-tablegen-host target. As a result, a non-existent target was added for CLANG-tablegen-host causing cmake to fail. In order to fix this issue, this patch adds a guard to check the validity of the dependency target before adding it as a dependency. Reviewers: aganea, smeenai Reviewed By: aganea Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60576 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358226 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/TableGen.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/modules/TableGen.cmake b/cmake/modules/TableGen.cmake index 5d921818fcf..5a9ccbbbdf1 100644 --- a/cmake/modules/TableGen.cmake +++ b/cmake/modules/TableGen.cmake @@ -143,7 +143,8 @@ macro(add_tablegen target project) # Create an artificial dependency between tablegen projects, because they # compile the same dependencies, thus using the same build folders. # FIXME: A proper fix requires sequentially chaining tablegens. - if (NOT ${project} STREQUAL LLVM AND TARGET ${project}-tablegen-host) + if (NOT ${project} STREQUAL LLVM AND TARGET ${project}-tablegen-host AND + TARGET LLVM-tablegen-host) add_dependencies(${project}-tablegen-host LLVM-tablegen-host) endif() endif() -- 2.50.1