Skip to content

Commit cc5733a

Browse files
authored
Merge pull request #10704 from chelcassanova/cherry/6.2/fix-cmake4-macos-build
[lldb][cmake] Error out when building debugserver with CMake 4
2 parents 455ce1c + 4129ab9 commit cc5733a

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lldb/tools/debugserver/source/CMakeLists.txt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,21 @@ endif()
154154

155155
add_definitions(-DLLDB_USE_OS_LOG)
156156

157+
# Make sure we have the macOS SDK root as mig needs it and will silently
158+
# fail to generate its output files without it.
159+
if(CMAKE_OSX_SYSROOT)
160+
set(MIG_SYSROOT ${CMAKE_OSX_SYSROOT})
161+
else()
162+
execute_process(COMMAND xcrun --show-sdk-path
163+
OUTPUT_VARIABLE MIG_SYSROOT
164+
ERROR_QUIET
165+
OUTPUT_STRIP_TRAILING_WHITESPACE)
166+
endif()
167+
168+
if(NOT MIG_SYSROOT)
169+
message(FATAL_ERROR "Unable to obtain sysroot required by mig (Mach Interface Generator). Set CMAKE_OSX_SYSROOT to explicitly specify a sysroot.")
170+
endif()
171+
157172
if(${CMAKE_OSX_SYSROOT} MATCHES ".Internal.sdk$")
158173
message(STATUS "LLDB debugserver energy support is enabled")
159174
add_definitions(-DLLDB_ENERGY)
@@ -177,7 +192,7 @@ endif()
177192
separate_arguments(MIG_ARCH_FLAGS_SEPARTED NATIVE_COMMAND "${MIG_ARCH_FLAGS}")
178193

179194
add_custom_command(OUTPUT ${generated_mach_interfaces}
180-
VERBATIM COMMAND mig ${MIG_ARCH_FLAGS_SEPARTED} -isysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs
195+
VERBATIM COMMAND mig ${MIG_ARCH_FLAGS_SEPARTED} -isysroot ${MIG_SYSROOT} ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs
181196
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs
182197
)
183198

0 commit comments

Comments
 (0)