80 lines
2.1 KiB
Crystal
80 lines
2.1 KiB
Crystal
class Package::Backend::Splitter
|
|
|
|
# Man-pages and documentation
|
|
def self.man(prefixes : Array(String)) : Splitter
|
|
Backend::Splitter.new do |recipe|
|
|
Package.new(recipe, true).tap do |split|
|
|
prefixes = (prefixes + [recipe.prefix]).uniq
|
|
|
|
split.name = "#{recipe.name}-man"
|
|
split.files = prefixes.map do |prefix|
|
|
"#{prefix}/share/man"
|
|
end
|
|
split.recipe.require_stripping = false
|
|
end
|
|
end
|
|
end
|
|
|
|
# Developer's files: headers, pkgconfig files, *.a.
|
|
def self.dev(prefixes : Array(String)) : Splitter
|
|
Backend::Splitter.new do |recipe|
|
|
Package.new(recipe, true).tap do |split|
|
|
prefixes = (prefixes + [recipe.prefix]).uniq
|
|
|
|
split.name = "#{recipe.name}-dev"
|
|
split.files = prefixes.map do |prefix|
|
|
[
|
|
"#{prefix}/include",
|
|
"#{prefix}/lib/pkgconfig"
|
|
]
|
|
end.flatten
|
|
split.file_patterns = prefixes.map do |prefix|
|
|
Regex.new("^" + prefix + ".*\\.a$")
|
|
end
|
|
# Any prefix containing "/include/"
|
|
split.file_patterns.not_nil! << Regex.new(".*/include/.*.h(pp)?")
|
|
end
|
|
end
|
|
end
|
|
|
|
# Documentation files: /share/doc/, *.html
|
|
def self.doc(prefixes : Array(String)) : Splitter
|
|
Backend::Splitter.new do |recipe|
|
|
Package.new(recipe, true).tap do |split|
|
|
prefixes = (prefixes + [recipe.prefix]).uniq
|
|
|
|
split.name = "#{recipe.name}-doc"
|
|
split.files = prefixes.map do |prefix|
|
|
[
|
|
"#{prefix}/share/doc",
|
|
]
|
|
end.flatten
|
|
split.file_patterns = prefixes.map do |prefix|
|
|
Regex.new("^" + prefix + ".*\\.html$")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
# NOTE: src is not a regular split, _all_ files should be included,
|
|
# as well as the patches used for the build.
|
|
# Files are copied before build.
|
|
|
|
def self.src(prefixes : Array(String)) : Splitter
|
|
Backend::Splitter.new do |recipe|
|
|
Package.new(recipe, true).tap do |split|
|
|
prefixes = (prefixes + [recipe.prefix]).uniq
|
|
|
|
split.name = "#{recipe.name}-src"
|
|
# No need, files are already in the package fake root.
|
|
# split.files = prefixes.map do |prefix|
|
|
# [ "#{prefix}/src" ]
|
|
# end.flatten
|
|
split.recipe.require_stripping = false
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|