1*7330f729Sjoerg# if CMAKE_LIBTOOL is not set, try and find it with xcrun or find_program 2*7330f729Sjoergif(NOT CMAKE_LIBTOOL) 3*7330f729Sjoerg if(NOT CMAKE_XCRUN) 4*7330f729Sjoerg find_program(CMAKE_XCRUN NAMES xcrun) 5*7330f729Sjoerg endif() 6*7330f729Sjoerg if(CMAKE_XCRUN) 7*7330f729Sjoerg execute_process(COMMAND ${CMAKE_XCRUN} -find libtool 8*7330f729Sjoerg OUTPUT_VARIABLE CMAKE_LIBTOOL 9*7330f729Sjoerg OUTPUT_STRIP_TRAILING_WHITESPACE) 10*7330f729Sjoerg endif() 11*7330f729Sjoerg 12*7330f729Sjoerg if(NOT CMAKE_LIBTOOL OR NOT EXISTS CMAKE_LIBTOOL) 13*7330f729Sjoerg find_program(CMAKE_LIBTOOL NAMES libtool) 14*7330f729Sjoerg endif() 15*7330f729Sjoergendif() 16*7330f729Sjoerg 17*7330f729Sjoergget_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) 18*7330f729Sjoergif(CMAKE_LIBTOOL) 19*7330f729Sjoerg set(CMAKE_LIBTOOL ${CMAKE_LIBTOOL} CACHE PATH "libtool executable") 20*7330f729Sjoerg message(STATUS "Found libtool - ${CMAKE_LIBTOOL}") 21*7330f729Sjoerg 22*7330f729Sjoerg execute_process(COMMAND ${CMAKE_LIBTOOL} -V 23*7330f729Sjoerg OUTPUT_VARIABLE LIBTOOL_V_OUTPUT 24*7330f729Sjoerg OUTPUT_STRIP_TRAILING_WHITESPACE) 25*7330f729Sjoerg if("${LIBTOOL_V_OUTPUT}" MATCHES ".*cctools-([0-9.]+).*") 26*7330f729Sjoerg string(REGEX REPLACE ".*cctools-([0-9.]+).*" "\\1" LIBTOOL_VERSION 27*7330f729Sjoerg ${LIBTOOL_V_OUTPUT}) 28*7330f729Sjoerg if(NOT LIBTOOL_VERSION VERSION_LESS "862") 29*7330f729Sjoerg set(LIBTOOL_NO_WARNING_FLAG "-no_warning_for_no_symbols") 30*7330f729Sjoerg endif() 31*7330f729Sjoerg endif() 32*7330f729Sjoerg 33*7330f729Sjoerg foreach(lang ${languages}) 34*7330f729Sjoerg set(CMAKE_${lang}_CREATE_STATIC_LIBRARY 35*7330f729Sjoerg "\"${CMAKE_LIBTOOL}\" -static ${LIBTOOL_NO_WARNING_FLAG} -o <TARGET> <LINK_FLAGS> <OBJECTS>") 36*7330f729Sjoerg endforeach() 37*7330f729Sjoergendif() 38*7330f729Sjoerg 39*7330f729Sjoerg# If DYLD_LIBRARY_PATH is set we need to set it on archiver commands 40*7330f729Sjoergif(DYLD_LIBRARY_PATH) 41*7330f729Sjoerg set(dyld_envar "DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}") 42*7330f729Sjoerg foreach(lang ${languages}) 43*7330f729Sjoerg foreach(cmd ${CMAKE_${lang}_CREATE_STATIC_LIBRARY}) 44*7330f729Sjoerg list(APPEND CMAKE_${lang}_CREATE_STATIC_LIBRARY_NEW 45*7330f729Sjoerg "${dyld_envar} ${cmd}") 46*7330f729Sjoerg endforeach() 47*7330f729Sjoerg set(CMAKE_${lang}_CREATE_STATIC_LIBRARY 48*7330f729Sjoerg ${CMAKE_${lang}_CREATE_STATIC_LIBRARY_NEW}) 49*7330f729Sjoerg endforeach() 50*7330f729Sjoergendif() 51