summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorQt by Nokia <qt-info@nokia.com>2011-04-27 12:05:43 +0200
committeraxis <qt-info@nokia.com>2011-04-27 12:05:43 +0200
commitc4af45c2914381172e1bd7ee528481edaa2fff1a (patch)
tree01265e109316fda93845e1c96c5e566d870f51d0 /util
downloadqtscript-c4af45c2914381172e1bd7ee528481edaa2fff1a.tar.gz
Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12
Diffstat (limited to 'util')
-rwxr-xr-xutil/mkdist-javascriptcore193
1 files changed, 193 insertions, 0 deletions
diff --git a/util/mkdist-javascriptcore b/util/mkdist-javascriptcore
new file mode 100755
index 0000000..30d90da
--- /dev/null
+++ b/util/mkdist-javascriptcore
@@ -0,0 +1,193 @@
+#!/bin/bash
+
+die() {
+ echo $*
+ exit 1
+}
+
+default_tag="javascriptcore-snapshot-02022010"
+
+if [ $# -eq 0 ]; then
+ tag="$default_tag"
+elif [ $# -eq 1 ]; then
+ tag=$1
+else
+ die "usage: $0 [commit (defaults to $default_tag)]"
+fi
+
+repository=`git config qtwebkit.url`
+if [ -z "$repository" ]; then
+ die "error: cannot locate webkit git repository. please run git config --global qtwebkit.url /path-or-url/to/webkit/repo"
+fi
+
+excluded_directories="$excluded_directories JavaScriptCore/Makefile"
+excluded_directories="$excluded_directories JavaScriptCore/GNUmakefile.am"
+excluded_directories="$excluded_directories JavaScriptCore/Configurations"
+excluded_directories="$excluded_directories JavaScriptCore/JavaScriptCore.exp"
+excluded_directories="$excluded_directories JavaScriptCore/JavaScriptCore.xcodeproj"
+excluded_directories="$excluded_directories JavaScriptCore/tests"
+excluded_directories="$excluded_directories JavaScriptCore/API/tests"
+excluded_directories="$excluded_directories JavaScriptCore/JavaScriptCore.vcproj"
+excluded_directories="$excluded_directories JavaScriptCore/wtf/wx"
+excluded_directories="$excluded_directories JavaScriptCore/wtf/gtk"
+excluded_directories="$excluded_directories JavaScriptCore/wtf/mac"
+excluded_directories="$excluded_directories JavaScriptCore/wtf/win"
+excluded_directories="$excluded_directories JavaScriptCore/wtf/chromium"
+excluded_directories="$excluded_directories JavaScriptCore/wtf/haiku"
+excluded_directories="$excluded_directories JavaScriptCore/icu"
+excluded_directories="$excluded_directories JavaScriptCore/qt"
+excluded_directories="$excluded_directories JavaScriptCore/JavaScriptCore.gyp"
+
+
+files_to_remove=""
+files_to_remove="$files_to_remove JavaScriptCore/AllInOneFile.cpp"
+files_to_remove="$files_to_remove JavaScriptCore/JavaScriptCoreSources.bkl"
+files_to_remove="$files_to_remove JavaScriptCore/jscore.bkl"
+files_to_remove="$files_to_remove JavaScriptCore/jsc.pro"
+files_to_remove="$files_to_remove JavaScriptCore/JavaScriptCore.pro"
+files_to_remove="$files_to_remove JavaScriptCore/DerivedSources.pro"
+files_to_remove="$files_to_remove JavaScriptCore/create_rvct_stubs"
+
+require_clean_work_tree() {
+ # test if working tree is dirty
+ git rev-parse --verify HEAD > /dev/null &&
+ git update-index --refresh &&
+ git diff-files --quiet &&
+ git diff-index --cached --quiet HEAD ||
+ die "Working tree is dirty"
+}
+
+which qmake >/dev/null 2>/dev/null
+if [ "$?" != 0 ]; then
+ die "abort: Could not locate qmake in your PATH"
+fi
+
+test -z "$(git rev-parse --show-cdup)" || {
+ exit=$?
+ echo >&2 "You need to run this command from the toplevel of the working tree."
+ exit $exit
+}
+
+echo "checking working tree"
+require_clean_work_tree
+
+revCount=`git ls-remote $repository | grep $tag | awk '{print $1}' | wc -l`
+if [ "$revCount" != 1 ]; then
+ die "Cannot parse $tag into a revision. It seems ambiguous".
+fi
+
+rev=`git ls-remote $repository | grep -E "^.+$tag$" | awk '{print $1}'`
+
+tarball=`mktemp /tmp/webkit-snapshot.tar.XXXXXX` || exit 1
+echo "creating $tarball"
+
+echo "archiving webkit from $repository $tag ( $rev )"
+
+git archive --remote=$repository $rev JavaScriptCore WebKit.pri > $tarball || exit 1
+
+echo "removing unwanted files and directories"
+for dir in $excluded_directories; do
+ echo " removing $dir"
+ tar --delete --file=$tarball $dir
+done
+
+for item in $exclude_with_exceptions_list; do
+ dir=`echo $item | awk -F : '{print $1}'`
+ include=`echo $item | awk -F : '{print $2}'`
+ echo " removing $dir except $include"
+ files=`tar --list --file=$tarball $dir | grep -v -E "^$dir\$" | grep -v $include`
+ tar --delete --file=$tarball $files
+done
+
+for file in $files_to_remove; do
+ echo " removing $file"
+ tar --delete --file=$tarball $file
+done
+
+echo "done!"
+
+srcdir=src/3rdparty/javascriptcore
+absSrcDir=$PWD/$srcdir
+localDiff=
+lastImportRevison=
+
+echo "replacing $srcdir"
+if [ -d $srcdir ]; then
+ git ls-files $srcdir | xargs rm
+ git ls-files -z src/3rdparty/javascriptcore | git update-index --force-remove -z --stdin
+else
+ mkdir -p $srcdir
+fi
+
+(cd $srcdir && tar xf $tarball)
+git add $srcdir
+
+echo "generating extra sources"
+(
+ for proj in JavaScriptCore; do
+ cd $absSrcDir/$proj &&
+ rm -rf tmp &&
+ mkdir tmp &&
+ cd tmp &&
+ mkdir -p ../generated &&
+ qmake -o Makefile CONFIG-=QTDIR_build QT_CONFIG+=phonon GENERATED_SOURCES_DIR=`pwd`/../generated OUTPUT_DIR=`pwd` ../$proj.pro &&
+ make generated_files &&
+ perl -pi -e "s,$absSrcDir/,,g" ../generated/*.cpp ../generated/*.h &&
+ git add ../generated &&
+ cd .. &&
+ rm -rf tmp &&
+ cd ..
+ done
+)
+rm -rf $srcdir/WebKitBuild
+
+cat >$srcdir/VERSION <<EOT
+This is a snapshot of JavaScriptCore from
+
+ git://gitorious.org/qtwebkit/qtwebkit.git
+
+The commit imported was from the
+
+ $tag branch/tag
+
+and has the sha1 checksum
+
+ $rev
+EOT
+git add $srcdir/VERSION
+
+git diff-files --name-only -z | git update-index --remove -z --stdin
+
+echo "removing $tarball"
+rm -f $tarball
+
+cat >commitlog.txt <<EOT
+Updated JavaScriptCore from $repository to $tag ( $rev )
+EOT
+
+if [ -d "$repository/.git" -a -n "$lastImportRevison" ]; then
+ echo >>commitlog.txt
+ echo "Changes in WebKit/qt since the last update:" >>commitlog.txt
+ echo >>commitlog.txt
+ git --git-dir=$repository/.git diff $lastImportRevison $rev -- WebKit/qt/ChangeLog | sed -n -e "s,^\+\(.*\),\1,p" >>commitlog.txt
+fi
+
+echo "Changes:"
+echo
+git --no-pager diff --name-status --cached $srcdir
+
+echo
+echo "Wrote commitlog.txt. Use with"
+echo
+echo " git commit -e -F commitlog.txt"
+echo
+echo "to commit your changes"
+
+if [ -n "$localDiff" ]; then
+ echo
+ echo "The changes that were locally stored in Perforce are now stored as a git patch in $localDiff"
+ echo "You may want to appy them with"
+ echo
+ echo " git am -3 $localDiff"
+ echo
+fi