summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2022-06-02 13:25:00 +0100
committerdavidovski <david@davidovski.xyz>2022-06-02 13:25:00 +0100
commit873615c967221afab27fdcfcd28fcf499ff1078d (patch)
tree6d3ed0afe353322836d29f3898628f055aaa3175
parent7568f82cd76e74b6ed0b1dbc9f56139fa1068500 (diff)
added dependency tracking
-rw-r--r--xibuild.sh36
1 files changed, 26 insertions, 10 deletions
diff --git a/xibuild.sh b/xibuild.sh
index abcb855..b245d16 100644
--- a/xibuild.sh
+++ b/xibuild.sh
@@ -134,15 +134,26 @@ xibuild_build () {
}
}
+# strip file from any symbols
+# will also determine any dependencies
+#
xibuild_strip () {
- for file in \
- $(find $root/$export_dir/ -type f -name \*.so* ! -name \*dbg) \
- $(find $root/$export_dir/ -type f -name \*.a) \
- $(find $root/$export_dir/ -type f -executable ); do
- strip --strip-unneeded $file 2>&1
- done
-
- find $root/$export_dir -name \*.la -delete 2>&1
+
+ for pkgname in $(ls $root/$export_dir); do
+ echo > $out_dir/$pkgname.deps
+ for file in \
+ $(find $root/$export_dir/ -type f -name \*.so* ! -name \*dbg) \
+ $(find $root/$export_dir/ -type f -name \*.a) \
+ $(find $root/$export_dir/ -type f -executable ); do
+
+ strip --strip-unneeded $file 2>&1
+
+ ldd $file 2>/dev/null | grep "=>" | cut -d"=>" -f2 | awk '{ print $1 }' | xargs xi -r $root -q file >> $out_dir/$pkgname.deps
+ done
+ done
+
+ # remove libtool archives
+ find $root/$export_dir -name \*.la -delete 2>&1
}
xibuild_package () {
@@ -160,11 +171,13 @@ xibuild_package () {
tar -C $root/$export_dir/$pkg -cJf $out_dir/$pkg.xipkg ./
}
done
+
for buildfile in $(find $src_dir -name "*.xibuild"); do
cp $buildfile $out_dir/
done
}
+
xibuild_describe () {
for xipkg in $(ls $out_dir/*.xipkg); do
name=$(basename $xipkg .xipkg)
@@ -177,6 +190,9 @@ xibuild_describe () {
[ -z "$pkg_ver" ] && pkg_ver=$BRANCH
[ -z "$pkg_ver" ] && pkg_ver="latest"
+ deps="$(echo ${DEPS} | tr ' ' '\n' | cat - $out_dir/$name.deps | sort | uniq -u | xargs printf "%s ")"
+ rm $out_dir/$name.deps
+
{
echo "# XiPKG info file version $XIPKG_INFO_VERSION"
echo "# automatically generated from the built packages"
@@ -188,8 +204,8 @@ xibuild_describe () {
echo "REVISION=$(cat ${buildfile%/*}/*.xibuild | sha512sum | cut -d' ' -f1)"
echo "SOURCE=$SOURCE"
echo "DATE=$(stat -t $xipkg | cut -d' ' -f13 | xargs date -d)"
- echo "DEPS=${DEPS}"
- echo "MAKE_DEPS=${MAKE_DEPS}"
+ echo "DEPS=${deps}"
+ echo "MAKE_DEPS=${MAKE_DEPS} ${DEPS}"
echo "ORIGIN=$NAME"
} > $info_file
done