| # Get the linker version on Darwin |
| function(get_darwin_linker_version variable) |
| set(LINK_VERSION) |
| set(LD_V_OUTPUT) |
| execute_process( |
| COMMAND sh -c "${CMAKE_LINKER} -v 2>&1 | head -1" |
| RESULT_VARIABLE HAD_ERROR |
| OUTPUT_VARIABLE LD_V_OUTPUT |
| ) |
| if (HAD_ERROR) |
| message(FATAL_ERROR "${CMAKE_LINKER} failed with status ${HAD_ERROR}") |
| endif() |
| if ("${LD_V_OUTPUT}" MATCHES ".*ld64-([0-9.]+).*") |
| string(REGEX REPLACE ".*ld64-([0-9.]+).*" "\\1" LINK_VERSION ${LD_V_OUTPUT}) |
| elseif ("${LD_V_OUTPUT}" MATCHES "[^0-9]*([0-9.]+).*") |
| string(REGEX REPLACE "[^0-9]*([0-9.]+).*" "\\1" LINK_VERSION ${LD_V_OUTPUT}) |
| endif() |
| set(${variable} ${LINK_VERSION} PARENT_SCOPE) |
| endfunction() |