Skip to content

Commit

Permalink
[lldb][CMake] Generating Xcode projects
Browse files Browse the repository at this point in the history
Summary:
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

```
  When building with Xcode, we recommend using the corresponding cache
  script.  If this was a mistake, 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.

Reviewers: JDevlieghere, jingham, clayborg

Reviewed By: JDevlieghere

Subscribers: mgorny, lldb-commits, #lldb

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D65797

llvm-svn: 368066
  • Loading branch information
weliveindetail committed Aug 6, 2019
1 parent c8ac029 commit 7f34a36
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
8 changes: 7 additions & 1 deletion 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 "")
10 changes: 10 additions & 0 deletions lldb/cmake/modules/LLDBConfig.cmake
Expand Up @@ -71,6 +71,16 @@ if(LLDB_BUILD_FRAMEWORK)
"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, we recommend using the corresponding cache script. "
"If this was a mistake, clean your lean 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.")
Expand Down
2 changes: 1 addition & 1 deletion lldb/docs/resources/build.rst
Expand Up @@ -320,7 +320,7 @@ Build LLDB standalone for development with Xcode:
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 \
Expand Down

0 comments on commit 7f34a36

Please sign in to comment.