pkg.sh: More tweaks to filter_devel

filter_devel now identifies more intricate directory structures below /include/
as belonging into development packages. The filter is dynamically amended,
based on whether or not the directories contain .h or .hpp files.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2018-12-27 16:59:30 +00:00
commit a8b958b7cf

View file

@ -919,6 +919,21 @@ cmd_milk_install_log()
cat $in | $user_filter cat $in | $user_filter
} }
compress()
{
sed ':a;N;$!ba;s/\n//g'
}
make_unique()
{
sed 's/ \+/\n/g' | sort -u | grep .
}
make_alt()
{
make_unique | sed 's/$/$\\|/' | compress
}
local type name prefix in out subpackages local type name prefix in out subpackages
local subpackages="run devel" local subpackages="run devel"
@ -955,10 +970,16 @@ cmd_milk_install_log()
local in=$1 local in=$1
local out=$2 local out=$2
local filter_devel="/include$\|/include/$name$" local re_hpp_file="[^/]\+\.\(h\|hpp\)$"
filter_devel="$filter_devel\|/include/[^/]\+\.h$\|/include/$name/[^/]\+\.h$\|/include/[^/]\+\.hpp$\|/include/$name/[^/]\+\.hpp$" local include_dirs=`cat_log | grep "/include/\(.*/\)*$re_hpp_file" | sed "s%.*/include/%/include/%; s%/$re_hpp_file%%"`
filter_devel="$filter_devel\|devel\|make\|/lib[^/]\+\.a$\|/lib[^/]\+\.so$\|/[^/]\+\.exp$\|/[^/]\+\.def$\|/[^/]\+\.lib$\|/[^/]\+\.pc$" include_dirs=`echo /include /include/$name $include_dirs | make_unique`
filter_devel="$filter_devel\|/usr/lib[^/]*/pkgconfig" local include_h_re=`echo $include_dirs | sed 's/ \\+/\\n/g' | sed 's%$%/[^/]\\\\+\\\\.h\\\\(pp\\\\)*%' | make_alt`
local include_dirs_re=`echo $include_dirs | make_alt`
filter_devel="$filter_devel$include_h_re"
filter_devel="$filter_devel$include_dirs_re"
filter_devel="$filter_devel""devel\|make\|/lib[^/]\+\.a$\|/lib[^/]\+\.so$\|/[^/]\+\.exp$\|/[^/]\+\.def$\|/[^/]\+\.lib$\|/[^/]\+\.pc$\|"
filter_devel="$filter_devel/usr/lib[^/]*/pkgconfig"
# TODO: simplify this # TODO: simplify this
case $type in case $type in