From a8b958b7cf5f9c50ca7f099519083306b4001329 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Thu, 27 Dec 2018 16:59:30 +0000 Subject: [PATCH] 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 --- scripts/pkg.sh | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/scripts/pkg.sh b/scripts/pkg.sh index e2fca0c9..63bf2617 100644 --- a/scripts/pkg.sh +++ b/scripts/pkg.sh @@ -919,6 +919,21 @@ cmd_milk_install_log() 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 subpackages="run devel" @@ -955,10 +970,16 @@ cmd_milk_install_log() local in=$1 local out=$2 - local filter_devel="/include$\|/include/$name$" - filter_devel="$filter_devel\|/include/[^/]\+\.h$\|/include/$name/[^/]\+\.h$\|/include/[^/]\+\.hpp$\|/include/$name/[^/]\+\.hpp$" - filter_devel="$filter_devel\|devel\|make\|/lib[^/]\+\.a$\|/lib[^/]\+\.so$\|/[^/]\+\.exp$\|/[^/]\+\.def$\|/[^/]\+\.lib$\|/[^/]\+\.pc$" - filter_devel="$filter_devel\|/usr/lib[^/]*/pkgconfig" + local re_hpp_file="[^/]\+\.\(h\|hpp\)$" + local include_dirs=`cat_log | grep "/include/\(.*/\)*$re_hpp_file" | sed "s%.*/include/%/include/%; s%/$re_hpp_file%%"` + include_dirs=`echo /include /include/$name $include_dirs | make_unique` + 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 case $type in