#!/bin/bash PKG_CONFIG="@PKG_CONFIG@" GTK_VERSION="gtk+-@GTK_VERSION@" GTK_PREFIX=$($PKG_CONFIG --variable=prefix $GTK_VERSION) TARGET_PATH=".bin/gtkruntime" # Clean target folder rm -fr "$TARGET_PATH/*" mkdir -p "$TARGET_PATH" copyFile() { GTKPATH=$(find "$GTK_PREFIX/bin" -name "$1") SYSPATH=$(find "/bin" -name "$1") if [ ! -z "$GTKPATH" ]; then echo "$GTKPATH ..." cp $GTKPATH "$TARGET_PATH" if [ "$?" != "0" ]; then echo "Can´t copy $GTKPATH" return 1 fi elif [ ! -z "$SYSPATH" ]; then echo "$SYSPATH ..." cp $SYSPATH "$TARGET_PATH" if [ "$?" != "0" ]; then echo "Can´t copy $SYSPATH" return 1 fi else echo "Can´t find ${GTK_PREFIX}/bin/${1}" return 1 fi return 0 } copyFiles() { while read FILE do copyFile "$FILE" if [ "$?" != "0" ]; then exit -1 fi done < $1 rm -f $1 } copy_locale() { rm -fr $TARGET_PATH/share/locale/pt_BR/LC_MESSAGES mkdir -p $TARGET_PATH/share/locale/pt_BR/LC_MESSAGES while read FILE do echo "$GTK_PREFIX/share/locale/pt_BR/LC_MESSAGES/$FILE ..." if [ -e "$GTK_PREFIX/share/locale/pt_BR/LC_MESSAGES/$FILE" ]; then cp "$GTK_PREFIX/share/locale/pt_BR/LC_MESSAGES/$FILE" "$TARGET_PATH/share/locale/pt_BR/LC_MESSAGES" if [ "$?" != "0" ]; then echo "Can´t copy $FILE" exit -1 fi fi done < $1 rm -f $1 } CopyGTK3Theme() { mkdir -p ${TARGET_PATH}/share/icons if [ "$?" != 0 ]; then echo "Can´t create icons folder" exit -1 fi cp -rv /usr/share/icons/${1} ${TARGET_PATH}/share/icons if [ "$?" != 0 ]; then echo "Can´t copy ${1} icons" exit -1 fi mkdir -p ${TARGET_PATH}/share/themes if [ "$?" != 0 ]; then echo "Can´t create themes folder" exit -1 fi cp -rv /usr/share/themes/${1} ${TARGET_PATH}/share/themes if [ "$?" != 0 ]; then echo "Can´t copy ${1} theme" exit -1 fi } gtk3() { TEMPFILE="temp1.tmp" cat > $TEMPFILE << EOF libglib-*.dll libintl*.dll libgmodule*.dll libgobject*.dll libffi*.dll libgtk-*.dll libgdk-*.dll libcairo-gobject*.dll libcairo-2*.dll libfontconfig-1*.dll libfreetype-6*.dll zlib1.dll libxml2-*.dll libpixman-1*.dll libpng*.dll libgdk_pixbuf*.dll libgio-*.dll libjasper-*.dll libjpeg-8*.dll libtiff-5*.dll liblzma-5*.dll libpango-1*.dll libpangocairo-1*.dll libpangoft2-1*.dll libpangowin32-1*.dll libatk-*.dll libcrypto-*.dll libssl-*.dll libharfbuzz-0.dll libstdc++-6.dll icule53.dll icuuc53.dll icudata53.dll libgraphite2.dll librsvg-*.dll libepoxy-*.dll gspawn-win*-helper-console.exe gspawn-win*-helper.exe gdk-pixbuf-query-loaders.exe EOF copyFiles $TEMPFILE # Copy loaders GDK_LOADERS=$(${PKG_CONFIG} --variable=gdk_pixbuf_binarydir gdk-pixbuf-2.0)/loaders GDK_PREFIX=$(${PKG_CONFIG} --variable=prefix gdk-pixbuf-2.0) GDK_TARGET=$(echo ${GDK_LOADERS}/ | sed -e "s@${GDK_PREFIX}@@g") mkdir -p ${TARGET_PATH}/${GDK_TARGET} cp -v ${GDK_LOADERS}/* ${TARGET_PATH}/${GDK_TARGET} if [ "$?" != 0 ]; then echo "Can´t copy loaders" exit -1 fi # Copy optional files copyFile libgcc_s_sjlj-1.dll copyFile libgcc_s_seh-1.dll # Build locale dirs cat > $TEMPFILE << EOF atk10.mo gdk-pixbuf.mo glib20.mo gtk30-properties.mo EOF copy_locale $TEMPFILE mkdir -p $TARGET_PATH/share/glib-2.0/schemas if [ "$?" != 0 ]; then echo "Can´t create schemas folder" exit -1 fi if [ ! -e $GTK_PREFIX/share/glib-2.0/schemas/gschemas.compiled ]; then glib-compile-schemas $GTK_PREFIX/share/glib-2.0/schemas fi cp $GTK_PREFIX/share/glib-2.0/schemas/gschemas.compiled $TARGET_PATH/share/glib-2.0/schemas/gschemas.compiled if [ "$?" != 0 ]; then echo "Can´t copy gshemas.compiled" exit -1 fi # Copia Adwaita CopyGTK3Theme "Adwaita" #mkdir -p $TARGET_PATH/share/icons/Adwaita #if [ "$?" != 0 ]; then # echo "Can´t create icons folder" # exit -1 #fi # #cp -rv /usr/share/icons/Adwaita $TARGET_PATH/share/icons/Adwaita #if [ "$?" != 0 ]; then # echo "Can´t copy icons" # exit -1 #fi # #mkdir -p $TARGET_PATH/share/themes/Adwaita #if [ "$?" != 0 ]; then # echo "Can´t create Adwaita theme" # exit -1 #fi # #cp -rv /usr/share/themes/Adwaita $TARGET_PATH/share/themes/Adwaita #if [ "$?" != 0 ]; then # echo "Can´t copy Adwaita theme" # exit -1 #fi # Copia gnome #mkdir -p $TARGET_PATH/share/icons/gnome #if [ "$?" != 0 ]; then # echo "Can´t create icons folder" # exit -1 #fi # #cp -rv $GTK_PREFIX/share/icons/gnome $TARGET_PATH/share/icons/gnome #if [ "$?" != 0 ]; then # echo "Can´t copy icons" # exit -1 #fi mkdir -p $TARGET_PATH/etc cp -rv $GTK_PREFIX/etc/gtk-3.0 $TARGET_PATH/etc/gtk-3.0 if [ "$?" != 0 ]; then echo "Can´t copy theme" exit -1 fi cat > $TARGET_PATH/etc/gtk-3.0/settings.ini << EOF [Settings] gtk-theme-name = Adwaita gtk-icon-theme-name = Adwaita gtk-fallback-icon-theme = Adwaita gtk-font-name = Sans 10 gtk-button-images = 1 EOF } gtk2() { # Build DLL list TEMPFILE="temp1.tmp" cat > $TEMPFILE << EOF intl.dll libatk-1.0-0.dll libcairo-2.dll libgailutil-18.dll libgdk_pixbuf-2.0-0.dll libgdk-win32-2.0-0.dll libgettextlib-0-*.dll libgettextpo*.dll libgettextsrc*.dll libgio-2.0-0.dll libglib-2.0-0.dll libgmodule-2.0-0.dll libgobject-2.0-0.dll libgthread-2.0-0.dll libgtk-win32-2.0-0.dll libpango-1.0-0.dll libpangocairo-1.0-0.dll libpangoft2-1.0-0.dll libpangowin32-1.0-0.dll zlib1.dll libpng*.dll libfontconfig*.dll libasprintf*.dll libgettextlib*.dll libexpat*.dll freetype*.dll gspawn-win32-helper-console.exe gspawn-win32-helper.exe gdk-pixbuf-query-loaders.exe EOF # jpeg62.dll # libtiff*.dll copyFiles $TEMPFILE # Build locale dirs cat > $TEMPFILE << EOF atk10.mo gdk-pixbuf.mo gettext-runtime.mo gettext-tools.mo glib20.mo gtk20-properties.mo gtk20.mo libiconv.mo EOF copy_locale $TEMPFILE # Copy default theme THEME_PATH="themes/MS-Windows/gtk-2.0" rm -fr "$TARGET_PATH/$THEME_PATH" mkdir -p "$TARGET_PATH/share/$THEME_PATH" echo "$GTK_PREFIX/share/$THEME_PATH/gtkrc ..." cp "$GTK_PREFIX/share/$THEME_PATH/gtkrc" "$TARGET_PATH/share/$THEME_PATH/gtkrc" if [ "$?" != "0" ]; then echo "Can´t copy default theme" exit -1 fi cat > $TEMPFILE << EOF engines loaders EOF rm -fr $TARGET_PATH/lib/gtk-2.0/$GTK_RUNTIME_VERSION/ mkdir -p $TARGET_PATH/lib/gtk-2.0/$GTK_RUNTIME_VERSION/ while read DIRNAME do if [ -d "$GTK_PREFIX/lib/gtk-2.0/$GTK_RUNTIME_VERSION/$DIRNAME" ]; then echo "$GTK_PREFIX/lib/gtk-2.0/$GTK_RUNTIME_VERSION/$DIRNAME ..." mkdir -p "$TARGET_PATH/lib/gtk-2.0/$GTK_RUNTIME_VERSION/$DIRNAME" cp -r "$GTK_PREFIX/lib/gtk-2.0/$GTK_RUNTIME_VERSION/$DIRNAME" "$TARGET_PATH/lib/gtk-2.0/$GTK_RUNTIME_VERSION" if [ "$?" != "0" ]; then echo "Can´t copy $DIRNAME" exit -1 fi fi done < $TEMPFILE rm -f $TEMPFILE mkdir -p $TARGET_PATH/etc/gtk-2.0/ echo "gtk-theme-name = \"MS-Windows\"" > $TARGET_PATH/etc/gtk-2.0/gtkrc if [ "$?" != "0" ]; then echo "Can´t set theme name" exit -1 fi } if [ "$GTK_VERSION" == "gtk+-3.0" ]; then gtk3 else gtk2 fi echo $0 Complete