https://github.com/adrian-prantl updated https://github.com/llvm/llvm-project/pull/90666
>From 6950a36e2619f032f2dd41f258f171b876274bd5 Mon Sep 17 00:00:00 2001 From: Adrian Prantl <apra...@apple.com> Date: Tue, 30 Apr 2024 13:59:39 -0700 Subject: [PATCH] Install generated API headers into LLDB.framework --- lldb/cmake/modules/LLDBConfig.cmake | 6 ++++++ lldb/cmake/modules/LLDBFramework.cmake | 2 ++ lldb/packages/Python/lldbsuite/test/builders/builder.py | 4 ++++ lldb/packages/Python/lldbsuite/test/builders/darwin.py | 1 - lldb/packages/Python/lldbsuite/test/make/Makefile.rules | 5 +++-- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake index a758261073ac57..2b0a319472ce95 100644 --- a/lldb/cmake/modules/LLDBConfig.cmake +++ b/lldb/cmake/modules/LLDBConfig.cmake @@ -8,6 +8,12 @@ set(LLDB_INCLUDE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/include") set(LLDB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(LLDB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) +if (LLDB_BUILT_STANDALONE) + set(LLDB_OBJ_DIR ${CMAKE_CURRENT_BINARY_DIR}) +else() + set(LLDB_OBJ_DIR ${CMAKE_CURRENT_BINARY_DIR}/tools/lldb) +endif() + if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "In-source builds are not allowed. CMake would overwrite the makefiles " diff --git a/lldb/cmake/modules/LLDBFramework.cmake b/lldb/cmake/modules/LLDBFramework.cmake index f915839f6b45a5..3805ba17e5bec9 100644 --- a/lldb/cmake/modules/LLDBFramework.cmake +++ b/lldb/cmake/modules/LLDBFramework.cmake @@ -71,6 +71,7 @@ endif() # At configuration time, collect headers for the framework bundle and copy them # into a staging directory. Later we can copy over the entire folder. file(GLOB public_headers ${LLDB_SOURCE_DIR}/include/lldb/API/*.h) +file(GLOB generated_public_headers ${LLDB_OBJ_DIR}//include/lldb/API/*.h) file(GLOB root_public_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-*.h) file(GLOB root_private_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-private*.h) list(REMOVE_ITEM root_public_headers ${root_private_headers}) @@ -80,6 +81,7 @@ find_program(unifdef_EXECUTABLE unifdef) set(lldb_header_staging ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders) foreach(header ${public_headers} + ${generated_public_headers} ${root_public_headers}) get_filename_component(basename ${header} NAME) diff --git a/lldb/packages/Python/lldbsuite/test/builders/builder.py b/lldb/packages/Python/lldbsuite/test/builders/builder.py index 823a982e674380..21ea3530e24fcb 100644 --- a/lldb/packages/Python/lldbsuite/test/builders/builder.py +++ b/lldb/packages/Python/lldbsuite/test/builders/builder.py @@ -148,6 +148,9 @@ def getLibCxxArgs(self): return libcpp_args return [] + def getLLDBObjRoot(self): + return ["LLDB_OBJ_ROOT={}".format(configuration.lldb_obj_root)] + def _getDebugInfoArgs(self, debug_info): if debug_info is None: return [] @@ -185,6 +188,7 @@ def getBuildCommand( self.getSDKRootSpec(), self.getModuleCacheSpec(), self.getLibCxxArgs(), + self.getLLDBObjRoot(), self.getCmdLine(dictionary), ] command = list(itertools.chain(*command_parts)) diff --git a/lldb/packages/Python/lldbsuite/test/builders/darwin.py b/lldb/packages/Python/lldbsuite/test/builders/darwin.py index a023bda3ad8010..af393696700915 100644 --- a/lldb/packages/Python/lldbsuite/test/builders/darwin.py +++ b/lldb/packages/Python/lldbsuite/test/builders/darwin.py @@ -88,7 +88,6 @@ def getExtraMakeArgs(self): args["FRAMEWORK_INCLUDES"] = "-F{}".format(private_frameworks) operating_system, env = get_os_and_env() - builder_dir = os.path.dirname(os.path.abspath(__file__)) test_dir = os.path.dirname(builder_dir) if not operating_system: diff --git a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules index bfd249ccd43f2e..bd8eea3d6f5a04 100644 --- a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules +++ b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules @@ -238,10 +238,11 @@ ifeq "$(OS)" "Darwin" endif ifeq "$(OS)" "Darwin" - CFLAGS += $(ARCHFLAG) $(ARCH) $(FRAMEWORK_INCLUDES) -I$(LLDB_BASE_DIR)include + CFLAGS += $(ARCHFLAG) $(ARCH) $(FRAMEWORK_INCLUDES) else - CFLAGS += $(ARCHFLAG)$(ARCH) $(FRAMEWORK_INCLUDES) -I$(LLDB_BASE_DIR)include + CFLAGS += $(ARCHFLAG)$(ARCH) endif +CFLAGS += -I$(LLDB_BASE_DIR)include -I$(LLDB_OBJ_ROOT)/include CFLAGS += -I$(SRCDIR) -I$(THIS_FILE_DIR) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits