From 93d1a7bfc1808c89096ef092439be703830b28ac Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Tue, 15 Nov 2022 10:25:27 -0600 Subject: [PATCH] [libc] Fix tablegen when using a runtimes build When using `LLVM_ENABLE_RUNTIMES=libc` we need to perform a few extra steps to include LLVM utilities similar to if we were performing a standalone build. Libc depends on the tablegen utilities and the LLVM libraries when performing a full build. When using an `LLVM_ENABLE_PROJECTS=libc` build these are included as a part of the greater LLVM build, but here we need to perform it maunally. This patch should allow using `LLVM_LIBC_FULL_BUILD=ON` when building with runtimes. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D138040 --- libc/CMakeLists.txt | 6 ++++++ libc/utils/HdrGen/CMakeLists.txt | 2 +- libc/utils/LibcTableGenUtil/CMakeLists.txt | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt index eff5e00..377c871 100644 --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -14,6 +14,12 @@ set(LIBC_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) # The top-level directory in which libc is being built. set(LIBC_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}) +# For a runtimes build we need to manually include tablgen and LLVM directories. +if ("libc" IN_LIST LLVM_ENABLE_RUNTIMES) + include(TableGen) + set(LLVM_LIBC_INCLUDE_DIRS ${LLVM_MAIN_INCLUDE_DIR} ${LLVM_BINARY_DIR}/include) +endif() + # Path libc/scripts directory. set(LIBC_BUILD_SCRIPTS_DIR "${LIBC_SOURCE_DIR}/utils/build_scripts") diff --git a/libc/utils/HdrGen/CMakeLists.txt b/libc/utils/HdrGen/CMakeLists.txt index 75192a0..1b361f4 100644 --- a/libc/utils/HdrGen/CMakeLists.txt +++ b/libc/utils/HdrGen/CMakeLists.txt @@ -12,7 +12,7 @@ add_tablegen(libc-hdrgen LIBC PublicAPICommand.h ) -target_include_directories(libc-hdrgen PRIVATE ${LIBC_SOURCE_DIR}) +target_include_directories(libc-hdrgen PRIVATE ${LIBC_SOURCE_DIR} ${LLVM_LIBC_INCLUDE_DIRS}) target_link_libraries(libc-hdrgen PRIVATE LibcTableGenUtil) add_subdirectory(PrototypeTestGen) diff --git a/libc/utils/LibcTableGenUtil/CMakeLists.txt b/libc/utils/LibcTableGenUtil/CMakeLists.txt index d2632a2..41881e7 100644 --- a/libc/utils/LibcTableGenUtil/CMakeLists.txt +++ b/libc/utils/LibcTableGenUtil/CMakeLists.txt @@ -4,4 +4,4 @@ add_llvm_library( APIIndexer.h LINK_COMPONENTS Support TableGen ) -target_include_directories(LibcTableGenUtil PUBLIC ${LIBC_SOURCE_DIR}) +target_include_directories(LibcTableGenUtil PUBLIC ${LIBC_SOURCE_DIR} ${LLVM_LIBC_INCLUDE_DIRS}) -- 2.7.4