Class: PackageConfig
- Inherits:
-
Object
- Object
- PackageConfig
- Defined in:
- lib/pkg-config.rb
Constant Summary collapse
- SEPARATOR =
File::PATH_SEPARATOR
Instance Attribute Summary collapse
-
#msvc_syntax ⇒ Object
Returns the value of attribute msvc_syntax.
-
#paths ⇒ Object
readonly
Returns the value of attribute paths.
Class Method Summary collapse
- .clear_configure_args_cache ⇒ Object
- .custom_override_variables ⇒ Object
- .native_pkg_config ⇒ Object
Instance Method Summary collapse
- #cflags ⇒ Object
- #cflags_only_I ⇒ Object
- #declaration(name) ⇒ Object
- #description ⇒ Object
- #exist? ⇒ Boolean
-
#initialize(name, options = {}) ⇒ PackageConfig
constructor
A new instance of PackageConfig.
- #libs ⇒ Object
- #libs_only_L ⇒ Object
- #libs_only_l ⇒ Object
- #pc_path ⇒ Object
- #requires ⇒ Object
- #requires_private ⇒ Object
- #variable(name) ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(name, options = {}) ⇒ PackageConfig
Returns a new instance of PackageConfig.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/pkg-config.rb', line 110 def initialize(name, ={}) @name = name @options = path = @options[:path] || ENV["PKG_CONFIG_PATH"] @paths = [path, guess_default_path].compact.join(SEPARATOR).split(SEPARATOR) @paths.unshift(*(@options[:paths] || [])) @paths = normalize_paths(@paths) @msvc_syntax = @options[:msvc_syntax] @variables = @declarations = nil override_variables = self.class.custom_override_variables @override_variables = parse_override_variables(override_variables) default_override_variables = @options[:override_variables] || {} @override_variables = default_override_variables.merge(@override_variables) end |
Instance Attribute Details
#msvc_syntax ⇒ Object
Returns the value of attribute msvc_syntax.
109 110 111 |
# File 'lib/pkg-config.rb', line 109 def msvc_syntax @msvc_syntax end |
#paths ⇒ Object (readonly)
Returns the value of attribute paths.
108 109 110 |
# File 'lib/pkg-config.rb', line 108 def paths @paths end |
Class Method Details
.clear_configure_args_cache ⇒ Object
43 44 45 46 |
# File 'lib/pkg-config.rb', line 43 def clear_configure_args_cache @native_pkg_config = nil @custom_override_variables = nil end |
.custom_override_variables ⇒ Object
39 40 41 |
# File 'lib/pkg-config.rb', line 39 def custom_override_variables @custom_override_variables ||= with_config("override-variables", "") end |
.native_pkg_config ⇒ Object
34 35 36 |
# File 'lib/pkg-config.rb', line 34 def native_pkg_config @native_pkg_config ||= guess_native_pkg_config end |
Instance Method Details
#cflags ⇒ Object
137 138 139 140 |
# File 'lib/pkg-config.rb', line 137 def cflags path_flags, other_flags = collect_cflags (other_flags + path_flags).join(" ") end |
#cflags_only_I ⇒ Object
142 143 144 |
# File 'lib/pkg-config.rb', line 142 def cflags_only_I collect_cflags[0].join(" ") end |
#declaration(name) ⇒ Object
184 185 186 187 |
# File 'lib/pkg-config.rb', line 184 def declaration(name) parse_pc if @declarations.nil? (@declarations[name]) end |
#description ⇒ Object
175 176 177 |
# File 'lib/pkg-config.rb', line 175 def description declaration("Description") end |
#exist? ⇒ Boolean
125 126 127 |
# File 'lib/pkg-config.rb', line 125 def exist? not pc_path.nil? end |
#libs ⇒ Object
146 147 148 149 |
# File 'lib/pkg-config.rb', line 146 def libs path_flags, other_flags = collect_libs (path_flags + other_flags).join(" ") end |
#libs_only_L ⇒ Object
161 162 163 164 165 166 167 168 169 |
# File 'lib/pkg-config.rb', line 161 def libs_only_L collect_libs[0].find_all do |arg| if @msvc_syntax /\A\/libpath:/ =~ arg else /\A-L/ =~ arg end end.join(" ") end |
#libs_only_l ⇒ Object
151 152 153 154 155 156 157 158 159 |
# File 'lib/pkg-config.rb', line 151 def libs_only_l collect_libs[1].find_all do |arg| if @msvc_syntax /\.lib\z/ =~ arg else /\A-l/ =~ arg end end.join(" ") end |
#pc_path ⇒ Object
189 190 191 192 193 194 195 |
# File 'lib/pkg-config.rb', line 189 def pc_path @paths.each do |path| _pc_path = File.join(path, "#{@name}.pc") return _pc_path if File.exist?(_pc_path) end nil end |
#requires ⇒ Object
129 130 131 |
# File 'lib/pkg-config.rb', line 129 def requires parse_requires(declaration("Requires")) end |
#requires_private ⇒ Object
133 134 135 |
# File 'lib/pkg-config.rb', line 133 def requires_private parse_requires(declaration("Requires.private")) end |
#variable(name) ⇒ Object
179 180 181 182 |
# File 'lib/pkg-config.rb', line 179 def variable(name) parse_pc if @variables.nil? (@override_variables[name] || @variables[name]) end |
#version ⇒ Object
171 172 173 |
# File 'lib/pkg-config.rb', line 171 def version declaration("Version") end |