Hi all,
I found the issue "build out of git repos" intresting & and
planning to work on it
As the first steps tried some small hack to bin/unpack with
following changes,please check the attached patch
- Eliminate rawbuild directory completely
- create symlinks for each subdir(like inc, source etc) of
every module from CLONEDIR to OOBUILDDIR directly
- so that except unxlngi6.pro every other directory in each
module is a symlink
- few direct files under bootstrap repo copied to OOBUILDDIR
( as noticed in rawbuild dir),yet to think on direct files under
extensions repo
Some more issues are yet to figure out
- cleaning up, updating symlinks if some sub directories
added/removed in cloned repos.
- Eventhough able to build few modules with above hack, at
some point build process entering CLONEDIR escaping from OOBUILDDIR.
Please add your suggestions/comments on above changes..of course hacking
build.pl (without symlinks, clean sources under some location like
CLONEDIR/RAWBUILDDR and built outcome in another location like
OOBUILDDIR) would be an ultimate solution i think, just like to know
whether its a good idea to tweak unpack script with symlinks or drop it out.
Also planning to work on "build progress tracker in system tray"
as it involves some similar understanding of build process as above,how
about choosing cmake in build process,AFIK some build progress status is
hown in cmake enabled ones,any cons and pros? i.e flexibility vs
difficulty in converting each and other impacts,please add some pointers.
Thanks & Regards,
Rajesh Sola.
diff --git a/bin/unpack b/bin/unpack
index 1740ec3..cda3908 100755
--- a/bin/unpack
+++ b/bin/unpack
@@ -303,31 +303,40 @@ if test "z$OOO_GIT" = "z" ; then
fi
fi
else
- if test -d "$RAWBUILDDIR" ; then
- echo "* removing old nonsplit dir: $RAWBUILDDIR"
- rm -rf "$RAWBUILDDIR"
+ if test -d "$OOBUILDDIR" ; then
+ echo "* removing old build dir: $OOBUILDDIR"
+ rm -rf "$OOBUILDDIR"
fi
- mkdir "$RAWBUILDDIR"
- echo "* creating symlinks in $RAWBUILDDIR"
+ # mkdir -p "$OOBUILDDIR"
+ echo "* creating direct symlinks in $RAWBUILDDIR"
for pkg in $CORE_PKGS; do
if test "$pkg" != "l10n" ; then
# l10n cannot be easily handled in nonsplit/, we only copy it to
# build dir (the one with the applied patches)
- ln -s "$CLONEDIR/$pkg"/* "$RAWBUILDDIR/"
+ for subpkg in `ls $CLONEDIR/$pkg`; do
+ if test -d "$CLONEDIR/$pkg/$subpkg";then
+ mkdir -p $OOBUILDDIR/$subpkg
+ ln -s "$CLONEDIR/$pkg/$subpkg"/* "$OOBUILDDIR/$subpkg/"
+ else
+ #test -d $OOBUILDDIR/$pkg || mkdir -p $OOBUILDDIR/$pkg #an ugly tweak,right now applicable for bootstrap,extensions only
+ ln -s "$CLONEDIR/$pkg/$subpkg" "$OOBUILDDIR/" #need some more study on this,special case for extensions dir needed
+ fi
+ done
fi
done
- if test -d $OOBUILDDIR; then
- echo "* removing old build dir: $OOBUILDDIR"
- rm -rf $OOBUILDDIR
- fi
- echo "* copying $RAWBUILDDIR into $OOBUILDDIR..."
- #cp -pLR "$RAWBUILDDIR" "$OOBUILDDIR"
touch "$CLONEDIR/repos_changed"
- rsync -prLt --exclude .git --exclude 'unx*.pro' --exclude 'wnt*.pro' "$RAWBUILDDIR/" "$OOBUILDDIR/"
touch "$TOOLSDIR/stamp/refresh"
if test -d "$CLONEDIR/l10n" ; then
echo "* copying translations into $OOBUILDDIR..."
- rsync -a --exclude .git $CLONEDIR/l10n/* $OOBUILDDIR/
+ for subpkg in `ls $CLONEDIR/l10n`; do
+ if test -d "$CLONEDIR/l10n/$subpkg";then
+ mkdir -p $OOBUILDDIR/$subpkg
+ ln -s "$CLONEDIR/$pkg/$subpkg"/* "$OOBUILDDIR/$subpkg/"
+ else
+ #mkdir $OOBUILDDIR/$pkg # right now applicable for bootstrap,extensions only
+ ln -s "$CLONEDIR/l10n/$subpkg" "$OOBUILDDIR/l10n/"
+ fi
+ done
fi
fi
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice