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
- .native_pkg_config_prefix ⇒ Object
Instance Method Summary collapse
- #cflags ⇒ Object
- #cflags_only_I ⇒ Object
- #cflags_only_other ⇒ 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.
139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/pkg-config.rb', line 139 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.
138 139 140 |
# File 'lib/pkg-config.rb', line 138 def msvc_syntax @msvc_syntax end |
#paths ⇒ Object (readonly)
Returns the value of attribute paths.
137 138 139 |
# File 'lib/pkg-config.rb', line 137 def paths @paths end |
Class Method Details
.clear_configure_args_cache ⇒ Object
47 48 49 50 51 |
# File 'lib/pkg-config.rb', line 47 def clear_configure_args_cache @native_pkg_config = nil @native_pkg_config_prefix = nil @custom_override_variables = nil end |
.custom_override_variables ⇒ Object
43 44 45 |
# File 'lib/pkg-config.rb', line 43 def custom_override_variables @custom_override_variables ||= with_config("override-variables", "") end |
.native_pkg_config ⇒ Object
33 34 35 |
# File 'lib/pkg-config.rb', line 33 def native_pkg_config @native_pkg_config ||= guess_native_pkg_config end |
.native_pkg_config_prefix ⇒ Object
38 39 40 |
# File 'lib/pkg-config.rb', line 38 def native_pkg_config_prefix @native_pkg_config_prefix ||= compute_native_pkg_config_prefix end |
Instance Method Details
#cflags ⇒ Object
166 167 168 169 |
# File 'lib/pkg-config.rb', line 166 def cflags path_flags, other_flags = collect_cflags (other_flags + path_flags).join(" ") end |
#cflags_only_I ⇒ Object
171 172 173 |
# File 'lib/pkg-config.rb', line 171 def cflags_only_I collect_cflags[0].join(" ") end |
#cflags_only_other ⇒ Object
175 176 177 |
# File 'lib/pkg-config.rb', line 175 def cflags_only_other collect_cflags[1].join(" ") end |
#declaration(name) ⇒ Object
217 218 219 220 |
# File 'lib/pkg-config.rb', line 217 def declaration(name) parse_pc if @declarations.nil? (@declarations[name]) end |
#description ⇒ Object
208 209 210 |
# File 'lib/pkg-config.rb', line 208 def description declaration("Description") end |
#exist? ⇒ Boolean
154 155 156 |
# File 'lib/pkg-config.rb', line 154 def exist? not pc_path.nil? end |
#libs ⇒ Object
179 180 181 182 |
# File 'lib/pkg-config.rb', line 179 def libs path_flags, other_flags = collect_libs (path_flags + other_flags).join(" ") end |
#libs_only_l ⇒ Object
184 185 186 187 188 189 190 191 192 |
# File 'lib/pkg-config.rb', line 184 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 |
#libs_only_L ⇒ Object
194 195 196 197 198 199 200 201 202 |
# File 'lib/pkg-config.rb', line 194 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 |
#pc_path ⇒ Object
222 223 224 225 226 227 228 |
# File 'lib/pkg-config.rb', line 222 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
158 159 160 |
# File 'lib/pkg-config.rb', line 158 def requires parse_requires(declaration("Requires")) end |
#requires_private ⇒ Object
162 163 164 |
# File 'lib/pkg-config.rb', line 162 def requires_private parse_requires(declaration("Requires.private")) end |
#variable(name) ⇒ Object
212 213 214 215 |
# File 'lib/pkg-config.rb', line 212 def variable(name) parse_pc if @variables.nil? (@override_variables[name] || @variables[name]) end |
#version ⇒ Object
204 205 206 |
# File 'lib/pkg-config.rb', line 204 def version declaration("Version") end |