glom r1411 - in trunk: . glom glom/libglom icons icons/win32 win32



Author: arminb
Date: Mon Feb  4 19:11:19 2008
New Revision: 1411
URL: http://svn.gnome.org/viewvc/glom?rev=1411&view=rev

Log:
2008-02-04  Armin Burgmeier  <armin openismus com>

	* glom/libglom/connectionpool.cc: Try finding postgres binaries in
	bin/ first. The installer installs them there because they do not find
	the shared data they need otherwise.

	* icons/Makefile.am:
	* icons/win32/Makefile.am: Include the glom.ico in the distribution.

	* glom/Makefile.am: Link glom.exe with the -mwindows flag on Windows
	so that starting glom does not start a console window additionally.

	* win32/glom.iss.in: The script to create the Windows installer with
	InnoSetup (http://www.innosetup.org). It is a .in files so that
	configure automatically sets the correct Glom version in it.

	* win32/querymodules.bat: Batch file the installer uses to register
	pango modules, gdk pixbuf loaders and GTK+ input methods.

	* win32/build-installer: Tool I use to gather all files for the
	installer. It is currently verify specific to my own build setup.

	* win32/Makefile.am: Include these files with make dist.

	* Makefile.am: Add win32 to SUBDIRS.
	* configure.in: Create win32/Makefile, win32/glom.iss and
	icons/win32/Makfile.


Added:
   trunk/icons/win32/Makefile.am
   trunk/win32/
   trunk/win32/Makefile.am
   trunk/win32/build-installer   (contents, props changed)
   trunk/win32/glom.iss.in   (contents, props changed)
   trunk/win32/querymodules.bat   (contents, props changed)
Modified:
   trunk/ChangeLog
   trunk/Makefile.am
   trunk/configure.in
   trunk/glom/Makefile.am
   trunk/glom/libglom/connectionpool.cc
   trunk/icons/Makefile.am

Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am	(original)
+++ trunk/Makefile.am	Mon Feb  4 19:11:19 2008
@@ -1,7 +1,7 @@
 ## top-level Makefile.am
 
 #Build in these directories:
-SUBDIRS = po glom macros examples xslt icons
+SUBDIRS = po glom macros examples xslt icons win32
 
 if HAVE_GNOME_DOC_UTILS
 SUBDIRS += docs

Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in	(original)
+++ trunk/configure.in	Mon Feb  4 19:11:19 2008
@@ -227,11 +227,14 @@
       icons/32x32/Makefile \
       icons/48x48/Makefile \
       icons/scalable/Makefile \
+      icons/win32/Makefile \
     xslt/Makefile \
     po/Makefile.in \
   macros/Makefile \
   examples/Makefile \
-  glom.desktop.in
+  glom.desktop.in \
+  win32/Makefile \
+  win32/glom.iss
 )
 
 

Modified: trunk/glom/Makefile.am
==============================================================================
--- trunk/glom/Makefile.am	(original)
+++ trunk/glom/Makefile.am	Mon Feb  4 19:11:19 2008
@@ -113,6 +113,8 @@
 BUILT_SOURCES = glom.res
 CLEANFILES = glom.res
 glom_LDADD += glom.res
+# Suppress console window
+glom_LDFLAGS = -mwindows
 endif
 
 #Install the .dtd file:

Modified: trunk/glom/libglom/connectionpool.cc
==============================================================================
--- trunk/glom/libglom/connectionpool.cc	(original)
+++ trunk/glom/libglom/connectionpool.cc	Mon Feb  4 19:11:19 2008
@@ -70,10 +70,26 @@
 #ifdef G_OS_WIN32
     // Use postgres on Windows, since the postgresql installer does not
     // install the (deprecated) postmaster binary.
+    std::string real_program = program + EXEEXT;
     if(program == "postmaster")
