3 # This script can run from any location,
4 # output is created in the $CWD
8 blender_srcdir=$(dirname -- $0)/../..
9 blender_version=$(grep "BLENDER_VERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
10 blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
11 blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
12 blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender.h" | awk '{print $3}')
14 if [ "$blender_version_cycle" = "release" ] ; then
15 VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)$blender_version_char
17 VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)_$blender_subversion
20 MANIFEST="blender-$VERSION-manifest.txt"
21 TARBALL="blender-$VERSION.tar.gz"
25 # not so nice, but works
26 FILTER_FILES_PY="import os, sys; [print(l[:-1]) for l in sys.stdin.readlines() if os.path.isfile(l[:-1])]"
29 echo -n "Building manifest of files: \"$BASE_DIR/$MANIFEST\" ..."
30 git ls-files | python3 -c "$FILTER_FILES_PY" > $BASE_DIR/$MANIFEST
32 # Enumerate submodules
33 for lcv in $(git submodule | awk '{print $2}'); do
35 cd "$blender_srcdir/$lcv"
36 git ls-files | python3 -c "$FILTER_FILES_PY" | awk '$0="'"$lcv"/'"$0' >> $BASE_DIR/$MANIFEST
44 echo -n "Creating archive: \"$BASE_DIR/$TARBALL\" ..."
45 GZIP=-9 tar --transform "s,^,blender-$VERSION/,g" -zcf "$BASE_DIR/$TARBALL" -T "$BASE_DIR/$MANIFEST"
49 # Create checksum file
51 echo -n "Createing checksum: \"$BASE_DIR/$TARBALL.md5sum\" ..."
52 md5sum "$TARBALL" > "$TARBALL.md5sum"
57 echo -n "Cleaning up ..."
58 rm "$BASE_DIR/$MANIFEST"