Модуль: OS::Linux::Superenv Закрытый
Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.
Определено в пространстве имён
Модули: ClassMethods
Краткое описание методов экземпляра свернуть
- #determine_dynamic_linker_path ⇒ String? закрытый
- #determine_rpath_paths(formula) ⇒ PATH закрытый
- #homebrew_extra_isystem_paths ⇒ Array<::Pathname> закрытый
- #homebrew_extra_paths ⇒ Array<::Pathname> закрытый
- #setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_arch: nil, testing_formula: false, debug_symbols: false) ⇒ void закрытый
Подробное описание методов экземпляра
#determine_dynamic_linker_path ⇒ String?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
93 94 95 96 97 98 | # File 'extend/os/linux/extend/ENV/super.rb', line 93 def determine_dynamic_linker_path path = "#{HOMEBREW_PREFIX}/lib/ld.so" return unless File.readable? path path end |
#determine_rpath_paths(formula) ⇒ PATH
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
83 84 85 86 87 88 89 90 | # File 'extend/os/linux/extend/ENV/super.rb', line 83 def determine_rpath_paths(formula) PATH.new( *formula&.lib, "#{HOMEBREW_PREFIX}/opt/gcc/lib/gcc/current", PATH.new(run_time_deps.map { |dep| dep.opt_lib.to_s }).existing, "#{HOMEBREW_PREFIX}/lib", ) end |
#homebrew_extra_isystem_paths ⇒ Array<::Pathname>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
71 72 73 74 75 76 77 78 79 80 | # File 'extend/os/linux/extend/ENV/super.rb', line 71 def homebrew_extra_isystem_paths paths = [] # Add paths for GCC headers when building against versioned glibc because we have to use -nostdinc. if deps.any? { |d| d.name.match?(/^glibc@.+$/) } gcc_include_dir = Utils.safe_popen_read(cc, "--print-file-name=include").chomp gcc_include_fixed_dir = Utils.safe_popen_read(cc, "--print-file-name=include-fixed").chomp paths << gcc_include_dir << gcc_include_fixed_dir end paths.map { |p| ::Pathname.new(p) } end |
#homebrew_extra_paths ⇒ Array<::Pathname>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
59 60 61 62 63 64 65 66 67 68 | # File 'extend/os/linux/extend/ENV/super.rb', line 59 def homebrew_extra_paths paths = super paths += %w[binutilsmake].filter_map do |f| bin = ::Formula[f].opt_bin bin if bin.directory? rescue FormulaUnavailableError nil end paths end |
#setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_arch: nil, testing_formula: false, debug_symbols: false) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | # File 'extend/os/linux/extend/ENV/super.rb', line 34 def setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_arch: nil, testing_formula: false, debug_symbols: false) super self["HOMEBREW_OPTIMIZATION_LEVEL"] = "O2" self["HOMEBREW_DYNAMIC_LINKER"] = determine_dynamic_linker_path self["HOMEBREW_RPATH_PATHS"] = determine_rpath_paths(formula) m4_path_deps = ["libtool", "bison"] self["M4"] = "#{HOMEBREW_PREFIX}/opt/m4/bin/m4" if deps.any? { m4_path_deps.include?(it.name) } return unless ::Hardware::CPU.arm64? # Build jemalloc-sys rust crate on ARM64/AArch64 with support for page sizes up to 64K. self["JEMALLOC_SYS_WITH_LG_PAGE"] = "16" # Workaround patchelf.rb bug causing segfaults and preventing bottling on ARM64/AArch64 # https://github.com/Homebrew/homebrew-core/issues/163826 self["CGO_ENABLED"] = "0" # Pointer authentication and BTI are hardening techniques most distros # use by default on their packages. arm64 Linux we're packaging # everything from scratch so the entire dependency tree can have it. append_to_cccfg "b" if ::DevelopmentTools.gcc_version("gcc") >= 9 end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/OS/Linux/Superenv.html