Module: OS::Mac::Superenv Private
This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #determine_cccfg ⇒ String private
- #homebrew_extra_cmake_frameworks_paths ⇒ Array<::Pathname> private
- #homebrew_extra_cmake_include_paths ⇒ Array<::Pathname> private
- #homebrew_extra_cmake_library_paths ⇒ Array<::Pathname> private
- #homebrew_extra_isystem_paths ⇒ Array<::Pathname> private
- #homebrew_extra_library_paths ⇒ Array<::Pathname> private
- #homebrew_extra_pkg_config_paths ⇒ Array<::Pathname> private
- #libxml2_include_needed? ⇒ Boolean private
- #no_fixup_chains ⇒ void private
- #no_weak_imports ⇒ void private
Instance Method Details
#determine_cccfg ⇒ String
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
86 87 88 89 90 91 92 93 94 95 96 |
# File 'extend/os/mac/extend/ENV/super.rb', line 86 def determine_cccfg s = +"" # Pass `-no_fixup_chains` whenever the linker is invoked with `-undefined dynamic_lookup`. # See: https://github.com/python/cpython/issues/97524 # https://github.com/pybind/pybind11/pull/4301 s << "f" if no_fixup_chains_support? # Pass `-ld_classic` whenever the linker is invoked with `-dead_strip_dylibs` # on `ld` versions that don't properly handle that option. s << "c" if ::DevelopmentTools.ld64_version.between?("1015.7", "1022.1") s.freeze end |
#homebrew_extra_cmake_frameworks_paths ⇒ Array<::Pathname>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
79 80 81 82 83 |
# File 'extend/os/mac/extend/ENV/super.rb', line 79 def homebrew_extra_cmake_frameworks_paths paths = [] paths << "#{self["HOMEBREW_SDKROOT"]}/System/Library/Frameworks" if MacOS::Xcode.without_clt? paths.map { |p| ::Pathname.new(p) } end |
#homebrew_extra_cmake_include_paths ⇒ Array<::Pathname>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
63 64 65 66 67 68 69 |
# File 'extend/os/mac/extend/ENV/super.rb', line 63 def homebrew_extra_cmake_include_paths paths = [] paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/libxml2" if libxml2_include_needed? paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/apache2" if MacOS::Xcode.without_clt? paths << "#{self["HOMEBREW_SDKROOT"]}/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers" paths.map { |p| ::Pathname.new(p) } end |
#homebrew_extra_cmake_library_paths ⇒ Array<::Pathname>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
72 73 74 75 76 |
# File 'extend/os/mac/extend/ENV/super.rb', line 72 def homebrew_extra_cmake_library_paths %W[ #{self["HOMEBREW_SDKROOT"]}/System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries ].map { |p| ::Pathname.new(p) } end |
#homebrew_extra_isystem_paths ⇒ Array<::Pathname>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
43 44 45 46 47 48 49 |
# File 'extend/os/mac/extend/ENV/super.rb', line 43 def homebrew_extra_isystem_paths paths = [] paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/libxml2" if libxml2_include_needed? paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/apache2" if MacOS::Xcode.without_clt? paths << "#{self["HOMEBREW_SDKROOT"]}/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers" paths.map { |p| ::Pathname.new(p) } end |
#homebrew_extra_library_paths ⇒ Array<::Pathname>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
52 53 54 55 56 57 58 59 60 |
# File 'extend/os/mac/extend/ENV/super.rb', line 52 def homebrew_extra_library_paths paths = [] if compiler == :llvm_clang paths << "#{self["HOMEBREW_SDKROOT"]}/usr/lib" paths << ::Formula["llvm"].opt_lib end paths << "#{self["HOMEBREW_SDKROOT"]}/System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries" paths.map { |p| ::Pathname.new(p) } end |
#homebrew_extra_pkg_config_paths ⇒ Array<::Pathname>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
27 28 29 30 31 32 |
# File 'extend/os/mac/extend/ENV/super.rb', line 27 def homebrew_extra_pkg_config_paths %W[ /usr/lib/pkgconfig #{HOMEBREW_LIBRARY}/Homebrew/os/mac/pkgconfig/#{MacOS.version} ].map { |p| ::Pathname.new(p) } end |
#libxml2_include_needed? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
35 36 37 38 39 40 |
# File 'extend/os/mac/extend/ENV/super.rb', line 35 def libxml2_include_needed? return false if deps.any? { |d| d.name == "libxml2" } return false if ::Pathname.new("#{self["HOMEBREW_SDKROOT"]}/usr/include/libxml").directory? true end |
#no_fixup_chains ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
This method returns an undefined value.
162 163 164 165 166 167 |
# File 'extend/os/mac/extend/ENV/super.rb', line 162 def no_fixup_chains # This function has been no-op for quite some time as it's set by default. # Unlike above, do not touch the `cc` shim or the support method when removing this. # odeprecated "ENV.no_fixup_chains" append_to_cccfg "f" if no_fixup_chains_support? end |
#no_weak_imports ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
This method returns an undefined value.
153 154 155 156 157 158 159 |
# File 'extend/os/mac/extend/ENV/super.rb', line 153 def no_weak_imports # This has little-to-no usage and doesn't make sense to have a special function for. # When removing this function, also cleanup related usage in the `cc` shim # and remove `no_weak_imports_support?`. # odeprecated "ENV.no_weak_imports" append_to_cccfg "w" if no_weak_imports_support? end |