[Lldb-commits] [PATCH] D65797: [lldb][CMake] Generating Xcode projects

Stefan Gränitz via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Aug 6 03:25:49 PDT 2019


sgraenitz created this revision.
sgraenitz added reviewers: JDevlieghere, jingham, clayborg.
Herald added a subscriber: mgorny.
Herald added a project: LLDB.

Print a warning if the wrong cache script is used when generating a Xcode project, because it's too easy to confuse with Apple-lldb-macOS.cmake

  CMake Warning at cmake/modules/LLDBConfig.cmake:76 (message):
    When building with Xcode, please use the corresponding cache script.  Clean
    your build directory and re-run CMake with:
  
      -C /path/to/llvm-project/lldb/cmake/caches/Apple-lldb-Xcode.cmake
  
    See: https://lldb.llvm.org/resources/build.html#cmakegeneratedxcodeproject

Also set the generator inside the cache script.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65797

Files:
  lldb/cmake/caches/Apple-lldb-Xcode.cmake
  lldb/cmake/modules/LLDBConfig.cmake
  lldb/docs/resources/build.rst


Index: lldb/docs/resources/build.rst
===================================================================
--- lldb/docs/resources/build.rst
+++ lldb/docs/resources/build.rst
@@ -320,7 +320,7 @@
           llvm-project/llvm
   > ninja -C /path/to/llvm-build
 
-  > cmake -B /path/to/lldb-build -G Xcode \
+  > cmake -B /path/to/lldb-build \
           -C /path/to/llvm-project/lldb/cmake/caches/Apple-lldb-Xcode.cmake \
           -DLLVM_DIR=/path/to/llvm-build/lib/cmake/llvm \
           -DClang_DIR=/path/to/llvm-build/lib/cmake/clang \
Index: lldb/cmake/modules/LLDBConfig.cmake
===================================================================
--- lldb/cmake/modules/LLDBConfig.cmake
+++ lldb/cmake/modules/LLDBConfig.cmake
@@ -71,6 +71,16 @@
       "Directory to emit dSYM files stripped from executables and libraries (Darwin Only)")
 endif()
 
+if(APPLE AND CMAKE_GENERATOR STREQUAL Xcode)
+  if(NOT LLDB_EXPLICIT_XCODE_CACHE_USED)
+    message(WARNING
+      "When building with Xcode, please use the corresponding cache script. "
+      "Clean your build directory and re-run CMake with:\n"
+      "  -C ${CMAKE_SOURCE_DIR}/cmake/caches/Apple-lldb-Xcode.cmake\n"
+      "See: https://lldb.llvm.org/resources/build.html#cmakegeneratedxcodeproject\n")
+  endif()
+endif()
+
 if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
   set(LLDB_EXPORT_ALL_SYMBOLS 0 CACHE BOOL
     "Causes lldb to export all symbols when building liblldb.")
Index: lldb/cmake/caches/Apple-lldb-Xcode.cmake
===================================================================
--- lldb/cmake/caches/Apple-lldb-Xcode.cmake
+++ lldb/cmake/caches/Apple-lldb-Xcode.cmake
@@ -1,5 +1,11 @@
 include(${CMAKE_CURRENT_LIST_DIR}/Apple-lldb-base.cmake)
 
-set(LLDB_BUILD_FRAMEWORK ON CACHE BOOL "")
+set(CMAKE_GENERATOR Xcode)
 set(CMAKE_OSX_DEPLOYMENT_TARGET 10.11 CACHE STRING "")
 set(CMAKE_XCODE_GENERATE_SCHEME ON CACHE BOOL "")
+
+set(LLDB_BUILD_FRAMEWORK ON CACHE BOOL "")
+
+# Print a warning with instructions, if we
+# build with Xcode and didn't use this cache.
+set(LLDB_EXPLICIT_XCODE_CACHE_USED ON CACHE INTERNAL "")


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65797.213564.patch
Type: text/x-patch
Size: 2096 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190806/819eed13/attachment.bin>


More information about the lldb-commits mailing list