File: UseLibtool.cmake

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (50 lines) | stat: -rw-r--r-- 1,721 bytes parent folder | download | duplicates (27)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 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()