mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
ddcad306ab
LLVM CMake build already uses libtool instead of ar when building for Apple platform and we should be using the same when building runtimes. To do so, this change extracts the logic for finding libtool into a separate file and then uses it from both the LLVM build as well as the LLVM runtimes build. Differential Revision: https://reviews.llvm.org/D62769 llvm-svn: 362313
51 lines
1.7 KiB
CMake
51 lines
1.7 KiB
CMake
# if CMAKE_LIBTOOL is not set, try and find it with xcrun or find_program
|
|
if(NOT CMAKE_LIBTOOL)
|
|
if(NOT CMAKE_XCRUN)
|
|
find_program(CMAKE_XCRUN NAMES xcrun)
|
|
endif()
|
|
if(CMAKE_XCRUN)
|
|
execute_process(COMMAND ${CMAKE_XCRUN} -find libtool
|
|
OUTPUT_VARIABLE CMAKE_LIBTOOL
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
endif()
|
|
|
|
if(NOT CMAKE_LIBTOOL OR NOT EXISTS CMAKE_LIBTOOL)
|
|
find_program(CMAKE_LIBTOOL NAMES libtool)
|
|
endif()
|
|
endif()
|
|
|
|
get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES)
|
|
if(CMAKE_LIBTOOL)
|
|
set(CMAKE_LIBTOOL ${CMAKE_LIBTOOL} CACHE PATH "libtool executable")
|
|
message(STATUS "Found libtool - ${CMAKE_LIBTOOL}")
|
|
|
|
execute_process(COMMAND ${CMAKE_LIBTOOL} -V
|
|
OUTPUT_VARIABLE LIBTOOL_V_OUTPUT
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if("${LIBTOOL_V_OUTPUT}" MATCHES ".*cctools-([0-9.]+).*")
|
|
string(REGEX REPLACE ".*cctools-([0-9.]+).*" "\\1" LIBTOOL_VERSION
|
|
${LIBTOOL_V_OUTPUT})
|
|
if(NOT LIBTOOL_VERSION VERSION_LESS "862")
|
|
set(LIBTOOL_NO_WARNING_FLAG "-no_warning_for_no_symbols")
|
|
endif()
|
|
endif()
|
|
|
|
foreach(lang ${languages})
|
|
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY
|
|
"\"${CMAKE_LIBTOOL}\" -static ${LIBTOOL_NO_WARNING_FLAG} -o <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
endforeach()
|
|
endif()
|
|
|
|
# If DYLD_LIBRARY_PATH is set we need to set it on archiver commands
|
|
if(DYLD_LIBRARY_PATH)
|
|
set(dyld_envar "DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}")
|
|
foreach(lang ${languages})
|
|
foreach(cmd ${CMAKE_${lang}_CREATE_STATIC_LIBRARY})
|
|
list(APPEND CMAKE_${lang}_CREATE_STATIC_LIBRARY_NEW
|
|
"${dyld_envar} ${cmd}")
|
|
endforeach()
|
|
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY
|
|
${CMAKE_${lang}_CREATE_STATIC_LIBRARY_NEW})
|
|
endforeach()
|
|
endif()
|