#-------------------------------------------------------------------------------------------------- # Standard modularization template # -------------------------------- # # The script will start execution from . # # Available variables: # $qtdir = or where you started the modularize script from # $basepath = path for the modularize script, and basepath for the modularization repo # $OStype = where is one of 0 = Windows, 1 = Unix, 2 = Mac # # To execute a command: # run("git mv foo bar") # runs command, reports error possition and dies # runNotDie("git mv foo bar") # runs command, reports error possition, returns error code # and continues. Use ($? >> 8) to get the real exit code. # ensureDir("qtbase") # Ensures that qtbase exists and is a directory. Will create # it if it does not exist. #-------------------------------------------------------------------------------------------------- require("non-module-helpers"); use File::Basename; my $debugExamplesScript = 0; # First the exceptions. ensureDir("qtsvg/examples/network"); ensureDir("qtsvg/examples/draganddrop"); ensureDir("qtsvg/examples/painting"); ensureDir("qtsvg/examples/richtext"); ensureDir("qtsvg/examples/desktop"); ensureDir("qtsvg/examples/opengl"); run("git mv examples/network/bearercloud qtsvg/examples/network"); run("git mv examples/draganddrop/delayedencoding qtsvg/examples/draganddrop"); run("git mv examples/painting/svggenerator qtsvg/examples/painting"); run("git mv examples/painting/svgviewer qtsvg/examples/painting"); run("git mv examples/richtext/textobject qtsvg/examples/richtext"); run("git mv examples/desktop/systray qtsvg/examples/desktop"); run("git mv examples/opengl/framebufferobject qtsvg/examples/opengl"); ensureDir("qt3support/examples/graphicsview"); run("git mv examples/graphicsview/portedcanvas qt3support/examples/graphicsview"); run("git mv examples/graphicsview/portedasteroids qt3support/examples/graphicsview"); ensureDir("qtbase/examples"); run("git mv examples/qmake qtbase/examples"); run("git mv examples/graphicsview qtbase/examples"); run("git mv examples/ja_JP qtbase/examples"); run("git mv examples/symbianpkgrules.pri qtbase/examples"); run("git mv examples/richtext qtbase/examples"); run("git mv examples/draganddrop qtbase/examples"); run("git mv examples/painting qtbase/examples"); run("git mv examples/desktop qtbase/examples"); run("git mv examples/opengl qtbase/examples"); ensureDir("qttools/examples"); run("git mv examples/designer qttools/examples"); run("git mv examples/help qttools/examples"); createSubdirProfile("qttools/examples"); if ($isMaster) { ensureDir("qtbase/examples/scroller"); run("git mv examples/scroller/graphicsview qtbase/examples/scroller/graphicsview"); ensureDir("qtwebkit-examples-and-demos/examples/scroller"); run("git mv examples/scroller/plot qtwebkit-examples-and-demos/examples/scroller/plot"); run("git mv examples/scroller/wheel qtwebkit-examples-and-demos/examples/scroller/wheel"); run("git rm -q examples/scroller/scroller.pro"); createSubdirProfile("qtwebkit-examples-and-demos/examples/scroller"); createSubdirProfile("qtbase/examples/scroller"); } ensureDir("qtscript/examples"); run("git mv examples/script qtscript/examples"); if ($isMaster) { ensureDir("qtwebkit-examples-and-demos/examples/xmlpatterns"); run("git mv examples/xmlpatterns/qobjectxmlmodel qtwebkit-examples-and-demos/examples/xmlpatterns/qobjectxmlmodel"); ensureDir("qtwebkit-examples-and-demos/examples/xmlpatterns/shared"); fsCopy("-r", "examples/xmlpatterns/shared/*", "qtwebkit-examples-and-demos/examples/xmlpatterns/shared"); run("git add qtwebkit-examples-and-demos/examples/xmlpatterns"); run("git rm -q examples/xmlpatterns/xmlpatterns.pro"); # move other examples to qtxmlpatterns module ensureDir("qtxmlpatterns/examples"); run("git mv examples/xmlpatterns qtxmlpatterns/examples"); # recreate the '.pro' files. createSubdirProfile("qtwebkit-examples-and-demos/examples/xmlpatterns"); createSubdirProfile("qtxmlpatterns/examples/xmlpatterns"); } else { ensureDir("qtxmlpatterns/examples"); # Uses both xmlpatterns and webkit. run("git mv examples/xmlpatterns qtxmlpatterns/examples"); } ensureDir("qtactiveqt/examples"); run("git mv examples/activeqt qtactiveqt/examples"); createSubdirProfile("qtactiveqt/examples"); ensureDir("qtbase/examples/tutorials/gettingStarted"); run("git mv examples/tutorials/gettingStarted/gsQt qtbase/examples/tutorials/gettingStarted"); # Then the rest that we haven't handled. my @examples = findFiles("examples", ".*", 1); foreach (@examples) { next if (!-d $_); my $example = "$_"; my $dir = findDirectoryForApplication($example); if ($dir) { $dir =~ s,qtwebkit$,qtwebkit-examples-and-demos,; print("$example -> $dir/$example\n") if ($debugExamplesScript); my $containingDir = dirname("$dir/$example"); ensureDir($containingDir); run("git mv $example $dir/$example"); } } run("git mv examples/examples.pro qtbase/examples/"); run("git mv examples/README qtbase/examples/"); run("git mv examples/tutorials/tutorials.pro qtbase/examples/tutorials/"); run("git mv examples/tutorials/README qtbase/examples/tutorials"); run("git mv examples/webkit/webkit.pro qtwebkit-examples-and-demos/examples/webkit"); #everything must have been moved fsRmdir("examples/webkit"); fsRmdirWithParents("examples/tutorials/gettingStarted"); # Create profiles createSubdirProfile("qtbase/examples/tutorials/gettingStarted"); createSubdirProfile("qtbase/examples/tutorials"); createSubdirProfile("qtsvg/examples/network"); createSubdirProfile("qtsvg/examples/draganddrop"); createSubdirProfile("qtsvg/examples/painting"); createSubdirProfile("qtsvg/examples/richtext"); createSubdirProfile("qtsvg/examples/desktop"); createSubdirProfile("qtsvg/examples/opengl"); createSubdirProfile("qtsvg/examples"); createSubdirProfile("qtscript/examples"); createSubdirProfile("qtxmlpatterns/examples"); createSubdirProfile("qtdeclarative/examples"); createSubdirProfile("qtphonon/examples"); createSubdirProfile("qtmultimedia/examples"); createSubdirProfile("qtwebkit-examples-and-demos/examples"); createSubdirProfile("qt3support/examples/graphicsview"); createSubdirProfile("qt3support/examples"); foreach (@repos) { my $module = $_; #printf("Module %s\n", $module); next if ($_ eq "qtactiveqt" || $_ eq "qtphonon"); my @pros = findFiles("$module/examples/", "\\.pr[io]", 1); if ($OStype == WINDOWS) { run('perl -pi.org -e "s,\$\$\[QT_INSTALL_EXAMPLES\]\/,\$\$\[QT_INSTALL_EXAMPLES\]/' . $module .'/,g" ' . join(" ", @pros)) if (@pros); } else { run("perl -pi.org -e 's,\\\$\\\$\\[QT_INSTALL_EXAMPLES\\]\\/,\\\$\\\$\\[QT_INSTALL_EXAMPLES\\]/$module/,g' " . join(" ", @pros)) if (@pros); } foreach my $pro (@pros) { fsRm("${pro}.org"); } } return 1;