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