-      return Glib::find_program_in_path("postgres.exe");
+      real_program = "postgres.exe";
+    
+    // Have a look at the bin directory of the application executable first.
+    // The installer installs postgres there. postgres needs to be installed
+    // in a directory called bin for its relocation stuff to work, so that
+    // it finds the share data in share. Unfortunately it does not look into
+    // share/postgresql which would be nice to separate the postgres stuff
+    // from the other shared data. We can perhaps still change this later by
+    // building postgres with another prefix than /local/pgsql.
+    gchar* bin_subdir = g_win32_get_package_installation_subdirectory(NULL, NULL, "bin");
+    std::string test = Glib::build_filename(bin_subdir, real_program);
+    g_free(bin_subdir);
+
+    if(Glib::file_test(test, Glib::FILE_TEST_IS_EXECUTABLE))
+      return test;
 
-    return Glib::find_program_in_path(program + EXEEXT);
+    // Look in PATH otherwise
+    return Glib::find_program_in_path(real_program);
 #else
     return Glib::build_filename(POSTGRES_UTILS_PATH, program + EXEEXT);
 #endif
@@ -980,20 +996,8 @@
   const std::string temp_pwfile = Glib::build_filename(Glib::get_tmp_dir(), "glom_initdb_pwfile");
   create_text_file(temp_pwfile, get_password());
 
-  // We need to specify the path where initdb should look for shared files. If
-  // we don't do this, it defaults to /usr/local/pgsql/share. The installer
-  // installs the necessary files to $glomdir/share/postgresql which is what
-  // we pass here.
-#ifdef G_OS_WIN32
-  gchar* share_path_ = g_win32_get_package_installation_subdirectory(NULL, NULL, "share/postgresql");
-  const std::string share_path = std::string(" -L \"") + share_path_ + "\"";
-  g_free(share_path_);
-#else
-  const std::string share_path;
-#endif
-
   const std::string command_initdb = Glib::shell_quote(get_path_to_postgres_executable("initdb")) + " -D \"" + dbdir_data + "\"" +
-                                        " -U " + username + " --pwfile=\"" + temp_pwfile + "\"" + share_path;
+                                        " -U " + username + " --pwfile=\"" + temp_pwfile + "\"";
 
   //Note that --pwfile takes the password from the first line of a file. It's an alternative to supplying it when prompted on stdin.
   const bool result = Glom::Spawn::execute_command_line_and_wait(command_initdb, _("Creating Database Data"));

Modified: trunk/icons/Makefile.am
==============================================================================
--- trunk/icons/Makefile.am	(original)
+++ trunk/icons/Makefile.am	Mon Feb  4 19:11:19 2008
@@ -1 +1 @@
-SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable
+SUBDIRS = 16x16 22x22 24x24 32x32 48x48 scalable win32

Added: trunk/icons/win32/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/icons/win32/Makefile.am	Mon Feb  4 19:11:19 2008
@@ -0,0 +1 @@
+EXTRA_DIST = glom.ico

Added: trunk/win32/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/win32/Makefile.am	Mon Feb  4 19:11:19 2008
@@ -0,0 +1,2 @@
+# Stuff to build the Windows installer:
+EXTRA_DIST = glom.iss.in build-installer querymodules.bat

