Spec-Zone.ru › Homebrew

Модуль: OS::Mac::Stdenv Закрытый

Расширен модулем:
T::Helpers
Включён в:
Stdenv
Определён в:
extend/os/mac/extend/ENV/std.rb

Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.

Краткое описание методов экземпляра свернуть

  • #libxml2 ⇒ void закрытый

    Некоторые скрипты configure не могут найти libxml2 без помощи.

  • #macosxsdk(version = nil, formula: nil, testing_formula: false) ⇒ void закрытый
  • #no_fixup_chains ⇒ void закрытый
  • #no_weak_imports ⇒ void закрытый
  • #remove_macosxsdk(version = nil) ⇒ void закрытый
  • #setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_arch: nil, testing_formula: false, debug_symbols: false) ⇒ void закрытый

Подробное описание методов экземпляра

#libxml2 ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Некоторые скрипты configure не могут найти libxml2 без помощи. Начиная с SDK macOS 10.15.4 этот метод ничего не делает.



108
109
110
111
112
# File 'extend/os/mac/extend/ENV/std.rb', line 108

def libxml2
  sdk = self["SDKROOT"] || MacOS.sdk_path
  # Use the includes from the sdk
  append "CPPFLAGS", "-I#{sdk}/usr/include/libxml2" unless Pathname("#{sdk}/usr/include/libxml").directory?
end

#macosxsdk(version = nil, formula: nil, testing_formula: false) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • version (MacOSVersion, nil) (по умолчанию: nil)
  • formula (Formula, nil) (по умолчанию: nil)
  • testing_formula (Boolean) (по умолчанию: false)


74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'extend/os/mac/extend/ENV/std.rb', line 74

def macosxsdk(version = nil, formula: nil, testing_formula: false)
  # Sets all needed `lib` and `include` dirs to `CFLAGS`, `CPPFLAGS`, `LDFLAGS`.
  remove_macosxsdk
  min_version = version || MacOS.version
  append_to_cflags("-mmacosx-version-min=#{min_version}")
  self["CPATH"] = "#{HOMEBREW_PREFIX}/include"
  prepend "LDFLAGS", "-L#{HOMEBREW_PREFIX}/lib"

  sdk = if formula
    MacOS.sdk_for_formula(formula, version, check_only_runtime_requirements: testing_formula)
  else
    MacOS.sdk(version)
  end

  Homebrew::Diagnostic.checks(:fatal_setup_build_environment_checks)
  sdk = T.must(sdk).path

  # Extra setup to support Xcode 4.3+ without CLT.
  self["SDKROOT"] = sdk.to_s
  # Tell clang/gcc where system include's are:
  append_path "CPATH", "#{sdk}/usr/include"
  # The -isysroot is needed, too, because of the Frameworks
  append_to_cflags "-isysroot#{sdk}"
  append "CPPFLAGS", "-isysroot#{sdk}"
  # And the linker needs to find sdk/usr/lib
  append "LDFLAGS", "-isysroot#{sdk}"
  # Needed to build cmake itself and perhaps some cmake projects:
  append_path "CMAKE_PREFIX_PATH", "#{sdk}/usr"
  append_path "CMAKE_FRAMEWORK_PATH", "#{sdk}/System/Library/Frameworks"
end

#no_fixup_chains ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.



122
123
124
125
126
# File 'extend/os/mac/extend/ENV/std.rb', line 122

def no_fixup_chains
  # This has little-to-no usage and behaved inconsistently with the superenv equivalent.
  odeprecated "ENV.no_fixup_chains"
  append "LDFLAGS", "-Wl,-no_fixup_chains" if no_fixup_chains_support?
end

#no_weak_imports ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.



115
116
117
118
119
# File 'extend/os/mac/extend/ENV/std.rb', line 115

def no_weak_imports
  # This has little-to-no usage and doesn't make sense to have a special function for.
  odeprecated "ENV.no_weak_imports"
  append "LDFLAGS", "-Wl,-no_weak_imports" if no_weak_imports_support?
end

#remove_macosxsdk(version = nil) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • version (MacOSVersion, nil) (по умолчанию: nil)


50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'extend/os/mac/extend/ENV/std.rb', line 50

def remove_macosxsdk(version = nil)
  # Clear all `lib` and `include` dirs from `CFLAGS`, `CPPFLAGS`, `LDFLAGS` that were
  # previously added by `macosxsdk`.
  remove_from_cflags(/ ?-mmacosx-version-min=\d+\.\d+/)
  delete("CPATH")
  remove "LDFLAGS", "-L#{HOMEBREW_PREFIX}/lib"

  sdk = self["SDKROOT"] || MacOS.sdk_path(version)
  return unless sdk

  delete("SDKROOT")
  remove_from_cflags "-isysroot#{sdk}"
  remove "CPPFLAGS", "-isysroot#{sdk}"
  remove "LDFLAGS", "-isysroot#{sdk}"
  if HOMEBREW_PREFIX.to_s == "/usr/local"
    delete("CMAKE_PREFIX_PATH")
  else
    # It was set in `setup_build_environment`, so we have to restore it here.
    self["CMAKE_PREFIX_PATH"] = HOMEBREW_PREFIX.to_s
  end
  remove "CMAKE_FRAMEWORK_PATH", "#{sdk}/System/Library/Frameworks"
end

#setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_arch: nil, testing_formula: false, debug_symbols: false) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • formula (Formula, nil) (по умолчанию: nil)
  • cc (String, nil) (по умолчанию: nil)
  • build_bottle (Boolean, nil) (по умолчанию: false)
  • bottle_arch (String, nil) (по умолчанию: nil)
  • testing_formula (Boolean) (по умолчанию: false)
  • debug_symbols (Boolean, nil) (по умолчанию: false)


30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'extend/os/mac/extend/ENV/std.rb', line 30

def setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_arch: nil,
                            testing_formula: false, debug_symbols: false)
  super

  append "LDFLAGS", "-Wl,-headerpad_max_install_names"

  # `sed` is strict and errors out when it encounters files with mixed character sets.
  delete("LC_ALL")
  self["LC_CTYPE"] = "C"

  # Add `lib` and `include` etc. from the current `macosxsdk` to compiler flags:
  macosxsdk(formula:, testing_formula:)

  return unless MacOS::Xcode.without_clt?

  append_path "PATH", "#{MacOS::Xcode.prefix}/usr/bin"
  append_path "PATH", "#{MacOS::Xcode.toolchain_path}/usr/bin"
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/OS/Mac/Stdenv.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API