Skip to content

Commit ca12bbb

Browse files
committed
[CMake] Respect CMAKE_STRIP and CMAKE_DSYMUTIL on apple platforms
This allows overriding the strip and dsymutil tools, and updates iOS.cmake to do so. I've also added libtool to iOS.cmake, but it was already respecting CMAKE_LIBTOOL if set. llvm-svn: 335900
1 parent 21e7aab commit ca12bbb

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

llvm/cmake/modules/AddLLVM.cmake

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1557,7 +1557,10 @@ function(llvm_externalize_debuginfo name)
15571557

15581558
if(NOT LLVM_EXTERNALIZE_DEBUGINFO_SKIP_STRIP)
15591559
if(APPLE)
1560-
set(strip_command COMMAND xcrun strip -Sxl $<TARGET_FILE:${name}>)
1560+
if(NOT CMAKE_STRIP)
1561+
set(CMAKE_STRIP xcrun strip)
1562+
endif()
1563+
set(strip_command COMMAND ${CMAKE_STRIP} -Sxl $<TARGET_FILE:${name}>)
15611564
else()
15621565
set(strip_command COMMAND ${CMAKE_STRIP} -gx $<TARGET_FILE:${name}>)
15631566
endif()
@@ -1571,8 +1574,11 @@ function(llvm_externalize_debuginfo name)
15711574
set_property(TARGET ${name} APPEND_STRING PROPERTY
15721575
LINK_FLAGS " -Wl,-object_path_lto,${lto_object}")
15731576
endif()
1577+
if(NOT CMAKE_DSYMUTIL)
1578+
set(CMAKE_DSYMUTIL xcrun dsymutil)
1579+
endif()
15741580
add_custom_command(TARGET ${name} POST_BUILD
1575-
COMMAND xcrun dsymutil $<TARGET_FILE:${name}>
1581+
COMMAND ${CMAKE_DSYMUTIL} $<TARGET_FILE:${name}>
15761582
${strip_command}
15771583
)
15781584
else()

llvm/cmake/platforms/iOS.cmake

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,30 @@ IF(NOT CMAKE_RANLIB)
5353
SET(CMAKE_RANLIB ${CMAKE_RANLIB_val} CACHE FILEPATH "Ranlib")
5454
message(STATUS "Using ranlib ${CMAKE_RANLIB}")
5555
ENDIF()
56+
57+
IF(NOT CMAKE_STRIP)
58+
execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find strip
59+
OUTPUT_VARIABLE CMAKE_STRIP_val
60+
ERROR_QUIET
61+
OUTPUT_STRIP_TRAILING_WHITESPACE)
62+
SET(CMAKE_STRIP ${CMAKE_STRIP_val} CACHE FILEPATH "Strip")
63+
message(STATUS "Using strip ${CMAKE_STRIP}")
64+
ENDIF()
65+
66+
IF(NOT CMAKE_DSYMUTIL)
67+
execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find dsymutil
68+
OUTPUT_VARIABLE CMAKE_DSYMUTIL_val
69+
ERROR_QUIET
70+
OUTPUT_STRIP_TRAILING_WHITESPACE)
71+
SET(CMAKE_DSYMUTIL ${CMAKE_DSYMUTIL_val} CACHE FILEPATH "Dsymutil")
72+
message(STATUS "Using dsymutil ${CMAKE_DSYMUTIL}")
73+
ENDIF()
74+
75+
IF(NOT CMAKE_LIBTOOL)
76+
execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find libtool
77+
OUTPUT_VARIABLE CMAKE_LIBTOOL_val
78+
ERROR_QUIET
79+
OUTPUT_STRIP_TRAILING_WHITESPACE)
80+
SET(CMAKE_LIBTOOL ${CMAKE_LIBTOOL_val} CACHE FILEPATH "Libtool")
81+
message(STATUS "Using libtool ${CMAKE_LIBTOOL}")
82+
ENDIF()

0 commit comments

Comments
 (0)