Added: trunk/win32/build-installer
==============================================================================
--- (empty file)
+++ trunk/win32/build-installer	Mon Feb  4 19:11:19 2008
@@ -0,0 +1,197 @@
+#!/bin/sh
+echo "You need to execute this on a Windows machine within msys (http://www.mingw.org)"
+echo "You also need InnoSetup (http://www.innosetup.org) with iscc in your PATH"
+echo "Make sure glom and all its dependencies have been installed correctly to /local"
+
+echo "Cleanup..."
+if test -e installer; then
+  rm installer -Rf || exit;
+fi
+
+mkdir -p installer || exit
+
+echo "Copying DLL files..."
+
+# TODO: Built everything required myself, drop some redundant dependencies
+# such as intl.dll vs. libintl-8.dll
+
+cp /local/bin/libintl-8.dll installer || exit
+cp /local/bin/libgettextpo-0.dll installer || exit
+
+cp /local/bin/libglib-2.0-0.dll installer || exit
+cp /local/bin/libgio-2.0-0.dll installer || exit
+cp /local/bin/libgmodule-2.0-0.dll installer || exit
+cp /local/bin/libgobject-2.0-0.dll installer || exit
+cp /local/bin/libgthread-2.0-0.dll installer || exit
+
+cp /local/bin/gspawn-win32-helper.exe installer || exit
+cp /local/bin/gspawn-win32-helper-console.exe installer || exit
+
+# TODO: Build myself
+cp /bin/libatk-1.0-0.dll installer || exit
+cp /bin/libcairo-2.dll installer || exit
+cp /bin/libgnome-2-0.dll installer || exit
+cp /bin/libpng13.dll installer || exit
+cp /bin/libpopt-0.dll installer || exit
+
+cp /local/bin/libpango-1.0-0.dll installer || exit
+cp /local/bin/libpangocairo-1.0-0.dll installer || exit
+cp /local/bin/libpangowin32-1.0-0.dll installer || exit
+
+cp /local/bin/libgdk-win32-2.0-0.dll installer || exit
+cp /local/bin/libgdk_pixbuf-2.0-0.dll installer || exit
+
+cp /local/bin/libgtk-win32-2.0-0.dll installer || exit
+cp /local/bin/libgtksourceview-2.0-0.dll installer || exit
+
+cp /local/bin/libORBit-2-0.dll installer || exit
+cp /local/bin/libORBitCosNaming-2-0.dll installer || exit
+cp /local/bin/libORBit-imodule-2-0.dll installer || exit
+cp /local/bin/libbonobo-2-0.dll installer || exit
+cp /local/bin/libbonobo-activation-4.dll installer || exit
+
+cp /local/bin/libglade-2.0-0.dll installer || exit
+cp /local/bin/libgconf-2-4.dll installer || exit
+cp /local/bin/libgnomevfs-2-0.dll installer || exit
+cp /local/bin/libgoocanvas-3.dll installer || exit
+
+cp /local/bin/libgda-3.0-2.dll installer || exit
+cp /local/bin/libgdasql-3.0-2.dll installer || exit
+cp /local/bin/libgda-report-3.0-2.dll installer || exit
+
+cp /local/bin/libsigc-2.0-0.dll installer || exit
+cp /local/bin/libglibmm-2.4-1.dll installer || exit
+cp /local/bin/libatkmm-1.6-1.dll installer || exit
+cp /local/bin/libcairomm-1.0-1.dll installer || exit
+cp /local/bin/libpangomm-1.4-1.dll installer || exit
+cp /local/bin/libgdkmm-2.4-1.dll installer || exit
+cp /local/bin/libxml++-2.6-2.dll installer || exit
+cp /local/bin/libgtkmm-2.4-1.dll installer || exit
+
+cp /local/bin/libgtksourceviewmm-2.0-1.dll installer || exit
+cp /local/bin/libgconfmm-2.6-1.dll installer || exit
+cp /local/bin/libgdamm-3.0-8.dll installer || exit
+cp /local/bin/libglademm-2.4-1.dll installer || exit
+cp /local/bin/libgnomevfsmm-2.6-1.dll installer || exit
+
+cp /local/bin/libbakery-2.4-2-4-1.dll installer || exit
+cp /local/bin/libglom-0.dll installer || exit
+
+echo "Stripping DLL files..."
+strip installer/*.dll || exit
+strip installer/*.exe || exit
+
+# stripping libxml2.dll renders it unusable (although not changing it in size).
+# We therefore copy it after having stripped the rest
+cp /bin/libxml2.dll installer || exit
+cp /bin/intl.dll installer || exit
+cp /bin/iconv.dll installer || exit
+cp /bin/zlib1.dll installer || exit
+
+echo "Copying modules..."
+
+mkdir -p installer/lib/gtk-2.0/2.10.0/immodules || exit
+cp /local/lib/gtk-2.0/2.10.0/immodules/*.dll installer/lib/gtk-2.0/2.10.0/immodules || exit
+strip installer/lib/gtk-2.0/2.10.0/immodules/*.dll || exit
+cp /local/bin/gtk-query-immodules-2.0.exe installer || exit
+
+mkdir -p installer/lib/gtk-2.0/2.10.0/engines || exit
+cp /local/lib/gtk-2.0/2.10.0/engines/libwimp.dll installer/lib/gtk-2.0/2.10.0/engines || exit
+strip installer/lib/gtk-2.0/2.10.0/engines/libwimp.dll || exit
+
+mkdir -p installer/lib/gtk-2.0/2.10.0/loaders || exit
+cp /local/lib/gtk-2.0/2.10.0/loaders/*.dll installer/lib/gtk-2.0/2.10.0/loaders || exit
+strip installer/lib/gtk-2.0/2.10.0/loaders/*.dll || exit
+cp /local/bin/gdk-pixbuf-query-loaders.exe installer || exit
+
+mkdir -p installer/lib/pango/1.6.0/modules || exit
+cp /local/lib/pango/1.6.0/modules/*.dll installer/lib/pango/1.6.0/modules || exit
+strip installer/lib/pango/1.6.0/modules/*.dll || exit
+cp /local/bin/pango-querymodules.exe installer || exit
+
+mkdir -p installer/share/themes || exit
+cp -R /local/share/themes/MS-Windows installer/share/themes || exit
+mkdir -p installer/etc/gtk-2.0 || exit
+echo "gtk-theme-name = \"MS-Windows\"" > installer/etc/gtk-2.0/gtkrc || exit
+
+mkdir -p installer/lib/libgda-3.0/providers || exit
+cp /local/lib/libgda-3.0/providers/*.dll installer/lib/libgda-3.0/providers || exit
+strip installer/lib/libgda-3.0/providers/*.dll || exit
+
+mkdir -p installer/lib/gnome-vfs-2.0/modules || exit
+cp /local/lib/gnome-vfs-2.0/modules/*.dll installer/lib/gnome-vfs-2.0/modules || exit
+strip installer/lib/gnome-vfs-2.0/modules/*.dll || exit
+
+mkdir -p installer/etc/gnome-vfs-2.0/modules || exit
+cp /local/etc/gnome-vfs-2.0/modules/default-modules.conf installer/etc/gnome-vfs-2.0/modules || exit
+
+echo "Copying locales..."
+
+cp /lib/locale installer/lib -R || exit
+cp /local/lib/locale installer/lib -R || exit
+
+find installer/lib/locale/ -type f | grep -v atk10.mo | grep -v gtk20.mo | grep -v bakery.mo | grep -v GConf2.mo | grep -v glib20.mo | grep -v glom.mo | grep -v gnome-vfs-2.0.mo | grep -v gtk20.mo | grep -v gtk20-properties.mo | grep -v gtksourceview-2.0.mo | grep -v libbonobo-2.0.mo | grep -v libgda-3.0.mo | xargs rm
+find installer/lib/locale -type d | xargs rmdir -p --ignore-fail-on-non-empty
+
+echo "Copying executable..."
+cp /local/bin/glom.exe installer || exit
+strip installer/glom.exe || exit
+
+echo "Copying postgres..."
+mkdir -p installer/bin || exit
+cp /local/pgsql/bin/postgres.exe installer/bin || exit
+cp /local/pgsql/bin/initdb.exe installer/bin || exit
+cp /local/pgsql/bin/pg_ctl.exe installer/bin || exit
+strip installer/bin/*.exe || exit
+
+cp /local/pgsql/lib/libpq.dll installer || exit
+strip installer/libpq.dll || exit
+
+mkdir -p installer/share/postgresql || exit
+cp /local/pgsql/share/postgres.bki installer/share/postgresql || exit
+cp /local/pgsql/share/postgres.description installer/share/postgresql || exit
+cp /local/pgsql/share/postgres.shdescription installer/share/postgresql || exit
+cp /local/pgsql/share/conversion_create.sql installer/share/postgresql || exit
+cp /local/pgsql/share/information_schema.sql installer/share/postgresql || exit
+cp /local/pgsql/share/pg_hba.conf.sample installer/share/postgresql || exit
+cp /local/pgsql/share/pg_ident.conf.sample installer/share/postgresql || exit
+cp /local/pgsql/share/postgresql.conf.sample installer/share/postgresql || exit
+cp /local/pgsql/share/sql_features.txt installer/share/postgresql || exit
+cp /local/pgsql/share/system_views.sql installer/share/postgresql || exit
+cp -R /local/pgsql/share/timezone installer/share/postgresql || exit
+cp -R /local/pgsql/share/timezonesets installer/share/postgresql || exit
+
+mkdir -p installer/lib/postgresql || exit
+cp /local/pgsql/lib/*.dll installer/lib/postgresql || exit
+strip installer/lib/postgresql/*.dll || exit
+# These are not conversion modules
+rm installer/lib/postgresql/libecpg.dll installer/lib/postgresql/libecpg_compat.dll installer/lib/postgresql/libpgtypes.dll installer/lib/postgresql/libpq.dll installer/lib/postgresql/pgevent.dll installer/lib/postgresql/plpgsql.dll || exit
+
+echo "Copying shared data (glade files, icons, etc.)..."
+
+mkdir -p installer/share/gtksourceview-2.0 || exit
+cp -R /local/share/gtksourceview-2.0/language-specs installer/share/gtksourceview-2.0 || exit
+cp -R /local/share/gtksourceview-2.0/styles installer/share/gtksourceview-2.0 || exit
+
+mkdir -p installer/share/libgda-3.0/dtd
+cp /local/share/libgda-3.0/*.xml installer/share/libgda-3.0/
+cp /local/share/libgda-3.0/dtd/*.dtd installer/share/libgda-3.0/dtd
+
+mkdir -p installer/share/glom/glade || exit
+cp /local/share/glom/glade/glom.glade installer/share/glom/glade || exit
+cp /local/share/glom/glade/glom_developer.glade installer/share/glom/glade || exit
+
+# TODO: /local/share/glom/doc/examples
+# TODO: /local/share/glom/pixmaps (requires correct lookup in glom)
+# TODO: /local/share/glom/xslt/* (what is this used for?)
+
+mkdir -p installer/share/icons/hicolor/48x48/apps || exit
+cp /local/share/icons/hicolor/48x48/apps/glom.png installer/share/icons/hicolor/48x48/apps || exit
+
+echo "Creating installer..."
+
+cp glom.iss installer || exit
+cp querymodules.bat installer || exit
+iscc installer/glom.iss || exit
+
+echo "Done"

Added: trunk/win32/glom.iss.in
==============================================================================
--- (empty file)
+++ trunk/win32/glom.iss.in	Mon Feb  4 19:11:19 2008
@@ -0,0 +1,276 @@
+[Setup]
+AppName=Glom
+AppVerName=Glom @VERSION@
+DefaultDirName={pf}\Glom
+DefaultGroupName=Glom
+UninstallDisplayIcon={app}\Glom.exe
+Uninstallable=yes
+AppPublisher=Openismus GmbH
+AppPublisherURL=http://www.glom.org/
+AppVersion= VERSION@
+OutputBaseFilename=glom-setup- VERSION@
+
+[Components]
+Name: "gtk"; Description: "GTK+ runtime environment"; Types: full compact custom; Flags: fixed
+Name: "main"; Description: "Glom"; Types: full compact custom; Flags: fixed
+Name: "locale"; Description: "Translations"; Types: full
+
+; TODO: Enable languages separately
+
+[Tasks]
+Name: common; Description: "For all users"; Components: main; Flags: exclusive
+Name: user; Description: "For the current user only"; Components: main; Flags: exclusive unchecked
+
+[Icons]
+; Common task icons
+Name: "{commonprograms}\{groupname}\Glom"; Filename: "{app}\Glom.exe"; Tasks: common
+Name: "{commonprograms}\{groupname}\Uninstall Glom"; Filename: "{uninstallexe}"; Tasks: common
+
+; User task icons
+Name: "{userprograms}\{groupname}\Glom"; Filename: "{app}\Glom.exe"; Tasks: user
+Name: "{userprograms}\{groupname}\Uninstall Glom"; Filename: "{uninstallexe}"; Tasks: user
+
+[Files]
+
+; GTK+
+Source: "intl.dll"; DestDir: "{app}"; Components: gtk
+Source: "iconv.dll"; DestDir: "{app}"; Components: gtk
+Source: "zlib1.dll"; DestDir: "{app}"; Components: gtk
+Source: "libintl-8.dll"; DestDir: "{app}"; Components: gtk
+Source: "libpopt-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libpng13.dll"; DestDir: "{app}"; Components: gtk
+Source: "libxml2.dll"; DestDir: "{app}"; Components: gtk
+Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "gspawn-win32-helper.exe"; DestDir: "{app}"; Components: gtk
+Source: "gspawn-win32-helper-console.exe"; DestDir: "{app}"; Components: gtk
+Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libcairo-2.dll"; DestDir: "{app}"; Components: gtk
+Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Components: gtk
+
+; Other glom dependency DLLs
+Source: "libORBit-2-0.dll"; DestDir: "{app}"; Components: main
+Source: "libORBit-imodule-2-0.dll"; DestDir: "{app}"; Components: main
+Source: "libORBitCosNaming-2-0.dll"; DestDir: "{app}"; Components: main
+Source: "libbonobo-2-0.dll"; DestDir: "{app}"; Components: main
+Source: "libbonobo-activation-4.dll"; DestDir: "{app}"; Components: main
+Source: "libgconf-2-4.dll"; DestDir: "{app}"; Components: main
+Source: "libgda-3.0-2.dll"; DestDir: "{app}"; Components: main
+Source: "libgda-report-3.0-2.dll"; DestDir: "{app}"; Components: main
+Source: "libgdasql-3.0-2.dll"; DestDir: "{app}"; Components: main
+Source: "libgettextpo-0.dll"; DestDir: "{app}"; Components: main
+Source: "libglade-2.0-0.dll"; DestDir: "{app}"; Components: main
+Source: "libgnome-2-0.dll"; DestDir: "{app}"; Components: main
+Source: "libgnomevfs-2-0.dll"; DestDir: "{app}"; Components: main
+Source: "libgoocanvas-3.dll"; DestDir: "{app}"; Components: main
+Source: "libgtksourceview-2.0-0.dll"; DestDir: "{app}"; Components: main
+
+Source: "libatkmm-1.6-1.dll"; DestDir: "{app}"; Components: main
+Source: "libbakery-2.4-2-4-1.dll"; DestDir: "{app}"; Components: main
+Source: "libcairomm-1.0-1.dll"; DestDir: "{app}"; Components: main
+Source: "libgconfmm-2.6-1.dll"; DestDir: "{app}"; Components: main
+Source: "libgdamm-3.0-8.dll"; DestDir: "{app}"; Components: main
+Source: "libgdkmm-2.4-1.dll"; DestDir: "{app}"; Components: main
+Source: "libglademm-2.4-1.dll"; DestDir: "{app}"; Components: main
+Source: "libglibmm-2.4-1.dll"; DestDir: "{app}"; Components: main
+Source: "libgnomevfsmm-2.6-1.dll"; DestDir: "{app}"; Components: main
+Source: "libgtkmm-2.4-1.dll"; DestDir: "{app}"; Components: main
+Source: "libgtksourceviewmm-2.0-1.dll"; DestDir: "{app}"; Components: main
+Source: "libpangomm-1.4-1.dll"; DestDir: "{app}"; Components: main
+Source: "libsigc-2.0-0.dll"; DestDir: "{app}"; Components: main
+Source: "libxml++-2.6-2.dll"; DestDir: "{app}"; Components: main
+
+; Postgres
+Source: "bin/postgres.exe"; DestDir: "{app}/bin"; Components: main
+Source: "bin/initdb.exe"; DestDir: "{app}/bin"; Components: main
+Source: "bin/pg_ctl.exe"; DestDir: "{app}/bin"; Components: main
+Source: "libpq.dll"; DestDir: "{app}"; Components: main
+
+; TODO: I would like to install these into {app}/share/postgresql, but postgres
+; does not find them then.
+Source: "share/postgresql/*"; DestDir: "{app}/share"; Components: main; Flags: recursesubdirs
+; TODO: Again, same with lib
+Source: "lib/postgresql/*.dll"; DestDir: "{app}/lib"; Components: main;
+
+; Glom executables
+Source: "libglom-0.dll"; DestDir: "{app}"; Components: main
+Source: "Glom.exe"; DestDir: "{app}"; Components: main
+
+; Modules
+Source: "lib/gtk-2.0/2.10.0/immodules/*"; DestDir: "{app}/lib/gtk-2.0/2.10.0/immodules"; Components: gtk
+Source: "gtk-query-immodules-2.0.exe"; DestDir: "{app}"; Components: gtk; Flags: deleteafterinstall;
+
+Source: "lib/gtk-2.0/2.10.0/engines/*"; DestDir: "{app}/lib/gtk-2.0/2.10.0/engines"; Components: gtk
+
+Source: "lib/gtk-2.0/2.10.0/loaders/*"; DestDir: "{app}/lib/gtk-2.0/2.10.0/loaders"; Components: gtk
+Source: "gdk-pixbuf-query-loaders.exe"; DestDir: "{app}"; Components: gtk; Flags: deleteafterinstall;
+
+Source: "lib/pango/1.6.0/modules/*"; DestDir: "{app}/lib/pango/1.6.0/modules"; Components: gtk;
+Source: "pango-querymodules.exe"; DestDir: "{app}"; Components: gtk; Flags: deleteafterinstall;
+
+Source: "share/themes/MS-Windows/*"; DestDir: "{app}/share/themes/MS-Windows"; Flags: recursesubdirs; Components: gtk
+Source: "etc/gtk-2.0/gtkrc"; DestDir: "{app}/etc/gtk-2.0"; Components: gtk
+Source: "querymodules.bat"; DestDir: "{app}"; Components: gtk; Flags: deleteafterinstall;
+
+Source: "lib/gnome-vfs-2.0/modules/*.dll"; DestDir: "{app}/lib/gnome-vfs-2.0/modules"; Components: main;
+Source: "etc/gnome-vfs-2.0/modules/default-modules.conf"; DestDir: "{app}/etc/gnome-vfs-2.0/modules"; Components: main;
+
+; GtkSourceView
+Source: "share/gtksourceview-2.0/language-specs/*"; DestDir: "{app}/share/gtksourceview-2.0/language-specs"; Components: main
+Source: "share/gtksourceview-2.0/styles/*"; DestDir: "{app}/share/gtksourceview-2.0/styles"; Components: main
+
+; libgda
+Source: "share/libgda-3.0/*"; DestDir: "{app}/share/libgda-3.0"; Components: main
+Source: "share/libgda-3.0/dtd/*"; DestDir: "{app}/share/libgda-3.0/dtd"; Components: main
+Source: "lib/libgda-3.0/providers/*"; DestDir: "{app}/lib/libgda-3.0/providers"; Components: main
+
+; Icons
+Source: "share/icons/hicolor/48x48/apps/glom.png"; DestDir: "{app}/share/icons/hicolor/48x48/apps"; Components: main
+
+; Glade files
+Source: "share/glom/glade/glom.glade"; DestDir: "{app}/share/glom/glade"; Components: main
+Source: "share/glom/glade/glom_developer.glade"; DestDir: "{app}/share/glom/glade"; Components: main
+
+; Locales
+Source: "lib\locale\af\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\af\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\am\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\am\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ang\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ang\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ar\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ar\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\as\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\as\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\az\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\az\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\az_IR\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\az_IR\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\be\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\be\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\be latin\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\be latin\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\bg\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\bg\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\bn\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\bn\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\bn_IN\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\bn_IN\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\br\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\br\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\bs\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\bs\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ca\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ca\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\cs\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\cs\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\cy\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\cy\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\da\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\da\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\de\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\de\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\dz\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\dz\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\el\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\el\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\en_CA\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\en_CA\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\en_GB\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\en_GB\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\eo\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\eo\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\es\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\es\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\et\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\et\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\eu\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\eu\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\fa\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\fa\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\fi\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\fi\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\fr\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\fr\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ga\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ga\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\gl\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\gl\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\gu\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\gu\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\he\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\he\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\hi\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\hi\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\hr\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\hr\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\hu\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\hu\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\hy\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\hy\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ia\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ia\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\id\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\id\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\io\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\io\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\is\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\is\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\it\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\it\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ja\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ja\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ka\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ka\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\kn\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\kn\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ko\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ko\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ku\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ku\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\li\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\li\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\lt\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\lt\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\lv\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\lv\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\mg\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\mg\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\mi\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\mi\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\mk\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\mk\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ml\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ml\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\mn\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\mn\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\mr\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\mr\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ms\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ms\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\nb\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\nb\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ne\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ne\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\nl\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\nl\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\nn\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\nn\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\nso\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\nso\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\oc\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\oc\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\or\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\or\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\pa\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\pa\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\pl\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\pl\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\pt\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\pt\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\pt_BR\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\pt_BR\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ro\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ro\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ru\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ru\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\rw\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\rw\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\si\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\si\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\sk\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\sk\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\sl\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\sl\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\sq\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\sq\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\sr\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\sr\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\sr Latn\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\sr Latn\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\sr ije\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\sr ije\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\sv\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\sv\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ta\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ta\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\te\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\te\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\th\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\th\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\tk\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\tk\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\tl\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\tl\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\tr\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\tr\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\tt\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\tt\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ug\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ug\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\uk\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\uk\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\ur\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\ur\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\uz\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\uz\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\uz cyrillic\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\uz cyrillic\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\vi\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\vi\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\wa\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\wa\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\xh\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\xh\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\yi\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\yi\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\zh_CN\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\zh_CN\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\zh_HK\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\zh_HK\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\zh_TW\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\zh_TW\LC_MESSAGES"; Components: main and locale
+Source: "lib\locale\zu\LC_MESSAGES\*"; DestDir: "{app}\lib\locale\zu\LC_MESSAGES"; Components: main and locale
+
+; Register .glom file type if we install for all users. Is there a possibility
+; to register a type just for a single user?
+[Registry]
+Root: HKCR; Subkey: ".glom"; ValueType: string; ValueData: "glomfile"; Flags: deletevalue uninsdeletekeyifempty uninsdeletevalue; Tasks: common
+Root: HKCR; Subkey: ".glom"; ValueType: string; ValueName: "Content Type"; ValueData: "application/x-glom"; Flags: deletevalue uninsdeletekeyifempty uninsdeletevalue; Tasks: common
+
+[Dirs]
+Name: "{app}\etc\pango";
+Name: "{app}\etc\gtk-2.0";
+
+[Run]
+Filename: "{app}\querymodules.bat"; StatusMsg: "Querying modules..."; Flags: runhidden
+
+[Code]
+{ Remove generated files not generated by the installer }
+procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
+begin
+	if CurUninstallStep = usUninstall then
+	begin
+		DeleteFile(ExpandConstant('{app}') + '\etc\gtk-2.0\gtk.immodules');
+		DeleteFile(ExpandConstant('{app}') + '\etc\gtk-2.0\gdk-pixbuf.loaders');
+		DeleteFile(ExpandConstant('{app}') + '\etc\pango\pango.modules');
+	end;
+end;
+
+procedure DeinitializeUninstall();
+begin
+	{ Remove main dir and etc/ which are not removed automatically,
+          probably because of the querymodule files not installed by the
+          installer }
+	DelTree(ExpandConstant('{app}') + '\etc', TRUE, TRUE, TRUE);
+	DelTree(ExpandConstant('{app}'), TRUE, FALSE, FALSE);
+end;

Added: trunk/win32/querymodules.bat
==============================================================================
--- (empty file)
+++ trunk/win32/querymodules.bat	Mon Feb  4 19:11:19 2008
@@ -0,0 +1,3 @@
+pango-querymodules.exe > etc/pango/pango.modules
+gdk-pixbuf-query-loaders.exe > etc/gtk-2.0/gdk-pixbuf.loaders
+gtk-query-immodules-2.0.exe > etc/gtk-2.0/gtk.immodules



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]