| # 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() |