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.
106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/pkg-config.rb', line 106 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.
105 106 107 |
# File 'lib/pkg-config.rb', line 105 def msvc_syntax @msvc_syntax end |
#paths ⇒ Object (readonly)
Returns the value of attribute paths.
104 105 106 |
# File 'lib/pkg-config.rb', line 104 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
133 134 135 136 |
# File 'lib/pkg-config.rb', line 133 def cflags path_flags, other_flags = collect_cflags (other_flags + path_flags).join(" ") end |
#cflags_only_I ⇒ Object
138 139 140 |
# File 'lib/pkg-config.rb', line 138 def cflags_only_I collect_cflags[0].join(" ") end |
#declaration(name) ⇒ Object
180 181 182 183 |
# File 'lib/pkg-config.rb', line 180 def declaration(name) parse_pc if @declarations.nil? (@declarations[name]) end |
#description ⇒ Object
171 172 173 |
# File 'lib/pkg-config.rb', line 171 def description declaration("Description") end |
#exist? ⇒ Boolean
121 122 123 |
# File 'lib/pkg-config.rb', line 121 def exist? not pc_path.nil? end |
#libs ⇒ Object
142 143 144 145 |
# File 'lib/pkg-config.rb', line 142 def libs path_flags, other_flags = collect_libs (path_flags + other_flags).join(" ") end |
#libs_only_L ⇒ Object
157 158 159 160 161 162 163 164 165 |
# File 'lib/pkg-config.rb', line 157 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
147 148 149 150 151 152 153 154 155 |
# File 'lib/pkg-config.rb', line 147 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
185 186 187 188 189 190 191 |
# File 'lib/pkg-config.rb', line 185 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
125 126 127 |
# File 'lib/pkg-config.rb', line 125 def requires parse_requires(declaration("Requires")) end |
#requires_private ⇒ Object
129 130 131 |
# File 'lib/pkg-config.rb', line 129 def requires_private parse_requires(declaration("Requires.private")) end |
#variable(name) ⇒ Object
175 176 177 178 |
# File 'lib/pkg-config.rb', line 175 def variable(name) parse_pc if @variables.nil? (@override_variables[name] || @variables[name]) end |
#version ⇒ Object
167 168 169 |
# File 'lib/pkg-config.rb', line 167 def version declaration("Version") end |