gtkmm r1027 - in trunk: . installer installer/NSISLibrary installer/translations



Author: arminb
Date: Sun Aug 10 19:43:11 2008
New Revision: 1027
URL: http://svn.gnome.org/viewvc/gtkmm?rev=1027&view=rev

Log:
2008-08-10  Armin Burgmeier  <armin arbur net>

	* installer/NSISLibrary/CmdParameters.nsh:
	* installer/NSISLibrary/DetectGTK.nsh:
	* installer/NSISLibrary/IsNT.nsh:
	* installer/NSISLibrary/Makefile.am:
	* installer/NSISLibrary/ParseVersion.nsh:
	* installer/NSISLibrary/PathManipulation.nsh:
	* installer/NSISLibrary/PathQuestion.ini:
	* installer/NSISLibrary/SetContext.ini:
	* installer/NSISLibrary/StringUtilities.nsh:
	* installer/NSISLibrary/VersionCheck.nsh:
	* installer/NSISLibrary/WriteEnvStr.nsh:

	* installer/translations/english.nsh:
	* installer/translations/french.nsh:
	* installer/translations/Makefile.am:

	* installer/gtk_devel_setup-2.12.ini:
	* installer/gtk_runtime_setup-2.12.ini:
	* installer/gtkmm.ico:
	* installer/gtkmm_win32.txt:
	* installer/gtkmm-2.4.vsprops:
	* installer/gtkmm-2.4d.vsprops:
	* installer/README:
	* installer/install-msvc-module:
	* installer/gtkmm-installer.nsi.in:
	* installer/build-installer:
	* installer/Makefile.am: Added files and helper scripts used to
	generate the Windows installer.

	* Makefile.am:
	* configure.in: Added installer/ subdirectory.

Added:
   trunk/installer/
   trunk/installer/Makefile.am
   trunk/installer/NSISLibrary/
   trunk/installer/NSISLibrary/CmdParameters.nsh
   trunk/installer/NSISLibrary/DetectGTK.nsh
   trunk/installer/NSISLibrary/IsNT.nsh
   trunk/installer/NSISLibrary/Makefile.am
   trunk/installer/NSISLibrary/ParseVersion.nsh
   trunk/installer/NSISLibrary/PathManipulation.nsh
   trunk/installer/NSISLibrary/PathQuestion.ini
   trunk/installer/NSISLibrary/SetContext.ini
   trunk/installer/NSISLibrary/StringUtilities.nsh
   trunk/installer/NSISLibrary/VersionCheck.nsh
   trunk/installer/NSISLibrary/WriteEnvStr.nsh
   trunk/installer/README
   trunk/installer/build-installer
   trunk/installer/gtk_devel_setup-2.12.ini
   trunk/installer/gtk_runtime_setup-2.12.ini
   trunk/installer/gtkmm-2.4.vsprops
   trunk/installer/gtkmm-2.4d.vsprops
   trunk/installer/gtkmm-installer.nsi.in
   trunk/installer/gtkmm.ico   (contents, props changed)
   trunk/installer/gtkmm_win32.txt
   trunk/installer/install-msvc-module
   trunk/installer/translations/
   trunk/installer/translations/Makefile.am
   trunk/installer/translations/english.nsh
   trunk/installer/translations/french.nsh
Modified:
   trunk/ChangeLog
   trunk/Makefile.am
   trunk/configure.in

Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am	(original)
+++ trunk/Makefile.am	Sun Aug 10 19:43:11 2008
@@ -4,7 +4,7 @@
   ATK_SUBDIR=
 endif
 
-SUBDIRS		= tools $(ATK_SUBDIR) gdk gtk @DEMO_SUBDIR@ @DOCS_SUBDIR@ tests MSVC_Net2005
+SUBDIRS		= tools $(ATK_SUBDIR) gdk gtk @DEMO_SUBDIR@ @DOCS_SUBDIR@ tests MSVC_Net2005 installer
 DIST_SUBDIRS	= $(SUBDIRS) scripts
 
 EXTRA_DIST	= build_shared/Makefile_build.am_fragment \

Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in	(original)
+++ trunk/configure.in	Sun Aug 10 19:43:11 2008
@@ -200,9 +200,9 @@
 #########################################################################
 gtkmm_min_glibmm_version=2.14.1
 gtkmm_min_giomm_version=2.16.0
-gtkmm_min_gtk_version=2.13.4
+gtkmm_min_gtk_version=2.12.11
 gtkmm_min_cairomm_version=1.2.2
-gtkmm_min_pangomm_version=2.13.5
+gtkmm_min_pangomm_version=2.13.4
 
 
 GLIBMM_LIBDIR=`pkg-config --variable=libdir glibmm-2.4`
@@ -443,6 +443,11 @@
     MSVC_Net2005/gtkmm/gtkmm.rc
     MSVC_Net2005/demos/Makefile
       MSVC_Net2005/demos/gtk-demo/Makefile
+
+  installer/Makefile
+    installer/NSISLibrary/Makefile
+    installer/translations/Makefile
+  installer/gtkmm-installer.nsi
 ])
 
 AC_OUTPUT()

Added: trunk/installer/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/installer/Makefile.am	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,13 @@
+SUBDIRS = NSISLibrary translations
+
+BUILT_SOURCES = lgpl.txt
+
+MAINTAINERCLEANFILES = $(built_sources)
+DISTCLEANFILES = $(built_sources)
+
+EXTRA_DIST = lgpl.txt gtkmm.ico gtkmm_win32.txt gtkmm-installer.nsi gtk_devel_setup-2.10.ini gtk_runtime_setup-2.10.ini
+
+# Copy COPYING file to lgpl.txt, used as license text by the installer
+
+lgpl.txt: $(top_srcdir)/COPYING
+	cp -f $(top_srcdir)/COPYING $@

Added: trunk/installer/NSISLibrary/CmdParameters.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/CmdParameters.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,118 @@
+
+; Title          Command line parameter utilities
+; Author         Cedric Gustin <cedric gustin swing be>
+
+; Shamely borrowed from NSIS Archive
+
+!ifndef CMD_PARAMETERS_NSH
+!define CMD_PARAMETERS_NSH
+
+!include "StrFunc.nsh"
+${StrLoc} # Supportable for Install Sections and Functions
+
+; Cmd_GetParameter
+ ; Input, top of stack = parameter to search for
+ ; Output, top of stack = string with value of the parameter
+ ; 
+ ; Modifies no other variables.
+ 
+Function Cmd_GetParameter
+
+  Push $R0
+  Exch
+  Pop $R0
+  Push $0
+  Push $1
+  Push $2
+  Push $R1
+  Call Cmd_GetAllParameters
+  Pop $2
+  # Search for  standalone parameter
+  ${StrLoc} $R1 $2 "/$R0" ">"
+  StrCmp $R1 "" "" +3
+  StrCpy $0 ""
+  Goto done
+  # search for quoted /parameter
+  StrCpy $1 '"'
+  Push $2
+  StrCpy $R0 "/$R0="
+  Push '"$R0'
+  Call String_StrCut
+  Pop $0
+  StrCpy $0 $0 "" 1 # skip quote
+  StrCmp $0 "" "" next
+  # search for non quoted /parameter
+  StrCpy $1 ' '
+  Push $2
+  Push '$R0'
+  Call String_StrCut
+  Pop $0
+next:
+  StrCmp $0 "" "" +3
+  StrCpy $0 "1"
+  Goto done
+  # copy the value after /parameter=
+  StrLen $R1 $R0
+  StrCpy $0 $0 "" $R1
+  # search for the next parameter
+  Push $0
+  Push $1
+  Call String_StrCut
+  Pop $1
+  StrCmp $1 "" done
+  StrLen $1 $1
+  StrCpy $0 $0 -$1
+done:
+  Pop $R1
+  Pop $2
+  Pop $1
+  Exch
+  Pop $R0 
+  Exch $0
+
+FunctionEnd
+
+; Cmd_GetAllParameters
+ ; Input, none
+ ; Output, top of stack = Command line parameters
+ ;
+ ; Modifies no other variables.
+
+Function Cmd_GetAllParameters
+ 
+   Push $R0
+   Push $R1
+   Push $R2
+   Push $R3
+   
+   StrCpy $R2 1
+   StrLen $R3 $CMDLINE
+   
+   ;Check for quote or space
+   StrCpy $R0 $CMDLINE $R2
+   StrCmp $R0 '"' 0 +3
+     StrCpy $R1 '"'
+     Goto loop
+   StrCpy $R1 " "
+   
+   loop:
+     IntOp $R2 $R2 + 1
+     StrCpy $R0 $CMDLINE 1 $R2
+     StrCmp $R0 $R1 get
+     StrCmp $R2 $R3 get
+     Goto loop
+   
+   get:
+     IntOp $R2 $R2 + 1
+     StrCpy $R0 $CMDLINE 1 $R2
+     StrCmp $R0 " " get
+     StrCpy $R0 $CMDLINE "" $R2
+   
+   Pop $R3
+   Pop $R2
+   Pop $R1
+   Exch $R0
+ 
+FunctionEnd
+
+!endif ; CMD_PARAMETERS_NSH

Added: trunk/installer/NSISLibrary/DetectGTK.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/DetectGTK.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,94 @@
+
+; Title          NSIS Script to detect the installation of a GTK+ runtime
+; Author         Cedric Gustin <cedric gustin swing be>
+
+;    Copyright (C) 2004 Cedric Gustin
+;
+;    This program is free software; you can redistribute it and/or modify
+;    it under the terms of the GNU General Public License as published by
+;    the Free Software Foundation; either version 2 of the License, or
+;    (at your option) any later version.
+;
+;    This program is distributed in the hope that it will be useful,
+;    but WITHOUT ANY WARRANTY; without even the implied warranty of
+;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;    GNU General Public License for more details.
+;
+;    You should have received a copy of the GNU General Public License
+;    along with this program; if not, write to the Free Software
+;    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+!ifndef DETECT_GTK_NSH
+!define DETECT_GTK_NSH
+
+!include "VersionCheck.nsh"
+
+Function CheckGTKRuntime
+  Pop $R1
+
+  ClearErrors
+  ReadRegStr $R0 HKLM "Software\GTK\2.0" "Version"
+  IfErrors 0 +2
+  ReadRegStr $R0 HKCU "Software\GTK\2.0" "Version"
+  ${VersionCheck} $R1 $R0 "$R2"
+  StrCmp $R2 "1" "" gtk_ok
+!ifdef RUNTIME_ONLY
+  Push "$(GTK_RUNTIME_REQUIRED)"
+!else
+  Push "$(GTK_DEVEL_REQUIRED)"
+!endif
+  Pop $R0
+  ; Do not install GTK+ in silent mode
+  IfSilent gtk_ok
+  MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION $R0 IDNO gtk_ok IDCANCEL abortInstall
+  DetailPrint "$(GTK_DOWNLOADING)"
+!ifdef RUNTIME_ONLY
+  Push "gtk_runtime_setup"
+  Pop $R0
+!else
+  Push "gtk_devel_setup"
+  Pop $R0
+!endif
+  NSISdl::download /TIMEOUT=30000 "http://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}/$R0-$R1.ini"; "$TEMP\gtk_setup.ini"
+  Pop $0 ;Get the return value
+  StrCmp $0 "Success" DownloadGTK 0
+  StrCmp $0 "Cancel" 0 +3
+  Push "$(MISC_DOWNLOAD_CANCELLED)"
+  Goto ExitInstallGTK
+  Push "$(MISC_DOWNLOAD_ERROR)"
+  Goto ExitInstallGTK
+  
+DownloadGTK:
+  ; Get the current GTK+ installer version
+  ReadINIStr $R0 "$TEMP\gtk_setup.ini" "General" "Filename"
+  StrCmp $R0 0 ExitInstallGTK
+  DetailPrint "$(GTK_DOWNLOADING)"
+  NSISdl::download /TIMEOUT=30000 "http://heanet.dl.sourceforge.net/sourceforge/gladewin32/$R0"; "$TEMP\gtk_setup.exe"
+  Pop $0 ;Get the return value
+  StrCmp $0 "success" InstallGTK 0
+  StrCmp $0 "cancel" 0 +3
+  Push "$(MISC_DOWNLOAD_CANCELLED)"
+  Goto ExitInstallGTK
+  Push "$(MISC_DOWNLOAD_ERROR)"
+  Goto ExitInstallGTK
+InstallGTK:
+  DetailPrint "$(GTK_STARTING)"
+  ExecWait "$TEMP\gtk_setup.exe" $0
+  DetailPrint "$(GTK_FINISHED)"
+  Delete "$TEMP\gtk_setup.exe"
+  StrCmp $0 "0" gtk_ok 0
+  Push "$(GTK_INTERRUPTED)"
+  Goto ExitInstallGTK
+
+ExitInstallGTK:
+  Pop $2
+  MessageBox MB_YESNO "$(GTK_INTERRUPT_REASON)" IDYES gtk_ok IDNO abortInstall
+
+abortInstall:
+  Quit
+
+gtk_ok:
+
+FunctionEnd
+
+!endif ; DETECT_GTK_NSH

Added: trunk/installer/NSISLibrary/IsNT.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/IsNT.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,32 @@
+!ifndef ISNT_INCLUDED
+!define ISNT_INCLUDED
+
+; IsNT
+; no input
+; output, top of the stack = 1 if NT or 0 if not
+;
+; Usage:
+;   Call IsNT
+;   Pop $R0
+;  ($R0 at this point is 1 or 0)
+
+!macro IsNT un
+Function ${un}IsNT
+  Push $0
+  ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
+  StrCmp $0 "" 0 IsNT_yes
+  ; we are not NT.
+  Pop $0
+  Push 0
+  Return
+
+  IsNT_yes:
+    ; NT!!!
+    Pop $0
+    Push 1
+FunctionEnd
+!macroend
+!insertmacro IsNT ""
+!insertmacro IsNT "un."
+
+!endif

Added: trunk/installer/NSISLibrary/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/Makefile.am	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,11 @@
+EXTRA_DIST = \
+	CmdParameters.nsh \
+	DetectGTK.nsh \
+	IsNT.nsh \
+	ParseVersion.nsh \
+	PathManipulation.nsh \
+	StringUtilities.nsh \
+	VersionCheck.nsh \
+	WriteEnvStr.nsh \
+	PathQuestion.ini \
+	SetContext.ini

Added: trunk/installer/NSISLibrary/ParseVersion.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/ParseVersion.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,71 @@
+
+; Title          NSIS Script to detect the installation of a GTK+ runtime
+; Author         Cedric Gustin <cedric gustin swing be>
+
+;    Copyright (C) 2004 Cedric Gustin
+;
+;    This program is free software; you can redistribute it and/or modify
+;    it under the terms of the GNU General Public License as published by
+;    the Free Software Foundation; either version 2 of the License, or
+;    (at your option) any later version.
+;
+;    This program is distributed in the hope that it will be useful,
+;    but WITHOUT ANY WARRANTY; without even the implied warranty of
+;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;    GNU General Public License for more details.
+;
+;    You should have received a copy of the GNU General Public License
+;    along with this program; if not, write to the Free Software
+;    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+!ifndef VERSION_STRING_NSH
+!define VERSION_STRING_NSH
+
+!include "StrFunc.nsh"
+${StrTok} # Supportable for Install Sections and Functions
+
+; Name : ParseVersionString
+;
+; Description:
+; Parse a typical version string ("2.0.1") and return the major, minor and
+; micro version numbers separately
+;
+; Input : Full version string at the top of the stack
+; Output : macro, minor and micro version numbers from to of the stack
+;
+; Usage :
+;   Push "2.0.1"
+;   Call ParseVersionString
+;   Pop $R0
+;   Pop $R1
+;   Pop $R2
+;
+; $R0, $R1, $R2 will be equal to "2", "0" and "1", respectively)
+
+Function ParseVersionString
+
+  ; Backup variables
+  Push $0
+  Push $1
+  Exch 2
+  Pop $0
+  
+  ; Get major version number
+  ${StrTok} $1 $0 "." 0 1
+  Push $1
+  ; Get minor version number
+  ${StrTok} $1 $0 "." 1 1
+  Push $1
+  ; Get micro version number
+  ${StrTok} $1 $0 "." 2 1
+  Push $1
+  
+  ; Restore variable
+  Exch 4
+  Pop $0
+  Exch 2
+  Pop $1
+  
+FunctionEnd
+
+!endif ; VERSION_STRING_NSH

Added: trunk/installer/NSISLibrary/PathManipulation.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/PathManipulation.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,432 @@
+!ifndef PATHMANI_INCLUDED
+!define PATHMANI_INCLUDED
+
+!verbose 3
+!include WriteEnvStr.nsh
+!verbose 4
+
+; AddToPath - Adds the given dir to the search path.
+;        Input - head of the stack
+;        Note - Win9x systems requires reboot
+
+Function AddToPath
+  Exch $0
+  Exch
+  Exch $4
+  Push $1
+  Push $2
+  Push $3
+
+  # don't add if the path doesn't exist
+  #IfFileExists $0 "" AddToPath_done
+
+  Push $4
+  Push "PATH"  
+  Call MyReadRegStr
+  Pop $1
+
+  Push "$1;"
+  Push "$0;"
+  Call StrStr
+  Pop $2
+  StrCmp $2 "" "" AddToPath_done
+  Push "$1;"
+  Push "$0\;"
+  Call StrStr
+  Pop $2
+  StrCmp $2 "" "" AddToPath_done
+
+  Call IsNT
+  Pop $1
+  StrCmp $1 1 AddToPath_NT
+    ; Not on NT
+    StrCpy $1 $WINDIR 2
+    FileOpen $1 "$1\autoexec.bat" a
+    FileSeek $1 -1 END
+    FileReadByte $1 $2
+    IntCmp $2 26 0 +2 +2 # DOS EOF
+      FileSeek $1 -1 END # write over EOF
+    FileWrite $1 "$\r$\nSET PATH=%PATH%;$0$\r$\n"
+    FileClose $1
+    SetRebootFlag true
+    Goto AddToPath_done
+
+  AddToPath_NT:
+    StrCmp $4 "1" 0 +3
+    ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
+    Goto +2
+    ReadRegStr $1 HKCU "Environment" "PATH"
+    # StrCpy $2 $1 1 -1 # copy last char
+    # StrCmp $2 ";" 0 +2 # if last char == ;
+    #   StrCpy $1 $1 -1 # remove last char
+    # StrCmp $1 "" AddToPath_NTdoIt
+    #    StrCpy $0 "$1;$0"
+    StrCpy $0 "$0;$1"
+    # AddToPath_NTdoIt:
+      StrCmp $4 "1" 0 +3
+      WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $0
+      Goto +2
+      WriteRegExpandStr HKCU "Environment" "PATH" $0
+      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
+
+AddToPath_done:
+  Pop $3
+  Pop $2
+  Pop $1
+  Pop $4
+  Pop $0
+FunctionEnd
+
+Function AddPathToRegVal
+  Exch $0
+  Exch
+  Exch $3
+  Exch 2
+  Exch $2
+  Exch 3
+  Exch $1
+  Push $4
+
+  StrCmp $1 "HKCU" 0 +4
+  ClearErrors
+  ReadRegStr $4 HKCU $2 $3
+  Goto +3
+  ClearErrors
+  ReadRegStr $4 HKLM $2 $3
+  IfErrors AddPathToRegVal_skip
+  
+  StrCpy $0 "$0;$4"
+  StrCmp $1 "HKCU" 0 +3
+  WriteRegStr HKCU $2 $3 $0
+  Goto +2
+  WriteRegStr HKLM $2 $3 $0
+
+AddPathToRegVal_skip:
+
+  Pop $4
+  Pop $1
+  Pop $0
+  Pop $3
+  Pop $2
+FunctionEnd
+
+Function AddPathToEnvVar
+  Exch $3
+  Exch
+  Exch $2
+  Exch 2
+  Exch $1
+  Push $4
+
+  Push $1
+  Push $2
+  Call MyReadRegStr
+  Pop $4
+
+  StrCpy $3 "$3;$4"
+  Push $2
+  Push $3
+  Push $1
+  Call WriteEnvStr
+
+  Pop $4
+  Pop $1
+  Pop $3
+  Pop $2
+FunctionEnd
+
+; RemoveFromPath - Remove a given dir from the path
+;     Input: head of the stack
+
+Function un.RemoveFromPath
+  Exch $0
+  Exch
+  Exch $7
+  Push $1
+  Push $2
+  Push $3
+  Push $4
+  Push $5
+  Push $6
+
+  IntFmt $6 "%c" 26 # DOS EOF
+
+  Call un.IsNT
+  Pop $1
+  StrCmp $1 1 unRemoveFromPath_NT
+    ; Not on NT
+    StrCpy $1 $WINDIR 2
+    FileOpen $1 "$1\autoexec.bat" r
+    GetTempFileName $4
+    FileOpen $2 $4 w
+    StrCpy $0 "SET PATH=%PATH%;$0"
+    Goto unRemoveFromPath_dosLoop
+
+    unRemoveFromPath_dosLoop:
+      FileRead $1 $3
+      StrCpy $5 $3 1 -1 # read last char
+      StrCmp $5 $6 0 +2 # if DOS EOF
+        StrCpy $3 $3 -1 # remove DOS EOF so we can compare
+      StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
+      StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
+      StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
+      StrCmp $3 "" unRemoveFromPath_dosLoopEnd
+      FileWrite $2 $3
+      Goto unRemoveFromPath_dosLoop
+      unRemoveFromPath_dosLoopRemoveLine:
+        SetRebootFlag true
+        Goto unRemoveFromPath_dosLoop
+
+    unRemoveFromPath_dosLoopEnd:
+      FileClose $2
+      FileClose $1
+      StrCpy $1 $WINDIR 2
+      Delete "$1\autoexec.bat"
+      CopyFiles /SILENT $4 "$1\autoexec.bat"
+      Delete $4
+      Goto unRemoveFromPath_done
+
+  unRemoveFromPath_NT:
+    StrCmp $7 "1" 0 +3
+    ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
+    Goto +2
+    ReadRegStr $1 HKCU "Environment" "PATH"
+    StrCpy $5 $1 1 -1 # copy last char
+    StrCmp $5 ";" +2 # if last char != ;
+      StrCpy $1 "$1;" # append ;
+    Push $1
+    Push "$0;"
+    Call un.StrStr ; Find `$0;` in $1
+    Pop $2 ; pos of our dir
+    StrCmp $2 "" unRemoveFromPath_done
+      ; else, it is in path
+      # $0 - path to add
+      # $1 - path var
+      StrLen $3 "$0;"
+      StrLen $4 $2
+      StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
+      StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
+      StrCpy $3 $5$6
+
+      StrCpy $5 $3 1 -1 # copy last char
+      StrCmp $5 ";" 0 +2 # if last char == ;
+        StrCpy $3 $3 -1 # remove last char
+
+      StrCmp $7 "1" 0 +3
+      WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $3
+      Goto +2
+      WriteRegExpandStr HKCU "Environment" "PATH" $3
+      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
+
+  unRemoveFromPath_done:
+    Pop $6
+    Pop $5
+    Pop $4
+    Pop $3
+    Pop $2
+    Pop $1
+    Pop $7
+    Pop $0
+FunctionEnd
+
+Function un.RemovePathFromRegVal
+  Exch $0
+  Exch
+  Exch $9
+  Exch 2
+  Exch $8
+  Exch 3
+  Exch $7
+  Push $1
+  Push $2
+  Push $3
+  Push $4
+  Push $5
+  Push $6
+
+  StrCmp $7 "HKCU" 0 +4
+  ClearErrors
+  ReadRegStr $1 HKCU $8 $9
+  Goto +3
+  ClearErrors
+  ReadRegStr $1 HKLM $8 $9
+  IfErrors RemovePathFromRegVal_done
+
+  StrCpy $5 $1 1 -1 # copy last char
+  StrCmp $5 ";" +2 # if last char != ;
+  StrCpy $1 "$1;" # append ;
+  Push $1
+  Push "$0;"
+  Call un.StrStr ; Find `$0;` in $1
+  Pop $2 ; pos of our dir
+  StrCmp $2 "" RemovePathFromRegVal_done
+  ; else, it is in path
+  # $0 - path to add
+  # $1 - path var
+  StrLen $3 "$0;"
+  StrLen $4 $2
+  StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
+  StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
+  StrCpy $3 $5$6
+  StrCpy $5 $3 1 -1 # copy last char
+  StrCmp $5 ";" 0 +2 # if last char == ;
+  StrCpy $3 $3 -1 # remove last char
+
+  StrCmp $7 "HKCU" 0 +3
+  WriteRegStr HKCU $8 $9 $3
+  Goto +2
+  WriteRegStr HKLM $8 $9 $3
+
+RemovePathFromRegVal_done:
+
+  Pop $6
+  Pop $5
+  Pop $4
+  Pop $3
+  Pop $2
+  Pop $1
+  Pop $7
+  Pop $0
+  Pop $9
+  Pop $8
+FunctionEnd
+
+Function un.RemovePathFromEnvVar
+  Exch $9
+  Exch
+  Exch $8
+  Exch 2
+  Exch $7
+  Push $1
+  Push $2
+  Push $3
+  Push $4
+  Push $5
+  Push $6
+
+  Push $7
+  Push $8
+  Call un.MyReadRegStr
+  Pop $1
+
+  StrCpy $5 $1 1 -1 # copy last char
+  StrCmp $5 ";" +2 # if last char != ;
+  StrCpy $1 "$1;" # append ;
+  Push $1
+  Push "$9;"
+  Call un.StrStr ; Find `$9;` in $1
+  Pop $2 ; pos of our dir
+  StrCmp $2 "" RemovePathFromEnvVar_done
+  ; else, it is in path
+  # $9 - path to add
+  # $1 - path var
+  StrLen $3 "$9;"
+  StrLen $4 $2
+  StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
+  StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
+  StrCpy $3 $5$6
+  StrCpy $5 $3 1 -1 # copy last char
+  StrCmp $5 ";" 0 +2 # if last char == ;
+  StrCpy $3 $3 -1 # remove last char
+
+  Push $8
+  Push $3
+  Push $7
+  Call un.WriteEnvStr
+
+RemovePathFromEnvVar_done:
+
+  Pop $6
+  Pop $5
+  Pop $4
+  Pop $3
+  Pop $2
+  Pop $1
+  Pop $7
+  Pop $9
+  Pop $8
+FunctionEnd
+
+###########################################
+#            Utility Functions            #
+###########################################
+
+; StrStr
+; input, top of stack = string to search for
+;        top of stack-1 = string to search in
+; output, top of stack (replaces with the portion of the string remaining)
+; modifies no other variables.
+;
+; Usage:
+;   Push "this is a long ass string"
+;   Push "ass"
+;   Call StrStr
+;   Pop $R0
+;  ($R0 at this point is "ass string")
+
+!macro StrStr un
+Function ${un}StrStr
+Exch $R1 ; st=haystack,old$R1, $R1=needle
+  Exch    ; st=old$R1,haystack
+  Exch $R2 ; st=old$R1,old$R2, $R2=haystack
+  Push $R3
+  Push $R4
+  Push $R5
+  StrLen $R3 $R1
+  StrCpy $R4 0
+  ; $R1=needle
+  ; $R2=haystack
+  ; $R3=len(needle)
+  ; $R4=cnt
+  ; $R5=tmp
+  loop:
+    StrCpy $R5 $R2 $R3 $R4
+    StrCmp $R5 $R1 done
+    StrCmp $R5 "" done
+    IntOp $R4 $R4 + 1
+    Goto loop
+done:
+  StrCpy $R1 $R2 "" $R4
+  Pop $R5
+  Pop $R4
+  Pop $R3
+  Pop $R2
+  Exch $R1
+FunctionEnd
+!macroend
+!insertmacro StrStr ""
+!insertmacro StrStr "un."
+
+!macro MyReadRegStr un
+Function ${un}MyReadRegStr
+  Exch $1
+  Exch
+  Exch $0
+  Push $2
+
+  Call ${un}IsNT
+  Pop $2
+  StrCmp $2 1 0 MyReadRegStr_NonNT
+
+  StrCmp $0 "1" 0 +3
+  ReadRegStr $2 ${WriteSysEnvStr_RegKey} $1
+  Goto MyReadRegStr_done
+  ReadRegStr $2 ${WriteEnvStr_RegKey} $1
+  Goto MyReadRegStr_done
+
+MyReadRegStr_NonNT:
+  ReadEnvStr $2 $1
+
+MyReadRegStr_done:
+
+  Exch
+  Pop $0
+  Exch
+  Pop $1
+  Exch $2
+FunctionEnd
+!macroend
+!insertmacro MyReadRegStr ""
+!insertmacro MyReadRegStr "un."
+
+!endif

Added: trunk/installer/NSISLibrary/PathQuestion.ini
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/PathQuestion.ini	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,12 @@
+; Ini file generated by the HM NIS Edit IO designer.
+[Settings]
+NumFields=1
+
+[Field 1]
+Type=Checkbox
+Text=Add the gtkmm runtime directory to the PATH variable
+Left=0
+Right=200
+Top=24
+Bottom=38
+

Added: trunk/installer/NSISLibrary/SetContext.ini
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/SetContext.ini	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,31 @@
+; Ini file generated by the HM NIS Edit IO designer.
+[Settings]
+NumFields=3
+
+[Field 1]
+Type=Label
+Text=Install for:
+Left=21
+Right=105
+Top=24
+Bottom=32
+
+[Field 2]
+Type=RadioButton
+Text=Anyone who uses this computer
+Flags=GROUP
+State=1
+Left=30
+Right=240
+Top=41
+Bottom=52
+
+[Field 3]
+Type=RadioButton
+Text=Only me
+State=0
+Left=30
+Right=240
+Top=59
+Bottom=68
+

Added: trunk/installer/NSISLibrary/StringUtilities.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/StringUtilities.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,51 @@
+
+; Title          String Utilities
+; Author         Cedric Gustin <cedric gustin swing be>
+
+; Shamely borrowed from NSIS Archive
+
+!ifndef STRING_UTILITIES_NSH
+!define STRING_UTILITIES_NSH
+
+; StrCut
+ ; Input, top of stack = string to search for
+ ;        top of stack-1 = string to search in
+ ; Output, top of stack : Part of the string starting with occurence of pattern
+ ;
+ ; Modifies no other variables.
+ ;
+ ; Usage:
+ ;   Push "this is a long ass string"
+ ;   Push "ass"
+ ;   Call String_StrCut
+ ;   Pop $R0
+ ;  ($R0 at this point is "ass string")
+
+Function String_StrCut
+
+   Exch $R1
+   Exch 
+   Exch $R2
+   Push $R3
+   Push $R4
+   Push $R5
+   StrLen $R3 $R1
+   StrCpy $R4 0
+   loop:
+     StrCpy $R5 $R2 $R3 $R4
+     StrCmp $R5 $R1 done
+     StrCmp $R5 "" done
+     IntOp $R4 $R4 + 1
+     Goto loop
+ done:
+   StrCpy $R1 $R2 "" $R4
+   Pop $R5
+   Pop $R4
+   Pop $R3
+   Pop $R2
+   Exch $R1
+   
+FunctionEnd
+
+
+!endif ; STRING_UTILITIES_NSH

Added: trunk/installer/NSISLibrary/VersionCheck.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/VersionCheck.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,91 @@
+
+; Title:        NSIS Script to compare version strings
+; Author:       Afrow UK (NSIS Archive)
+; Date:         2005/01/10
+;
+; Usage:        ${VersionCheckNew2} "version 1" "version 2" "output variable"
+; Example:      ${VersionCheckNew2} "1.0.1" "1.1.0" "$R0"
+;               MessageBox MB_OK "Return value: $R0" ;outputs 2
+
+!ifndef VERSIONCHECK_NSH
+!define VERSIONCHECK_NSH
+
+!macro VersionCheck Ver1 Ver2 OutVar
+ Push "${Ver1}"
+ Push "${Ver2}"
+  Call VersionCheckNew2
+ Pop "${OutVar}"
+!macroend
+!define VersionCheck "!insertmacro VersionCheck"
+
+Function VersionCheckNew2
+ Exch $R0 ; second version number
+ Exch
+ Exch $R1 ; first version number
+ Push $R2
+ Push $R3
+ Push $R4
+ Push $R5
+ Push $R6
+
+  StrCpy $R0 $R0.
+  StrCpy $R1 $R1.
+  StrLen $R2 $R0
+  StrLen $R3 $R1
+
+  LoopVer1:
+  StrCpy $R4 $R0 1 -$R2
+  StrCmp $R2 0 0 +3
+   StrCpy $R5 0
+   Goto LoopVer2
+  StrCmp $R4 . +3
+   IntOp $R2 $R2 - 1
+   Goto LoopVer1
+
+    StrCpy $R5 $R0 -$R2
+    IntOp $R2 $R2 - 1
+    StrCpy $R0 $R0 "" -$R2
+
+  LoopVer2:
+  StrCpy $R4 $R1 1 -$R3
+  StrCmp $R3 0 0 +3
+   StrCpy $R6 0
+   Goto Compare
+  StrCmp $R4 . +3
+   IntOp $R3 $R3 - 1
+   Goto LoopVer2
+
+    StrCpy $R6 $R1 -$R3
+    IntOp $R3 $R3 - 1
+    StrCpy $R1 $R1 "" -$R3
+
+ Compare:
+ StrCpy $R5 1$R5
+ StrCpy $R6 1$R6
+ IntCmp $R5 $R6 SameVers NewerVer1 NewerVer2
+
+ SameVers:
+  StrCmp $R2 0 +2 LoopVer1
+  StrCmp $R3 0 0 LoopVer1
+  StrCpy $R0 0
+  Goto Done
+
+ NewerVer1:
+  StrCpy $R0 1
+  Goto Done
+
+ NewerVer2:
+  StrCpy $R0 2
+
+ Done:
+
+ Pop $R6
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Exch $R0 ; output
+FunctionEnd
+
+!endif ; VERSIONCHECK_NSH

Added: trunk/installer/NSISLibrary/WriteEnvStr.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/NSISLibrary/WriteEnvStr.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,129 @@
+!ifndef WRITEENVSTR_INCLUDED
+!define WRITEENVSTR_INCLUDED
+
+!include WinMessages.nsh
+!include IsNT.nsh
+
+!define WriteSysEnvStr_RegKey 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
+!define WriteEnvStr_RegKey 'HKCU "Environment"'
+
+#
+# WriteEnvStr - Writes an environment variable
+# Note: Win9x systems requires reboot
+#
+# Example:
+#  Push "HOMEDIR"           # name
+#  Push "C:\New Home Dir\"  # value
+#  Push 0                   # system
+#  Call WriteEnvStr
+#
+!macro WriteEnvStr un
+Function ${un}WriteEnvStr
+  Exch $3
+  Exch
+  Exch $1
+  Exch 2
+  Exch $0
+  Push $2
+  
+  Call ${un}IsNT
+  Pop $2
+  StrCmp $2 1 WriteEnvStr_NT
+    ; Not on NT
+    StrCpy $2 $WINDIR 2 ; Copy drive of windows (c:)
+    FileOpen $2 "$2\autoexec.bat" a
+    FileSeek $2 0 END
+    FileWrite $2 "$\r$\nSET $0=$1$\r$\n"
+    FileClose $2
+    SetRebootFlag true
+    Goto WriteEnvStr_done
+
+    WriteEnvStr_NT:
+    StrCmp $3 1 0 WriteEnvStr_User
+      WriteRegStr ${WriteSysEnvStr_RegKey} $0 $1
+      Goto WriteEnvStr_Pass
+    WriteEnvStr_User:
+      WriteRegStr ${WriteEnvStr_RegKey} $0 $1
+    WriteEnvStr_Pass:
+      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
+        0 "STR:Environment" /TIMEOUT=5000
+  
+  WriteEnvStr_done:
+    Pop $2
+    Pop $0
+    Pop $3
+    Pop $1
+FunctionEnd
+!macroend
+!insertmacro WriteEnvStr ""
+!insertmacro WriteEnvStr "un."
+
+#
+# un.DeleteEnvStr - Removes an environment variable
+# Note: Win9x systems requires reboot
+#
+# Example:
+#  Push "HOMEDIR"           # name
+#  Push 0                   # system
+#  Call un.DeleteEnvStr
+#
+Function un.DeleteEnvStr
+  Exch $6 ; $0 now has the name of the variable
+  Exch
+  Exch $0
+  Push $1
+  Push $2
+  Push $3
+  Push $4
+  Push $5
+  
+  Call un.IsNT
+  Pop $1
+  StrCmp $1 1 DeleteEnvStr_NT
+    ; Not on NT
+    StrCpy $1 $WINDIR 2
+    FileOpen $1 "$1\autoexec.bat" r
+    GetTempFileName $4
+    FileOpen $2 $4 w
+    StrCpy $0 "SET $0="
+    SetRebootFlag true
+    
+    DeleteEnvStr_dosLoop:
+      FileRead $1 $3
+      StrLen $5 $0
+      StrCpy $5 $3 $5
+      StrCmp $5 $0 DeleteEnvStr_dosLoop
+      StrCmp $5 "" DeleteEnvStr_dosLoopEnd
+      FileWrite $2 $3
+      Goto DeleteEnvStr_dosLoop
+    
+    DeleteEnvStr_dosLoopEnd:
+      FileClose $2
+      FileClose $1
+      StrCpy $1 $WINDIR 2
+      Delete "$1\autoexec.bat"
+      CopyFiles /SILENT $4 "$1\autoexec.bat"
+      Delete $4
+      Goto DeleteEnvStr_done
+
+  DeleteEnvStr_NT:
+    StrCmp $6 1 0 DeleteEnvStr_User
+      DeleteRegValue ${WriteSysEnvStr_RegKey} $0
+      Goto DeleteEnvStr_Pass
+    DeleteEnvStr_User:
+      DeleteRegValue ${WriteEnvStr_RegKey} $0
+    DeleteEnvStr_Pass:
+    SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
+      0 "STR:Environment" /TIMEOUT=5000
+  
+  DeleteEnvStr_done:
+    Pop $5
+    Pop $4
+    Pop $3
+    Pop $2
+    Pop $1
+    Pop $0
+    Pop $6
+FunctionEnd
+
+!endif

Added: trunk/installer/README
==============================================================================
--- (empty file)
+++ trunk/installer/README	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,15 @@
+To create the installer, first build all libraries with both mingw (with
+documentation enabled, you will need doxygen and graphviz for this) and MSVC
+(both Debug and Release). 'make install' the mingw-built ones.
+
+Then, run the build-installer script. You might need to adjust some paths
+in the install-msvc-module script. I hope to generalize the script to
+always find the correct paths in the near future.
+
+The gtk_runtime_setup-2.12.ini and gtk_devel_setup-2.12.ini are not used by
+the installer per se, but those are uploaded to
+ftp://ftp.gnome.org/pub/GNOME/binaries/win32/gtkmm/2.12/. The installer
+downloads them from there to find out what GTK+ file to load in case GTK+ is
+not yet installed.
+
+Armin Burgmeier, 2008-08-10

Added: trunk/installer/build-installer
==============================================================================
--- (empty file)
+++ trunk/installer/build-installer	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+echo "This builds the development and runtime installers for gtkmm. Make "
+echo "sure to have everything (libsigc++, glibmm, cairomm, pangomm, gtkmm, "
+echo "libglademm, libxml++) installed to /usr/local, and to have "
+echo "successfully built everything with MSVC (both Debug and Release builds)"
+echo "Make also sure that makensis is in your PATH"
+
+# Copy all of /usr/local into here. It's probably more than we need, but we
+# can be sure we have the required stuff this way.
+# TODO: Maybe it would be enough to create Windows Shortcuts here.
+echo "Copying mingw files..."
+cp -R /usr/local/bin . || exit -1
+cp -R /usr/local/lib . || exit -1
+cp -R /usr/local/share . || exit -1
+cp -R /usr/local/include . || exit -1
+
+# Change prefix in .pc files to be /target instead of /usr/local. pkg-config
+# then looks relative to the .pc file for the actual package.
+
+# TODO: If someone knows how to do this more elegant, please tell me
+# (armin arbur net). Note that perl -i does _not_ work on Windows (at least
+# not with the msys one).
+mkdir -p temp || exit -1
+for file in lib/pkgconfig/*.pc; do
+	perl -pe 's/prefix=\/usr\/local/prefix=\/target/' $file > temp/`basename $file` || exit -1
+done
+
+for file in temp/*.pc; do
+	mv $file lib/pkgconfig/`basename $file` || exit -1
+done
+rmdir temp
+
+# Strip DLLs for the runtime version
+echo "Stripping binaries..."
+mkdir -p bin_stripped || exit -1
+cp -R bin/* bin_stripped || exit -1
+strip bin_stripped/*.dll || exit -1
+strip bin_stripped/*.exe || exit -1
+
+# Get the MSVC files into here
+echo "Copying MSVC files..."
+./install-msvc-module libsigc++ || exit -1
+./install-msvc-module glibmm || exit -1
+./install-msvc-module giomm || exit -1
+./install-msvc-module cairomm || exit -1
+./install-msvc-module pangomm || exit -1
+./install-msvc-module atkmm || exit -1
+./install-msvc-module gdkmm || exit -1
+./install-msvc-module gtkmm || exit -1
+./install-msvc-module libglademm || exit -1
+./install-msvc-module libxml++ || exit -1
+
+cp gtkmm-2.4.vsprops MSVC || exit -1
+cp gtkmm-2.4d.vsprops MSVC || exit -1
+
+echo "Copying gtk-demo..."
+mkdir -p demo || exit -1
+cp -R ../demos/gtk-demo/* demo/ || exit -1
+cp ../demos/gtk-demo/.libs/gtkmm-demo.exe demo/demo.exe || exit -1
+strip demo/demo.exe || exit -1
+
+echo "Creating installer..."
+makensis gtkmm-installer.nsi || exit -1
+
+echo "Creating runtime installer..."
+perl -pe 's/; !define RUNTIME_ONLY 1/!define RUNTIME_ONLY 1/' gtkmm-installer.nsi > gtkmm-runtime-installer.nsi || exit -1
+makensis gtkmm-runtime-installer.nsi || exit -1

Added: trunk/installer/gtk_devel_setup-2.12.ini
==============================================================================
--- (empty file)
+++ trunk/installer/gtk_devel_setup-2.12.ini	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,2 @@
+[General]
+Filename=gtk-dev-2.12.9-win32-1.exe

Added: trunk/installer/gtk_runtime_setup-2.12.ini
==============================================================================
--- (empty file)
+++ trunk/installer/gtk_runtime_setup-2.12.ini	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,2 @@
+[General]
+Filename=gtk-2.12.9-win32-1.exe

Added: trunk/installer/gtkmm-2.4.vsprops
==============================================================================
--- (empty file)
+++ trunk/installer/gtkmm-2.4.vsprops	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="gtkmm 2.4 Release"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		AdditionalOptions="/vd2"
+		AdditionalIncludeDirectories="&quot;$(GTKMM_BASEPATH)\include\libglademm-2.4\&quot;;&quot;$(GTKMM_BASEPATH)\lib\libglademm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\lib\gtkmm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\gtkmm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\lib\gdkmm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\gdkmm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\include\pangomm-1.4&quot;;&quot;$(GTKMM_BASEPATH)\include\atkmm-1.6&quot;;&quot;$(GTKMM_BASEPATH)\lib\libxml++-2.6\include&quot;;&quot;$(GTKMM_BASEPATH)\include\libxml++-2.6&quot;;&quot;$(GTKMM_BASEPATH)\lib\giomm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\giomm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\lib\glibmm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\glibmm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\include\cairomm-1.0&quot;;&quot;$(GTKMM_BASEPATH)\lib\sigc++-2.0\include&quot;;&quot;$(GTKMM_BASEPATH)\include\sigc++-2.0&quot;;&quot;$(GTK_BASEPATH)\lib\gtkglext-1.0\include&quot;;&quot;$(GTK_BASEPATH)\include\gtkgl
 ext-1.0&quot;;&quot;$(GTK_BASEPATH)\include\libglade-2.0&quot;;&quot;$(GTK_BASEPATH)\lib\gtk-2.0\include&quot;;&quot;$(GTK_BASEPATH)\include\gtk-2.0&quot;;&quot;$(GTK_BASEPATH)\include\pango-1.0&quot;;&quot;$(GTK_BASEPATH)\include\atk-1.0&quot;;&quot;$(GTK_BASEPATH)\lib\glib-2.0\include&quot;;&quot;$(GTK_BASEPATH)\include\glib-2.0&quot;;&quot;$(GTK_BASEPATH)\include\libxml2&quot;;&quot;$(GTK_BASEPATH)\include\cairo&quot;;&quot;$(GTK_BASEPATH)\include&quot;"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalDependencies="glademm-2.4.lib xml++-2.6.lib gtkmm-2.4.lib glade-2.0.lib gdkmm-2.4.lib atkmm-1.6.lib pangomm-1.4.lib giomm-2.4.lib glibmm-2.4.lib cairomm-1.0.lib sigc-2.0.lib gtk-win32-2.0.lib xml2.lib gdk-win32-2.0.lib atk-1.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib iconv.lib"
+		AdditionalLibraryDirectories="$(GTKMM_BASEPATH)\lib;$(GTK_BASEPATH)\lib"
+	/>
+</VisualStudioPropertySheet>

Added: trunk/installer/gtkmm-2.4d.vsprops
==============================================================================
--- (empty file)
+++ trunk/installer/gtkmm-2.4d.vsprops	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="gtkmm 2.4 Debug"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		AdditionalOptions="/vd2"
+		AdditionalIncludeDirectories="&quot;$(GTKMM_BASEPATH)\include\libglademm-2.4\&quot;;&quot;$(GTKMM_BASEPATH)\lib\libglademm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\lib\gtkmm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\gtkmm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\lib\gdkmm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\gdkmm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\include\pangomm-1.4&quot;;&quot;$(GTKMM_BASEPATH)\include\atkmm-1.6&quot;;&quot;$(GTKMM_BASEPATH)\lib\libxml++-2.6\include&quot;;&quot;$(GTKMM_BASEPATH)\include\libxml++-2.6&quot;;&quot;$(GTKMM_BASEPATH)\lib\giomm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\giomm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\lib\glibmm-2.4\include&quot;;&quot;$(GTKMM_BASEPATH)\include\glibmm-2.4&quot;;&quot;$(GTKMM_BASEPATH)\include\cairomm-1.0&quot;;&quot;$(GTKMM_BASEPATH)\lib\sigc++-2.0\include&quot;;&quot;$(GTKMM_BASEPATH)\include\sigc++-2.0&quot;;&quot;$(GTK_BASEPATH)\lib\gtkglext-1.0\include&quot;;&quot;$(GTK_BASEPATH)\include\gtkgl
 ext-1.0&quot;;&quot;$(GTK_BASEPATH)\include\libglade-2.0&quot;;&quot;$(GTK_BASEPATH)\lib\gtk-2.0\include&quot;;&quot;$(GTK_BASEPATH)\include\gtk-2.0&quot;;&quot;$(GTK_BASEPATH)\include\pango-1.0&quot;;&quot;$(GTK_BASEPATH)\include\atk-1.0&quot;;&quot;$(GTK_BASEPATH)\lib\glib-2.0\include&quot;;&quot;$(GTK_BASEPATH)\include\glib-2.0&quot;;&quot;$(GTK_BASEPATH)\include\libxml2&quot;;&quot;$(GTK_BASEPATH)\include\cairo&quot;;&quot;$(GTK_BASEPATH)\include&quot;"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalDependencies="glademm-2.4d.lib xml++-2.6d.lib gtkmm-2.4d.lib glade-2.0.lib gdkmm-2.4d.lib atkmm-1.6d.lib pangomm-1.4d.lib giomm-2.4d.lib glibmm-2.4d.lib cairomm-1.0d.lib sigc-2.0d.lib gtk-win32-2.0.lib xml2.lib gdk-win32-2.0.lib atk-1.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib iconv.lib"
+		AdditionalLibraryDirectories="$(GTKMM_BASEPATH)\lib;$(GTK_BASEPATH)\lib"
+	/>
+</VisualStudioPropertySheet>

Added: trunk/installer/gtkmm-installer.nsi.in
==============================================================================
--- (empty file)
+++ trunk/installer/gtkmm-installer.nsi.in	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,1280 @@
+
+; Title          gtkmm for win32 installer
+; Author         Cedric Gustin <cedric gustin swing be>
+
+;    Copyright (C) 2004-2006  Cedric Gustin
+;
+;    This program is free software; you can redistribute it and/or modify
+;    it under the terms of the GNU General Public License as published by
+;    the Free Software Foundation; either version 2 of the License, or
+;    (at your option) any later version.
+;
+;    This program is distributed in the hope that it will be useful,
+;    but WITHOUT ANY WARRANTY; without even the implied warranty of
+;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;    GNU General Public License for more details.
+;
+;    You should have received a copy of the GNU General Public License
+;    along with this program; if not, write to the Free Software
+;    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+;--------------------------------
+; Settings
+
+; !define RUNTIME_ONLY 1
+
+!ifndef PRODUCT_VERSION_MAJOR
+!define PRODUCT_VERSION_MAJOR "@GTKMM_MAJOR_VERSION@"
+!endif
+!ifndef PRODUCT_VERSION_MINOR
+!define PRODUCT_VERSION_MINOR "@GTKMM_MINOR_VERSION@"
+!endif
+!ifndef PRODUCT_VERSION_MICRO
+!define PRODUCT_VERSION_MICRO "@GTKMM_MICRO_VERSION@"
+!endif
+!ifndef PRODUCT_VERSION_INSTALLER
+!define PRODUCT_VERSION_INSTALLER "1"
+!endif
+
+; TODO: Autodetect the required GTK+ version here, instead of relying on
+; gtkmm and GTK+ version numbers to be in sync
+!ifndef GTK_VERSION
+!define GTK_VERSION "@GTKMM_MAJOR_VERSION  @GTKMM_MINOR_VERSION@"
+!endif
+!ifdef PRODUCT_API_VERSION
+!undef PRODUCT_API_VERSION
+!endif
+
+; TODO: Autodetect this
+!define PRODUCT_API_VERSION "2.4"
+
+;--------------------------------
+; Defines
+
+!define PRODUCT_NAME "gtkmm"
+!define PRODUCT_SMNAME "Gtkmm"
+!ifdef RUNTIME_ONLY
+  !define PRODUCT_FULLNAME "gtkmm Runtime Environment"
+!else
+  !define PRODUCT_FULLNAME "gtkmm Development Environment"
+!endif
+!define PRODUCT_PUBLISHER "The gtkmm developers"
+!define PRODUCT_WEB_SITE "http://www.gtkmm.org/";
+
+!ifdef PRODUCT_VERSION
+!undef PRODUCT_VERSION
+!endif
+!define PRODUCT_VERSION "${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.${PRODUCT_VERSION_MICRO}"
+
+!ifdef RUNTIME_ONLY
+  !define INSTALLER_NAME "${PRODUCT_NAME}-win32-runtime-${PRODUCT_VERSION}-${PRODUCT_VERSION_INSTALLER}.exe"
+  !define BINDIR "bin_stripped"
+!else
+  !define INSTALLER_NAME "${PRODUCT_NAME}-win32-devel-${PRODUCT_VERSION}-${PRODUCT_VERSION_INSTALLER}.exe"
+  !define BINDIR "bin"
+!endif
+
+!define GTKMM_COMMONDIR          "$COMMONFILES\${PRODUCT_NAME}\${PRODUCT_API_VERSION}"
+!define GTKMM_REG_KEY	         "Software\gtkmm\${PRODUCT_API_VERSION}"
+!define GTKMM_UNINSTALL_KEY	 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+!define GTKMM_UNINSTALL_EXE	 "gtkmm-uninst.exe"
+
+;--------------------------------
+; Installer Details
+
+SetCompressor /SOLID lzma
+ShowInstDetails hide
+ShowUninstDetails hide
+SetDateSave on
+CRCCheck on
+XPStyle on
+
+;--------------------------------
+; Standard Libraries
+
+!include "MUI.nsh"
+!include "Sections.nsh"
+!include "StrFunc.nsh"
+${StrTok} # Supportable for Install Sections and Functions
+
+;--------------------------------
+; Local Libraries
+
+!addincludedir "NSISLibrary"
+!include "PathManipulation.nsh"
+!include "DetectGTK.nsh"
+!include "VersionCheck.nsh"
+!include "CmdParameters.nsh"
+!include "StringUtilities.nsh"
+
+;--------------------------------
+; Variables
+
+Var CB_PATH_VALUE
+Var ISADMIN
+Var CONTEXT
+Var ICONS_GROUP
+Var FORCE_UNINSTALL
+Var USE_GTKDIR
+
+;--------------------------------
+; MUI Settings
+
+!define MUI_ABORTWARNING
+!define MUI_ICON .\gtkmm.ico
+!define MUI_UNICON .\gtkmm.ico
+
+; Reserve space for InstallOptions
+; Don't do it here as we want full extraction during the installer initialization
+; ReserveFile "NSISLibrary\PathQuestion.ini"
+; Reservefile "NSISLibrary\SetContext.ini"
+; !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
+; !insertmacro MUI_RESERVEFILE_LANGDLL
+
+; Remember the installer language
+!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
+!define MUI_LANGDLL_REGISTRY_KEY "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}"
+!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
+
+!define MUI_CUSTOMFUNCTION_GUIINIT CustomPreviousVersion
+!define MUI_PAGE_CUSTOMFUNCTION_PRE EnableGTKInstaller
+!define MUI_PAGE_CUSTOMFUNCTION_LEAVE DisableGTKInstaller
+!insertmacro MUI_PAGE_INSTFILES
+!define MUI_WELCOMEPAGE_TITLE_3LINES
+!insertmacro MUI_PAGE_WELCOME
+; !define MUI_LICENSEPAGE_RADIOBUTTONS
+!insertmacro MUI_PAGE_LICENSE "lgpl.txt"
+Page custom CustomPageSetContext
+!define MUI_PAGE_CUSTOMFUNCTION_PRE CustomSetTargetDirectory
+!insertmacro MUI_PAGE_DIRECTORY
+Page custom CustomPagePathQuestion
+!ifndef RUNTIME_ONLY
+  !insertmacro MUI_PAGE_COMPONENTS
+!endif
+!define MUI_STARTMENUPAGE_NODISABLE
+!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Gtkmm"
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
+!define MUI_STARTMENUPAGE_REGISTRY_KEY "${GTKMM_UNINSTALL_KEY}"
+!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "NSIS:StartMenuDir"
+!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
+!insertmacro MUI_PAGE_INSTFILES
+!define MUI_FINISHPAGE_TITLE_3LINES
+!insertmacro MUI_PAGE_FINISH
+
+!define MUI_WELCOMEPAGE_TITLE_3LINES
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_INSTFILES
+!define MUI_FINISHPAGE_TITLE_3LINES
+!insertmacro MUI_UNPAGE_FINISH
+
+;--------------------------------
+; Languages
+
+!insertmacro MUI_LANGUAGE "English"
+!insertmacro MUI_LANGUAGE "French"
+
+!include "translations\english.nsh"
+!include "translations\french.nsh"
+
+;--------------------------------
+; General Installer Options
+
+Name "${PRODUCT_FULLNAME} ${PRODUCT_VERSION}"
+OutFile "${INSTALLER_NAME}"
+InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
+; Get installation folder from registry if available
+InstallDirRegKey HKLM Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION} "Path"
+
+;--------------------------------
+; Installer Sections
+
+!ifndef RUNTIME_ONLY
+  InstType "Full"
+  InstType "Runtime only"
+!endif
+
+Section -installgtk SecGTKInstaller
+ 
+  Push ${GTK_VERSION}
+  Call CheckGTKRuntime
+ 
+SectionEnd
+
+SubSection "libsigc++"
+
+Section "Runtime" SecSigcRuntime
+!ifndef RUNTIME_ONLY
+  SectionIn 1 2 RO
+!else
+  SectionIn RO
+!endif
+  SetOverwrite ifnewer
+  
+  SetOutPath $INSTDIR\bin
+  File ${BINDIR}\libsigc-2.0-0.dll
+  File MSVC\sigc-2.0.dll
+  !ifndef RUNTIME_ONLY
+    File MSVC\sigc-2.0d.dll
+    File MSVC\sigc-2.0d.pdb
+  !endif
+  
+SectionEnd
+
+!ifndef RUNTIME_ONLY
+Section "Development" SecSigcDevelopment
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\include
+  File /r include\sigc++-2.0
+
+  SetOutPath $INSTDIR\lib
+  File lib\libsigc-2.0.dll.a
+  File /r lib\sigc++-2.0
+  File MSVC\sigc-2.0.lib
+  File MSVC\sigc-2.0d.lib
+  
+  SetOutPath $INSTDIR\lib\pkgconfig
+  File lib\pkgconfig\sigc++-2.0.pc
+
+SectionEnd
+
+Section "Documentation" SecSigcDocumentation
+  SectionIn 1
+  SetOverwrite ifnewer
+  
+  SetOutPath $INSTDIR\share\doc
+  
+  File /r share\doc\libsigc-2.0
+  
+SectionEnd
+!endif
+
+SubSectionEnd
+
+SubSection "cairomm"
+
+Section "Runtime" SecCairommRuntime
+!ifndef RUNTIME_ONLY
+  SectionIn 1 2 RO
+!else
+  SectionIn RO
+!endif
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\bin
+  File ${BINDIR}\libcairomm-1.0-1.dll
+  File MSVC\cairomm-1.0.dll
+  !ifndef RUNTIME_ONLY
+    File MSVC\cairomm-1.0d.dll
+    File MSVC\cairomm-1.0d.pdb
+  !endif
+  
+SectionEnd
+
+!ifndef RUNTIME_ONLY
+Section "Development" SecCairommDevelopment
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\include
+  File /r include\cairomm-1.0
+
+  SetOutPath $INSTDIR\lib
+  File lib\libcairomm-1.0.dll.a
+  File MSVC\cairomm-1.0.lib
+  File MSVC\cairomm-1.0d.lib
+
+  SetOutPath $INSTDIR\lib\pkgconfig
+  File lib\pkgconfig\cairomm-1.0.pc
+  
+SectionEnd
+
+Section "Documentation" SecCairommDocumentation
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\share\doc
+  File /r share\doc\libcairomm-1.0
+
+SectionEnd
+!endif
+
+SubSectionEnd
+
+SubSection "glibmm"
+
+Section "Runtime" SecGlibmmRuntime
+!ifndef RUNTIME_ONLY
+  SectionIn 1 2 RO
+!else
+  SectionIn RO
+!endif
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\bin
+  File ${BINDIR}\libglibmm-2.4-1.dll
+  File ${BINDIR}\libglibmm_generate_extra_defs-2.4-1.dll
+  File MSVC\glibmm-2.4.dll
+  !ifndef RUNTIME_ONLY
+    File MSVC\glibmm-2.4d.dll
+    File MSVC\glibmm-2.4d.pdb
+  !endif
+  
+SectionEnd
+
+!ifndef RUNTIME_ONLY
+Section "Development" SecGlibmmDevelopment
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\include
+  File /r include\glibmm-2.4
+
+  SetOutPath $INSTDIR\lib
+  File lib\libglibmm-2.4.dll.a
+  File lib\libglibmm_generate_extra_defs-2.4.dll.a
+  File /r lib\glibmm-2.4
+  File MSVC\glibmm-2.4.lib
+  File MSVC\glibmm-2.4d.lib
+
+  SetOutPath $INSTDIR\lib\pkgconfig
+  File lib\pkgconfig\glibmm-2.4.pc
+  
+  SetOutPath $INSTDIR\share\aclocal
+  File share\aclocal\glibmm_check_perl.m4
+  
+SectionEnd
+
+Section "Documentation" SecGlibmmDocumentation
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\share\doc
+  File /r share\doc\glibmm-2.4
+
+SectionEnd
+!endif
+
+SubSectionEnd
+
+SubSection "gtkmm"
+
+Section "Runtime" SecGtkmmRuntime
+!ifndef RUNTIME_ONLY
+  SectionIn 1 2 RO
+!else
+  SectionIn RO
+!endif
+  SetOverwrite ifnewer
+  
+  SetOutPath $INSTDIR\bin
+  File ${BINDIR}\libatkmm-1.6-1.dll
+  File ${BINDIR}\libgdkmm-2.4-1.dll
+  File ${BINDIR}\libgtkmm-2.4-1.dll
+  File ${BINDIR}\libpangomm-1.4-1.dll
+
+  File MSVC\atkmm-1.6.dll
+  File MSVC\gdkmm-2.4.dll
+  File MSVC\gtkmm-2.4.dll
+  File MSVC\pangomm-1.4.dll
+
+  !ifndef RUNTIME_ONLY
+    File MSVC\atkmm-1.6d.dll
+    File MSVC\atkmm-1.6d.pdb
+    File MSVC\gdkmm-2.4d.dll
+    File MSVC\gdkmm-2.4d.pdb
+    File MSVC\gtkmm-2.4d.dll
+    File MSVC\gtkmm-2.4d.pdb
+    File MSVC\pangomm-1.4d.dll
+    File MSVC\pangomm-1.4d.pdb
+  !endif
+  
+SectionEnd
+
+!ifndef RUNTIME_ONLY
+Section "Development" SecGtkmmDevelopment
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\include
+  File /r include\atkmm-1.6
+  File /r include\gtkmm-2.4
+  File /r include\gdkmm-2.4
+  File /r include\pangomm-1.4
+
+  SetOutPath $INSTDIR\lib
+  File lib\libatkmm-1.6.dll.a
+  File lib\libgdkmm-2.4.dll.a
+  File lib\libgtkmm-2.4.dll.a
+  File lib\libpangomm-1.4.dll.a
+  File /r lib\gtkmm-2.4
+  File /r lib\gdkmm-2.4
+  
+  File MSVC\atkmm-1.6.lib
+  File MSVC\atkmm-1.6d.lib
+  File MSVC\gdkmm-2.4.lib
+  File MSVC\gdkmm-2.4d.lib
+  File MSVC\gtkmm-2.4.lib
+  File MSVC\gtkmm-2.4d.lib
+  File MSVC\pangomm-1.4.lib
+  File MSVC\pangomm-1.4d.lib
+
+  SetOutPath $INSTDIR\lib\pkgconfig
+  File lib\pkgconfig\atkmm-1.6.pc
+  File lib\pkgconfig\gtkmm-2.4.pc
+  File lib\pkgconfig\gdkmm-2.4.pc
+  File lib\pkgconfig\pangomm-1.4.pc
+  
+  SetOutPath $INSTDIR\MSVC
+  File MSVC\gtkmm-2.4.vsprops
+  File MSVC\gtkmm-2.4d.vsprops
+  
+
+SectionEnd
+
+Section "Demo" SecGtkmmDemo
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\gtkmm-demo
+  File /oname=gtkmm-demo.exe demo\demo.exe
+  File demo\*.cc
+  File demo\*.png
+  File demo\*.jpg
+  File demo\*.gif
+
+SectionEnd
+
+Section "Documentation" SecGtkmmDocumentation
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\share\doc
+  File /r share\doc\gtkmm-2.4
+
+  SetOutPath $INSTDIR\share\devhelp\books
+  File /r share\devhelp\books\gtkmm-2.4
+
+; TODO: Add docs from pangomm-2.4 when we switch to gtkmm-2.14
+  
+SectionEnd
+!endif
+
+SubSectionEnd
+
+SubSection "libglademm"
+
+Section "Runtime" SecLibglademmRuntime
+!ifndef RUNTIME_ONLY
+  SectionIn 1 2
+!endif
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\bin
+  File ${BINDIR}\libglademm-2.4-1.dll
+  File MSVC\glademm-2.4.dll
+  CreateShortCut "libglademm-2.4.dll.lnk" "glademm-2.4.dll"
+  !ifndef RUNTIME_ONLY
+    File MSVC\glademm-2.4d.dll
+    CreateShortCut "libglademm-2.4d.dll.lnk" "glademm-2.4d.dll"
+    File MSVC\glademm-2.4d.pdb
+    CreateShortCut "libglademm-2.4d.pdb.lnk" "glademm-2.4d.pdb"
+  !endif
+  
+SectionEnd
+
+!ifndef RUNTIME_ONLY
+Section "Development" SecLibglademmDevelopment
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\include
+  File /r include\libglademm-2.4
+
+  SetOutPath $INSTDIR\lib
+  File lib\libglademm-2.4.dll.a
+  File /r lib\libglademm-2.4
+  File MSVC\glademm-2.4.lib
+  File MSVC\glademm-2.4d.lib
+
+  CreateShortCut "libglademm-2.4.lib.lnk" "$INSTDIR\lib\glademm-2.4.lib"
+  CreateShortCut "libglademm-2.4d.lib.lnk" "$INSTDIR\lib\glademm-2.4d.lib"
+
+  SetOutPath $INSTDIR\lib\pkgconfig
+  File lib\pkgconfig\libglademm-2.4.pc
+
+SectionEnd
+
+Section "Documentation" SecLibglademmDocumentation
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\share\doc\gnomemm-2.6
+  File /r share\doc\gnomemm-2.6\libglademm-2.4
+  
+  SetOutPath $INSTDIR\share\devhelp\books
+  File /r share\devhelp\books\libglademm-2.4
+
+SectionEnd
+!endif
+
+SubSectionEnd
+
+SubSection "libxml++"
+
+Section "Runtime" SecLibxmlRuntime
+!ifndef RUNTIME_ONLY
+  SectionIn 1 2
+!endif
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\bin
+  File ${BINDIR}\libxml++-2.6-2.dll
+  File MSVC\xml++-2.6.dll
+  CreateShortCut "libxml++-2.6.dll.lnk" "xml++-2.6.dll"
+  !ifndef RUNTIME_ONLY
+    File MSVC\xml++-2.6d.dll
+    CreateShortCut "libxml++-2.6d.dll.lnk" "xml++-2.6d.dll"
+    File MSVC\xml++-2.6d.pdb
+    CreateShortCut "libxml++-2.6d.pdb.lnk" "xml++-2.6d.pdb"
+  !endif
+
+SectionEnd
+
+!ifndef RUNTIME_ONLY
+Section "Development" SecLibxmlDevelopment
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\include
+  File /r include\libxml++-2.6
+
+  SetOutPath $INSTDIR\lib
+  File lib\libxml++-2.6.dll.a
+  File /r lib\libxml++-2.6
+  File MSVC\xml++-2.6.lib
+  File MSVC\xml++-2.6d.lib
+
+  CreateShortCut "libxml++-2.6.lib.lnk" "$INSTDIR\lib\xml++-2.6.lib"
+  CreateShortCut "libxml++-2.6d.lib.lnk" "$INSTDIR\lib\xml++-2.6.d.lib"
+
+  SetOutPath $INSTDIR\lib\pkgconfig
+  File lib\pkgconfig\libxml++-2.6.pc
+
+SectionEnd
+
+Section "Documentation" SecLibxmlDocumentation
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\share\doc
+  File /r share\doc\libxml++-2.6
+
+SectionEnd
+!endif
+
+SubSectionEnd
+
+!ifndef RUNTIME_ONLY
+Section "glade--" SecGlademm
+  SectionIn 1
+  SetOverwrite ifnewer
+
+  SetOutPath $INSTDIR\bin
+  File bin_stripped\glade--.exe
+  File bin_stripped\glademm-embed.exe
+
+SectionEnd
+
+;Section "gideon" SecGideon
+;  SectionIn 1
+;  SetOverwrite ifnewer
+;
+;  SetOutPath $INSTDIR\bin
+;  File bin\gideon.exe
+;  File bin\libgideon.dll
+;  File bin\libguiloader.dll
+;  File bin\libguiloader-c++.dll
+;  SetOutPath $INSTDIR\include
+;  File /r include\gideon
+;  File /r include\guiloader
+;  File /r include\guiloader-c++
+;  SetOutPath $INSTDIR\lib
+;  File lib\libgideon.dll.a
+;  File lib\libguiloader.dll.a
+;  File lib\libguiloader-c++.dll.a
+;
+;SectionEnd
+!endif
+
+Section -Post SecPost
+
+  ; Get rid of leftover start menus
+  StrCmp $ISADMIN "1" 0 +2
+  RMDir /r "$SMPROGRAMS\gtkmm for Mingw"
+
+  ; Start Menu
+  CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
+
+  SetOutPath $INSTDIR
+  File "gtkmm.ico"
+  File "lgpl.txt"
+  File "gtkmm_win32.txt"
+  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\License.lnk" "$INSTDIR\lgpl.txt"
+  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Read Me.lnk" "$INSTDIR\gtkmm_win32.txt"
+  
+  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
+  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
+
+  ; Registry + Add/Remove Entry
+  StrCmp $ISADMIN "1" 0 +11
+  WriteRegStr HKLM "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}" "Path" "$INSTDIR"
+  WriteRegStr HKLM "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}" "Version" "${PRODUCT_VERSION}"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName" "${PRODUCT_FULLNAME} ${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon" "$INSTDIR\gtkmm.ico"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "Publisher" "${PRODUCT_PUBLISHER}"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString" "$INSTDIR\${GTKMM_UNINSTALL_EXE}"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayVersion" "${PRODUCT_VERSION}-${PRODUCT_VERSION_INSTALLER}"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NSIS:StartMenuDir" "$ICONS_GROUP"
+  Goto +10
+  WriteRegStr HKCU "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}" "Path" "$INSTDIR"
+  WriteRegStr HKCU "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}" "Version" "${PRODUCT_VERSION}"
+  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName" "${PRODUCT_FULLNAME} ${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}"
+  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon" "$INSTDIR\gtkmm.ico"
+  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "Publisher" "${PRODUCT_PUBLISHER}"
+  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString" "$INSTDIR\${GTKMM_UNINSTALL_EXE}"
+  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayVersion" "${PRODUCT_VERSION}-${PRODUCT_VERSION_INSTALLER}"
+  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
+  WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NSIS:StartMenuDir" "$ICONS_GROUP"
+
+!ifndef RUNTIME_ONLY
+  IfFileExists "$INSTDIR\share\doc\*.*" "" +2
+    CreateDirectory "$SMPROGRAMS\$ICONS_GROUP\Documentation"
+
+  IfFileExists "$INSTDIR\share\doc\libsigc-2.0\docs\reference\html\index.html" "" +2
+       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Documentation\libsigc++ Reference Manual.lnk" "$INSTDIR\share\doc\libsigc-2.0\docs\reference\html\index.html"
+
+  IfFileExists "$INSTDIR\share\doc\libcairomm-1.0\reference\html\index.html" "" +2
+       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Documentation\cairomm Reference Manual.lnk" "$INSTDIR\share\doc\libcairomm-1.0\reference\html\index.html"
+
+  IfFileExists "$INSTDIR\share\doc\glibmm-2.4\docs\reference\html\index.html" "" +2
+       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Documentation\glibmm Reference Manual.lnk" "$INSTDIR\share\doc\glibmm-2.4\docs\reference\html\index.html"
+
+  ; TODO: Add link to pangomm-2.4 documentation when we switch to gtkmm-2.14
+
+  IfFileExists "$INSTDIR\share\doc\gtkmm-2.4\docs\index.html" "" +2
+       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Documentation\gtkmm Reference Manual.lnk" "$INSTDIR\share\doc\gtkmm-2.4\docs\index.html"
+
+  IfFileExists "$INSTDIR\share\doc\gnomemm-2.6\libglademm-2.4\docs\reference\html\index.html" "" +2
+       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Documentation\libglademm Reference Manual.lnk" "$INSTDIR\share\doc\gnomemm-2.6\libglademm-2.4\docs\reference\html\index.html"     
+
+  IfFileExists "$INSTDIR\share\doc\libxml++-2.6\docs\reference\2.22\html\index.html" "" +2
+       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Documentation\libxml++ Reference Manual.lnk" "$INSTDIR\share\doc\libxml++-2.6\docs\reference\2.22\html\index.html"
+
+  IfFileExists "$INSTDIR\gtkmm-demo\gtkmm-demo.exe" "" +11
+       Push $OUTDIR
+       SetOutPath "$INSTDIR\gtkmm-demo"
+       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Demo.lnk" "$INSTDIR\gtkmm-demo\gtkmm-demo.exe" "" "$INSTDIR\gtkmm.ico"
+       StrCmp $ISADMIN "1" 0 +4
+       WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gtkmm-demo.exe" "" "$INSTDIR\gtkmm-demo\gtkmm-demo.exe"
+       WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gtkmm-demo.exe" "Path" "$INSTDIR\bin"
+       Goto +3
+       WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\App Paths\gtkmm-demo.exe" "" "$INSTDIR\gtkmm-demo\gtkmm-demo.exe"
+       WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\App Paths\gtkmm-demo.exe" "Path" "$INSTDIR\bin"
+       Pop $OUTDIR
+       
+;  IfFileExists "$INSTDIR\bin\gideon.exe" "" +11
+;       Push $OUTDIR
+;       SetOutPath "$INSTDIR\bin"
+;       CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Gideon.lnk" "$INSTDIR\bin\gideon.exe" "" "$INSTDIR\gtkmm.ico"
+;       StrCmp $ISADMIN "1" 0 +4
+;       WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gideon.exe" "" "$INSTDIR\bin\gideon.exe"
+;       WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gideon.exe" "Path" "$INSTDIR\bin"
+;       Goto +3
+;       WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\App Paths\gideon.exe" "" "$INSTDIR\bin\gideon.exe"
+;       WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\App Paths\gideon.exe" "Path" "$INSTDIR\bin"
+;       Pop $OUTDIR
+   
+!endif  ; RUNTIME_ONLY
+
+  ; GTKMM_BASEPATH environment variable
+  Push "GTKMM_BASEPATH"
+  Push "$INSTDIR"
+  Push $ISADMIN
+  Call WriteEnvStr
+
+  ; Uninstaller
+  WriteUninstaller "$INSTDIR\${GTKMM_UNINSTALL_EXE}"
+  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\${GTKMM_UNINSTALL_EXE}"
+
+  ; Set the PATH with gtkmm target directory (if relevant)
+  IfSilent +2
+  ; Read a value from an InstallOptions INI file
+  !insertmacro MUI_INSTALLOPTIONS_READ $CB_PATH_VALUE "PathQuestion.ini" "Field 1" "State"
+  StrCmp $CB_PATH_VALUE "1" "" done
+     Push $ISADMIN
+     Push "$INSTDIR\bin"
+     Call AddToPath
+done:
+
+SectionEnd
+
+Section Uninstall SecUninstall
+
+  ClearErrors
+  UserInfo::GetName
+  IfErrors done
+  Pop $0
+  UserInfo::GetAccountType
+  Pop $0
+  StrCmp $0 "Admin" 0 done
+  StrCpy $ISADMIN "1"
+  SetShellVarContext all
+done:
+ 
+  ClearErrors
+  ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName"
+  IfErrors continue
+  StrCpy $CONTEXT "1"
+  StrCmp $ISADMIN "1" continue
+  MessageBox MB_OK|MB_ICONEXCLAMATION "$(MISC_ADMIN_REQUIRED)"
+  Quit
+  
+continue:
+  StrCmp $CONTEXT "1" 0 +4
+  ReadRegStr $INSTDIR HKLM "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}" "Path"
+  ReadRegStr $ICONS_GROUP HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NSIS:StartMenuDir"
+  Goto +3
+  ReadRegStr $INSTDIR HKCU "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}" "Path"
+  ReadRegStr $ICONS_GROUP HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "NSIS:StartMenuDir"
+  
+  ;Remove shortcut
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Website.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\License.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Read Me.lnk"
+
+!ifndef RUNTIME_ONLY
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Documentation\libsigc++ Reference Manual.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Documentation\glibmm Reference Manual.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Documentation\gtkmm Reference Manual.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Documentation\libglademm Reference Manual.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Documentation\cairomm Reference Manual.lnk"
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Documentation\libxml++ Reference Manual.lnk"
+  RMDir "$SMPROGRAMS\$ICONS_GROUP\Documentation"
+  
+  Delete "$SMPROGRAMS\$ICONS_GROUP\Demo.lnk"
+;  Delete "$SMPROGRAMS\$ICONS_GROUP\Gideon.lnk"
+!endif
+
+  RMDir "$SMPROGRAMS\$ICONS_GROUP"
+
+  SetAutoClose true
+  
+  ; Delete language selection
+  DeleteRegValue HKCU "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}" "Installer Language"
+  DeleteRegKey /ifempty  HKCU "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}"
+  DeleteRegKey /ifempty  HKCU "Software\${PRODUCT_NAME}"
+  
+  StrCmp $CONTEXT "1" 0 +8
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gtkmm-demo.exe"
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\gideon.exe"
+  DeleteRegKey HKLM "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}"
+  DeleteRegKey /ifempty  HKLM "Software\${PRODUCT_NAME}"
+  ReadRegStr $R0 HKLM "Software\GTK\2.0" "PATH"
+  Goto +7
+  DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
+  DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\App Paths\gtkmm-demo.exe"
+  DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\App Paths\gideon.exe"
+  DeleteRegKey HKCU "Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION}"
+  DeleteRegKey /ifempty  HKCU "Software\${PRODUCT_NAME}"
+  ReadRegStr $R0 HKCU "Software\GTK\2.0" "PATH"
+  
+  ; Remove gtkmm from PATH
+
+  StrCmp $R0 $INSTDIR +4
+     Push $CONTEXT
+     Push "$INSTDIR\bin"
+     Call un.RemoveFromPath
+
+  Delete "$INSTDIR\gtkmm.ico"
+  Delete "$INSTDIR\gtkmm_win32.txt"
+  Delete "$INSTDIR\lgpl.txt"
+  Delete "$INSTDIR\${PRODUCT_NAME}.url"
+
+!ifndef RUNTIME_ONLY
+  ; include
+  RMDir /r $INSTDIR\include\sigc++-2.0
+  RMDir /r $INSTDIR\include\cairomm-1.0
+  RMDir /r $INSTDIR\include\glibmm-2.4
+  RMDir /r $INSTDIR\include\atkmm-1.6
+  RMDir /r $INSTDIR\include\gdkmm-2.4
+  RMDir /r $INSTDIR\include\gtkmm-2.4
+  RMDir /r $INSTDIR\include\pangomm-1.4
+  RMDir /r $INSTDIR\include\libglademm-2.4
+  RMDir /r $INSTDIR\include\libxml++-2.6
+
+  ; lib
+  RMDir /r $INSTDIR\lib\sigc++-2.0
+  RMDir /r $INSTDIR\lib\glibmm-2.4
+  RMDir /r $INSTDIR\lib\gdkmm-2.4
+  RMDir /r $INSTDIR\lib\gtkmm-2.4
+  RMDir /r $INSTDIR\lib\libglademm-2.4
+  RMDir /r $INSTDIR\lib\libxml++-2.6
+
+  Delete $INSTDIR\lib\libsigc-*.dll.a
+  Delete $INSTDIR\lib\libcairomm-*.dll.a
+  Delete $INSTDIR\lib\libglibmm-*.dll.a
+  Delete $INSTDIR\lib\libglibmm_generate_extra_defs-*.dll.a
+  Delete $INSTDIR\lib\libatkmm-*.dll.a
+  Delete $INSTDIR\lib\libgdkmm-*.dll.a
+  Delete $INSTDIR\lib\libgtkmm-*.dll.a
+  Delete $INSTDIR\lib\libpangomm-*.dll.a
+  Delete $INSTDIR\lib\libglademm-*.dll.a
+  Delete $INSTDIR\lib\libxml++-*.dll.a
+ 
+  Delete $INSTDIR\lib\sigc-*.lib
+  Delete $INSTDIR\lib\cairomm-*.lib
+  Delete $INSTDIR\lib\glibmm-*.lib
+  Delete $INSTDIR\lib\atkmm-*.lib
+  Delete $INSTDIR\lib\gdkmm-*.lib
+  Delete $INSTDIR\lib\gtkmm-*.lib
+  Delete $INSTDIR\lib\pangomm-*.lib
+  Delete $INSTDIR\lib\glademm-*.lib
+  Delete $INSTDIR\lib\libglademm-*.lib.lnk
+  Delete $INSTDIR\lib\xml++-*.lib
+  Delete $INSTDIR\lib\libxml++-*.lib.lnk
+
+  Delete $INSTDIR\lib\pkgconfig\sigc++-*.pc
+  Delete $INSTDIR\lib\pkgconfig\cairomm-*.pc
+  Delete $INSTDIR\lib\pkgconfig\glibmm-*.pc
+  Delete $INSTDIR\lib\pkgconfig\atkmm-*.pc
+  Delete $INSTDIR\lib\pkgconfig\gdkmm-*.pc
+  Delete $INSTDIR\lib\pkgconfig\gtkmm-*.pc
+  Delete $INSTDIR\lib\pkgconfig\pangomm-*.pc
+  Delete $INSTDIR\lib\pkgconfig\libglademm-*.pc
+  Delete $INSTDIR\lib\pkgconfig\libxml++-*.pc
+  RMDir $INSTDIR\lib\pkgconfig
+
+  ; share
+  RMDir /r $INSTDIR\share\doc\libsigc-2.0
+  RMDir /r $INSTDIR\share\doc\libcairomm-1.0
+  RMDir /r $INSTDIR\share\doc\glibmm-2.4
+  ; TODO: Remove pangomm-2.4 docs when we switch to gtkmm-2.14
+  RMDir /r $INSTDIR\share\doc\gtkmm-2.4
+  RMDir /r $INSTDIR\share\doc\gnomemm-2.6\libglademm-2.4
+  RMDir $INSTDIR\share\doc\gnomemm-2.6
+  RMDir /r $INSTDIR\share\doc\libxml++-2.6
+  RMDir $INSTDIR\share\doc
+  
+  RMDir /r $INSTDIR\share\devhelp\books\gtkmm-2.4
+  RMDir /r $INSTDIR\share\devhelp\books\libglademm-2.4
+  RMDir $INSTDIR\share\devhelp\books
+  RMDir $INSTDIR\share\devhelp
+
+  Delete $INSTDIR\share\aclocal\glibmm_check_perl.m4
+  RMDir $INSTDIR\share\aclocal
+  
+  RMDir $INSTDIR\share
+  
+  Delete $INSTDIR\MSVC\gtkmm-2.4.vsprops
+  Delete $INSTDIR\MSVC\gtkmm-2.4d.vsprops
+  RMDir $INSTDIR\MSVC
+  
+  ; gtkmm-demo
+  Delete $INSTDIR\gtkmm-demo\gtkmm-demo.exe
+  Delete $INSTDIR\gtkmm-demo\*.cc
+  Delete $INSTDIR\gtkmm-demo\*.png
+  Delete $INSTDIR\gtkmm-demo\*.jpg
+  Delete $INSTDIR\gtkmm-demo\*.gif
+
+  RMDir $INSTDIR\gtkmm-demo
+  
+  ; glade--
+  Delete $INSTDIR\bin\glade--.exe
+  Delete $INSTDIR\bin\glademm-embed.exe
+  
+  ; gideon
+  Delete $INSTDIR\bin\gideon.exe
+  Delete $INSTDIR\bin\libgideon.dll
+  Delete $INSTDIR\bin\libguiloader.dll
+  Delete $INSTDIR\bin\libguiloader-*.dll
+  RMDir /r $INSTDIR\include\gideon
+  RMDir /r $INSTDIR\include\guiloader
+  RMDir /r $INSTDIR\include\guiloader-c++
+  Delete $INSTDIR\lib\libgideon.dll.a
+  Delete $INSTDIR\lib\libguiloader.dll.a
+  Delete $INSTDIR\lib\libguiloader-c++.dll.a
+  
+  RMDir $INSTDIR\lib
+  
+  RMDir $INSTDIR\include
+
+!endif
+
+  ; bin
+  Delete $INSTDIR\bin\libsigc-*.dll
+  Delete $INSTDIR\bin\libcairomm-*.dll
+  Delete $INSTDIR\bin\libglibmm-*.dll
+  Delete $INSTDIR\bin\libglibmm_generate_extra_defs-*.dll
+  Delete $INSTDIR\bin\libatkmm-*.dll
+  Delete $INSTDIR\bin\libgdkmm-*.dll
+  Delete $INSTDIR\bin\libgtkmm-*.dll
+  Delete $INSTDIR\bin\libpangomm-*.dll
+  Delete $INSTDIR\bin\libglademm-*.dll
+  Delete $INSTDIR\bin\libxml++-*.dll
+ 
+  Delete $INSTDIR\bin\sigc++-*.dll
+  Delete $INSTDIR\bin\sigc-*.dll
+  Delete $INSTDIR\bin\cairomm-*.dll
+  Delete $INSTDIR\bin\glibmm-*.dll
+  Delete $INSTDIR\bin\atkmm-*.dll
+  Delete $INSTDIR\bin\gdkmm-*.dll
+  Delete $INSTDIR\bin\gtkmm-*.dll
+  Delete $INSTDIR\bin\pangomm-*.dll
+  Delete $INSTDIR\bin\glademm-*.dll
+  Delete $INSTDIR\bin\libglademm-*.dll.lnk
+  Delete $INSTDIR\bin\xml++-*.dll
+  Delete $INSTDIR\bin\libxml++-*.dll.lnk
+  
+  Delete $INSTDIR\bin\sigc-*.pdb
+  Delete $INSTDIR\bin\cairomm-*.pdb
+  Delete $INSTDIR\bin\glibmm-*.pdb
+  Delete $INSTDIR\bin\atkmm-*.pdb
+  Delete $INSTDIR\bin\gdkmm-*.pdb
+  Delete $INSTDIR\bin\gtkmm-*.pdb
+  Delete $INSTDIR\bin\pangomm-*.pdb
+  Delete $INSTDIR\bin\glademm-*.pdb
+  Delete $INSTDIR\bin\libglademm-*.pdb.lnk
+  Delete $INSTDIR\bin\xml++-*.pdb
+  Delete $INSTDIR\bin\libxml++-*.pdb.lnk
+  
+  RMDir $INSTDIR\bin
+  
+#  
+  ; GTKMM_BASEPATH environment variable
+  Push "GTKMM_BASEPATH"
+  Push $ISADMIN
+  Call un.DeleteEnvStr
+  
+  ; uninstaller
+  Delete $INSTDIR\${GTKMM_UNINSTALL_EXE}
+  
+  ; $INSTDIR
+  RMDir $INSTDIR
+
+SectionEnd
+
+;--------------------------------
+; Section Description Macros
+
+!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
+
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecSigcRuntime} "libsigc++ Runtime Libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecCairommRuntime} "cairomm Runtime Libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecGlibmmRuntime} "glibmm Runtime Libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecGtkmmRuntime} "gtkmm Runtime Libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecLibglademmRuntime} "libglademm Runtime Libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecLibxmlRuntime} "libxml++ Runtime Libraries"
+ 
+!ifndef RUNTIME_ONLY
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecSigcDevelopment} "libsigc++ development headers and import libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecSigcDocumentation} "libsigc++ Documentation"
+
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecCairommDevelopment} "cairomm development headers and import libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecCairommDocumentation} "cairomm Documentation"
+
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecGlibmmDevelopment} "glibmm development headers and import libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecGlibmmDocumentation} "glibmm Documentation"
+
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecGtkmmDevelopment} "gtkmm development headers and import libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecGtkmmDocumentation} "gtkmm Documentation"
+
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecLibglademmDevelopment} "libglademm development headers and import libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecLibglademmDocumentation} "libglademm Documentation"
+
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecLibxmlDevelopment} "libxml++ development headers and import libraries"
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecLibxmlDocumentation} "libxml++ Documentation"
+  
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecGlademm} "glade-- executable"
+;  !insertmacro MUI_DESCRIPTION_TEXT ${SecGideon} "gideon executable"
+!endif
+  
+!insertmacro MUI_FUNCTION_DESCRIPTION_END
+
+;--------------------------------
+; General Functions
+
+Function EnableGTKInstaller
+
+  !insertmacro SelectSection ${SecGTKInstaller}
+
+  !insertmacro UnselectSection ${SecSigcRuntime}
+  !insertmacro UnselectSection ${SecCairommRuntime}
+  !insertmacro UnselectSection ${SecGlibmmRuntime}
+  !insertmacro UnselectSection ${SecGtkmmRuntime}
+  !insertmacro UnselectSection ${SecLibglademmRuntime}
+  !insertmacro UnselectSection ${SecLibxmlRuntime}
+  
+!ifndef RUNTIME_ONLY
+  !insertmacro UnselectSection ${SecSigcDevelopment}
+  !insertmacro UnselectSection ${SecSigcDocumentation}
+
+  !insertmacro UnselectSection ${SecCairommDevelopment}
+  !insertmacro UnselectSection ${SecCairommDocumentation}
+
+  !insertmacro UnselectSection ${SecGlibmmDevelopment}
+  !insertmacro UnselectSection ${SecGlibmmDocumentation}
+
+  !insertmacro UnselectSection ${SecGtkmmDevelopment}
+  !insertmacro UnselectSection ${SecGtkmmDemo}
+  !insertmacro UnselectSection ${SecGtkmmDocumentation}
+
+  !insertmacro UnselectSection ${SecLibglademmDevelopment}
+  !insertmacro UnselectSection ${SecLibglademmDocumentation}
+  
+  !insertmacro UnselectSection ${SecLibxmlDevelopment}
+  !insertmacro UnselectSection ${SecLibxmlDocumentation}
+  
+  !insertmacro UnselectSection ${SecGlademm}
+;  !insertmacro UnselectSection ${SecGideon}
+!endif
+  
+  !insertmacro UnselectSection ${SecPost}
+
+FunctionEnd
+
+Function DisableGTKInstaller
+
+  !insertmacro UnselectSection ${SecGTKInstaller}
+
+  !insertmacro SelectSection ${SecSigcRuntime}
+  !insertmacro SelectSection ${SecCairommRuntime}
+  !insertmacro SelectSection ${SecGlibmmRuntime}
+  !insertmacro SelectSection ${SecGtkmmRuntime}
+  !insertmacro SelectSection ${SecLibglademmRuntime}
+  !insertmacro SelectSection ${SecLibxmlRuntime}
+
+!ifndef RUNTIME_ONLY
+  !insertmacro SelectSection ${SecSigcDevelopment}
+  !insertmacro SelectSection ${SecSigcDocumentation}
+
+  !insertmacro SelectSection ${SecCairommDevelopment}
+  !insertmacro SelectSection ${SecCairommDocumentation}
+
+  !insertmacro SelectSection ${SecGlibmmDevelopment}
+  !insertmacro SelectSection ${SecGlibmmDocumentation}
+  
+  !insertmacro SelectSection ${SecGtkmmDevelopment}
+  !insertmacro SelectSection ${SecGtkmmDemo}
+  !insertmacro SelectSection ${SecGtkmmDocumentation}
+
+  !insertmacro SelectSection ${SecLibglademmDevelopment}
+  !insertmacro SelectSection ${SecLibglademmDocumentation}
+  
+  !insertmacro SelectSection ${SecLibxmlDevelopment}
+  !insertmacro SelectSection ${SecLibxmlDocumentation}
+  
+  !insertmacro SelectSection ${SecGlademm}
+;  !insertmacro SelectSection ${SecGideon}
+!endif
+  
+  !insertmacro SelectSection ${SecPost}
+
+FunctionEnd
+
+;--------------------------------
+; Custom Page Functions
+
+Function CustomPagePathQuestion
+
+  ClearErrors
+  ReadRegStr $R0 HKLM "Software\GTK\2.0" "PATH"
+  IfErrors 0 +2
+  ReadRegStr $R0 HKCU "Software\GTK\2.0" "PATH"
+  StrCmp $R0 $INSTDIR path_ok
+    !insertmacro MUI_HEADER_TEXT "$(MISC_INSTALL_OPTION)" "$(MISC_ANSWER_SYSTEM)"
+    !insertmacro MUI_INSTALLOPTIONS_WRITE "PathQuestion.ini" "Field 1" "Text" "$(GTKMM_ADD_PATH)"
+    !insertmacro MUI_INSTALLOPTIONS_DISPLAY "PathQuestion.ini"
+    Goto done
+  path_ok:
+    ; no need to set path. Already done by the GTK+ Installer
+    IfSilent "" +2
+    StrCpy $CB_PATH_VALUE "0"
+  done:
+
+FunctionEnd
+
+Function CustomPageSetContext
+
+  ClearErrors
+  UserInfo::GetName
+  IfErrors continue
+  Pop $0
+  UserInfo::GetAccountType
+  Pop $1
+  StrCmp $1 "Admin" 0 done
+continue:
+  IfSilent "" +5
+    StrCmp $CONTEXT "1" "" done
+    StrCpy $ISADMIN "1"
+    SetShellVarContext all
+    Goto done
+  !insertmacro MUI_HEADER_TEXT "$(MISC_INSTALL_OPTION)" "$(MISC_UNINSTALL_CONTEXT)"
+  !insertmacro MUI_INSTALLOPTIONS_WRITE "SetContext.ini" "Field 1" "Text" "$(GTKMM_RIGHTS_INSTALL)"
+  !insertmacro MUI_INSTALLOPTIONS_WRITE "SetContext.ini" "Field 2" "Text" "$(GTKMM_RIGHTS_ANYONE)"
+  !insertmacro MUI_INSTALLOPTIONS_WRITE "SetContext.ini" "Field 3" "Text" "$(GTKMM_RIGHTS_CURRENT)"
+  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "SetContext.ini"
+  !insertmacro MUI_INSTALLOPTIONS_READ $R0 "SetContext.ini" "Field 2" "State"
+  StrCmp $R0 "1" "" done
+  StrCpy $ISADMIN "1"
+  SetShellVarContext all
+done:
+  
+FunctionEnd
+
+Function CustomSetTargetDirectory
+
+  IfSilent 0 +2
+    StrCmp $USE_GTKDIR "1" 0 done
+  ReadRegStr $R0 HKLM Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION} "Path"
+  StrCmp $R0 "" "" done
+  ReadRegStr $R0 HKCU Software\${PRODUCT_NAME}\${PRODUCT_API_VERSION} "Path"
+  StrCmp $R0 "" "" done
+  ReadRegStr $R0 HKLM "Software\GTK\2.0" "Path"
+  StrCmp $R0 "" "" +3
+  ReadRegStr $R0 HKCU "Software\GTK\2.0" "Path"
+  StrCmp $R0 "" done
+  Push $R0
+  Pop $INSTDIR
+done:
+
+FunctionEnd
+
+Function CustomPreviousVersion
+
+  ; Get installer location
+  ClearErrors
+  ReadRegStr $R0 HKLM \
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \
+  "UninstallString"
+  IfErrors 0 +2
+  ReadRegStr $R0 HKCU \
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \
+  "UninstallString"
+  StrCmp $R0 "" done
+
+  ; Get current installed version
+  ClearErrors
+  ReadRegStr $R1 HKLM \
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \
+  "DisplayVersion"
+  IfErrors 0 +2
+  ReadRegStr $R1 HKCU \
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \
+  "DisplayVersion"
+
+  ; Extract package and installer versions
+  ${StrTok} $R2 $R1 "-" 0 1
+  ${StrTok} $R3 $R1 "-" 1 1
+  
+  ${VersionCheck} $R2 ${PRODUCT_VERSION} "$R4"
+  StrCmp $R4 "1" newerInstall
+
+  StrCmp $R4 "2" +2
+  IntCmp $R3 ${PRODUCT_VERSION_INSTALLER} "" "" newerInstall
+
+  IfSilent "" +2
+    StrCmp $FORCE_UNINSTALL "1" +2 no_remove_uninstaller
+  MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "$(GTKMM_PREVIOUS_VERSION)" IDNO done IDCANCEL abortInstall
+
+  ;Run the uninstaller
+  ClearErrors
+  CopyFiles "$R0" $TEMP
+  StrCpy $R1 ""
+  IfSilent 0 +2
+    StrCpy $R1 "/S"
+  ExecWait '"$TEMP\${GTKMM_UNINSTALL_EXE}" $R1 _?=$INSTDIR'
+
+  IfErrors no_remove_uninstaller
+    Delete $R0
+    RMDir $INSTDIR
+
+  no_remove_uninstaller:
+    Delete "$TEMP\$R0"
+    ; Check that the user completed the uninstallation by examining the registry
+    ReadRegStr $R0 HKLM \
+    "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \
+    "UninstallString"
+    IfErrors 0 +2
+    ReadRegStr $R0 HKCU \
+    "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \
+    "UninstallString"
+    StrCmp $R0 "" done abortInstall
+    
+newerInstall:
+    IfSilent +2
+      MessageBox MB_OK|MB_ICONEXCLAMATION "$(GTKMM_NEWER)" IDOK ""
+    Abort
+
+abortInstall:
+    IfSilent 0
+      MessageBox MB_OK|MB_ICONEXCLAMATION "$(GTKMM_PREVIOUS_ERROR)"
+    Abort
+
+done:
+    BringToFront
+    
+FunctionEnd
+
+
+;--------------------------------
+; Callbacks
+
+Function .onSelChange
+
+  !insertmacro UnselectSection ${SecGTKInstaller}
+
+FunctionEnd
+
+Function .onInit
+
+  ; Display the language selection dialog
+  !insertmacro MUI_LANGDLL_DISPLAY
+
+  ;Extract InstallOptions INI files
+  !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "NSISLibrary\PathQuestion.ini" "PathQuestion.ini"
+  !insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "NSISLibrary\SetContext.ini" "SetContext.ini"
+  
+  ; Get Command line Parameters
+  Push "ALLUSERS"
+  call Cmd_GetParameter
+  Pop $CONTEXT
+  Push "SET_ENVVARS"
+  call Cmd_GetParameter
+  Pop $CB_PATH_VALUE
+  Push "FORCE_UNINSTALL"
+  call Cmd_GetParameter
+  Pop $FORCE_UNINSTALL
+  Push "USE_GTKDIR"
+  call Cmd_GetParameter
+  Pop $USE_GTKDIR
+  
+  IfSilent "" +5
+    StrCpy $ICONS_GROUP "Gtkmm"
+    Call CustomPreviousVersion
+    Call CustomSetTargetDirectory
+    Call CustomPagePathQuestion
+    Call CustomPageSetContext
+
+FunctionEnd
+
+Function un.onInit
+
+  !insertmacro MUI_UNGETLANGUAGE
+
+FunctionEnd
+

Added: trunk/installer/gtkmm.ico
==============================================================================
Binary file. No diff available.

Added: trunk/installer/gtkmm_win32.txt
==============================================================================
--- (empty file)
+++ trunk/installer/gtkmm_win32.txt	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,159 @@
+
+
+		Gtkmm on the Win32 platform
+		***************************
+
+
+Content
+-------
+
+	1. Building gtkmm on Win32
+		1.1 Mingw
+		1.2 MS Visual Studio 2005
+	2. Using the binaries and building your gtkmm application
+		2.1 Mingw
+		2.2 MS Visual Studio 2005
+	3. Gtkmm methods and signals not available on win32
+	4. Gtkmm examples and demos on win32
+
+
+1. Building gtkmm on Win32
+   ========================
+
+Currently, both the mingw (native win32) gcc compiler and MS Visual
+Studio 2005 are supported. gtkmm can be built with mingw32-gcc using
+the gnu autotools (automake, autoconf, libtool). As explicitly
+stated in the gtk+ for win32 distribution (http://www.gimp.org/win32/),
+the gcc compiler provided by the cygwin distribution should not be
+used to build gtk+/gtkmm libraries and/or applications (see the
+README.win32 that comes with the gtk+ DLLs). This MIGHT cause
+conflicts between the cygwin and msvcrt runtime environments.
+
+1.1. Mingw
+     -----
+
+The mingw distribution which has been tested with this release is the
+following :
+
+* MinGW-4.1 as the base distribution.
+
+The bare mingw distribution does not provide the necessary tools (sh, perl, m4
+, autoconf, automake, ..) to run the provided configure script "as is". One 
+(currently non supported) solution is to use mingw in conjunction with msys,
+which is readily available on the mingw website (http://www.mingw.org/).
+
+The preferred method is to combine the cygwin distribution (for the unix tools
+that were mentioned above) with mingw by making sure that the mingw
+tools (gcc, ld, dlltool, ..) are called first.
+
+First, make sure that you have working distribution of the native port
+of both libsigc++-2.0.x and gtk+-2.0 on win32 (see
+http://www.gimp.org/win32). If you can't compile a simple gtk+ example
+using gcc and `pkg-config --cflags --libs`, you should not even think
+about trying to compile gtkmm, let alone using precompiled libgtkmm
+DLLs to port your gtkmm application !
+
+The configure script can then be called using (as an example) the
+following options
+
+./configure --prefix=/target --build=i386-pc-mingw32 --disable-static
+
+then
+
+make
+make check
+make install
+
+1.2. MS Visual Studio 2005
+     ---------------------
+
+Open the gtkmm.sln solution file in the MSVC_Net2003 directory. In
+the Tools/Options panel, add the appropriate GTK+, glibmm include and lib
+directories to the Projects and Solutions/VC++ directories. Build the
+solution. 
+
+Important NOTE : to circumvent the C++ compiler bug described in this
+bugzilla entry (http://bugzilla.gnome.org/show_bug.cgi?id=158040), it
+is necessary to add '/vd2' to the list of compiler options when
+building and/or using gtkmm with Visual Studio 2005. 
+
+gtkmm-2.10 will probably not work correctly with Visual Studio 7.1 or
+below because of the aforementioned bug.
+
+2. Using the binaries and building your gtkmm application
+=============================================================
+
+
+2.1. Mingw
+     -----
+
+To build your gtkmm application, it is recommended to either use mingw
+combined with cygwin (http://www.cygwin.com) or msys
+(http://www.mingw.org). If you use mingw/cygwin, make sure that the
+directory that contains the mingw executables is first in your PATH
+(by checking with g++ -v). Then
+
+1. Add the directories with the gtkmm, gtk+ DLLs and the gtk+
+executables (especially the one containing pkg-config.exe) to your
+path. If you have selected the corresponding option in the Gtkmm
+installer, both the gtkmm and gtk+ runtime will already be in your
+PATH. Make sure pkg-config is available by typing 'pkg-config --version'
+
+2. Set the PKG_CONFIG_PATH environment variable to point to the various
+lib/pkgconfig directories. Look for files with the .pc extension in
+the gtk+ and gtkmm developer packages. It's basically the same syntax
+as on linux but the directory are separated by semicolons.
+
+3. Check the gtkmm distribution by typing 'pkg-config --modversion
+--cflags --libs gtkmm-2.4'. You should get something like
+
+2.10.1
+-IC:/target/include/gtkmm-2.4
+-IC:/target/lib/gtkmm-2.4/include 
+-IC:/target/include/glibmm-2.4 
+-IC:/target/lib/glibmm-2.4/include 
+-IC:/target/include/gdkmm-2.4
+-IC:/target/lib/gdkmm-2.4/include 
+-IC:/target/include/pangomm-1.4 
+-IC:/target/include/atkmm-1.6 
+-IC:/target/include/sigc++-2.0 
+-IC:/target/lib/sigc++-2.0/include 
+-IC:/GTK/include/gtk-2.0 
+-IC:/GTK/include/glib-2.0 
+-IC:/GTK/lib/glib-2.0/include 
+-IC:/GTK/lib/gtk-2.0/include 
+-IC:/GTK/include/pango-1.0 
+-IC:/GTK/include/atk-1.0
+-LC:/target/lib 
+-LC:/GTK/lib 
+-lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lgtk-win32-2.0 
+-lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0 -lgdk-win32-2.0 
+-latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 
+-lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
+
+Of course, the target directories will reflect your local installation
+tree.
+
+4. Compile your program with
+
+g++ `pkg-config --cflags gtkmm-2.4` my_programs.cc -o my_program 
+`pkg-config --libs gtkmm-2.4`
+
+Alternatively, you can adapt the above compiler and linker flags to
+your directory structure...
+
+2.2. MS Visual Studio 2005
+     --------------------- 
+
+To build a gtkmm project with MS Visual Studio 2005 or Visual C++ 2005, simply create a new project and add the MSVC/gtkmm-2.4d.vsprops or MSVC/gtkmm-2.4.vsprops project sheets to the project for a Debug and Release target, respectively. See the MSDN documentation for more information on how to use project sheets. Add source and header files to the project, set the name of the executable to be created in the project properties, and build  the solution/project.  
+
+3. Gtkmm methods and signals not available on win32
+===================================================
+
+All gtkmm methods and signals are available on win32.
+
+4. Gtkmm examples and demos on win32
+====================================
+
+All demos and examples compile/run on win32
+

Added: trunk/installer/install-msvc-module
==============================================================================
--- (empty file)
+++ trunk/installer/install-msvc-module	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+# This installs MSVC-built libraries of a module such as libsigc++, glibmm or
+# gtkmm into the MSVC subdirectory
+
+module=$1
+
+# Assume all the other libraries are at same point as gtkmm:
+basepath=../..
+
+# TODO: Automatically find latest version of package: First try SVN checkout, then look for latest installed tarball version.
+if test $module = 'libsigc++'; then
+	# Path to extracted tarball or SVN checkout
+	sourcepath="${basepath}/libsigc++"
+	# Basename of DLL
+	basename='sigc-2.0'
+	# Abiname of package
+	abiname='sigc++-2.0'
+	# Subdirectory in MSVC_Net2005
+	subdir='.'
+elif test $module = 'glibmm'; then
+	sourcepath="${basepath}/glibmm-2.16.4"
+	basename='glibmm-2.4'
+	abiname='glibmm-2.4'
+	subdir='glibmm'
+elif test $module = 'giomm'; then
+	sourcepath="${basepath}/glibmm-2.16.4"
+	basename='giomm-2.4'
+	abiname='giomm-2.4'
+	subdir='giomm'
+elif test $module = 'cairomm'; then
+	sourcepath="${basepath}/cairomm_msvc"
+	basename='cairomm-1.0'
+	abiname='cairomm-1.0'
+	subdir='cairomm'
+elif test $module = 'pangomm'; then
+	sourcepath="${basepath}/pangomm-2.13.4"
+	basename='pangomm-1.4'
+	abiname='pangomm-1.4'
+	subdir='pangomm'
+elif test $module = 'atkmm'; then
+	sourcepath="${basepath}/gtkmm-2.12.7"
+	basename='atkmm-1.6'
+	abiname='atkmm-1.6'
+	subdir='atkmm'
+elif test $module = 'gdkmm'; then
+	sourcepath="${basepath}/gtkmm-2.12.7"
+	basename='gdkmm-2.4'
+	abiname='gdkmm-2.4'
+	subdir='gdkmm'
+elif test $module = 'gtkmm'; then
+	sourcepath="${basepath}/gtkmm-2.12.7"
+	basename='gtkmm-2.4'
+	abiname='gtkmm-2.4'
+	subdir='gtkmm'
+elif test $module = 'libglademm'; then
+	sourcepath="${basepath}/libglademm-2.6.3"
+	basename='glademm-2.4'
+	abiname='glademm-2.4'
+	subdir='libglademm'
+elif test $module = 'libxml++'; then
+	sourcepath="${basepath}/libxml++"
+	basename='xml++-2.6'
+	abiname='libxml++-2.6'
+	subdir='libxml++'
+else
+	echo "Module $module not known"
+	exit -1
+fi
+
+#echo "Source Path: $sourcepath"
+#echo "Basename: $basename"
+#echo "Abiname: $abiname"
+#echo "Subdir: $subdir"
+
+targetpath=MSVC
+
+mkdir -p ${targetpath} || exit -1
+cp $sourcepath/MSVC_Net2005/$subdir/Release/${basename}.dll $targetpath || exit -1
+cp $sourcepath/MSVC_Net2005/$subdir/Debug/${basename}d.dll $targetpath || exit -1
+cp $sourcepath/MSVC_Net2005/$subdir/Debug/${basename}d.pdb $targetpath || exit -1
+
+mkdir -p ${targetpath}/lib || exit -1
+cp $sourcepath/MSVC_Net2005/$subdir/Release/${basename}.lib $targetpath || exit -1
+cp $sourcepath/MSVC_Net2005/$subdir/Debug/${basename}d.lib $targetpath || exit -1
+
+# Configfile is used from mingw, thus commented out:
+#configfile=$sourcepath/MSVC_Net2005/$subdir/*config.h
+#if test -f configfile; then
+#	mkdir -p $targetpath/lib/${abiname}/include/ || exit -1
+#	cp $configfile $targetpath/lib/${abiname}/include/ || exit -1
+#fi

Added: trunk/installer/translations/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/installer/translations/Makefile.am	Sun Aug 10 19:43:11 2008
@@ -0,0 +1 @@
+EXTRA_DIST = english.nsh french.nsh

Added: trunk/installer/translations/english.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/translations/english.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,49 @@
+;;
+;;  english.nsh
+;;
+;;  Default language strings for the Windows gtkmm NSIS installer.
+;;  Windows Code page: 1252
+;;
+;;  Author: Herman Bloggs <hermanator12002 yahoo com>
+;;
+
+LangString GTK_RUNTIME_REQUIRED	        ${LANG_ENGLISH} \
+  "You must have the GTK+ $R1 Runtime Environment to use gtkmm. Do you want to install it now ?$\n$\nClick 'Yes' to download and run the GTK+ $R1 installer, 'No' to skip this step or 'Cancel' to cancel the gtkmm installation."
+LangString GTK_DEVEL_REQUIRED           ${LANG_ENGLISH} \
+  "You must have the GTK+ $R1 Development Environment to use gtkmm. Do you want to install it now ?$\n$\nClick 'Yes' to download and run the GTK+ $R1 installer, 'No' to skip this step or 'Cancel' to cancel the gtkmm installation."
+LangString GTK_GET_VERSION		${LANG_ENGLISH} "Getting the GTK+ installer version"
+LangString GTK_DOWNLOADING		${LANG_ENGLISH} "Downloading the GTK+ installer"
+LangString GTK_STARTING	        	${LANG_ENGLISH} "Starting the GTK+ installer"
+LangString GTK_FINISHED        	        ${LANG_ENGLISH} "GTK+ Setup finished"
+LangString GTK_INTERRUPTED 	        ${LANG_ENGLISH} "The GTK installer has been abnormally interrupted"
+LangString GTK_INTERRUPT_REASON         ${LANG_ENGLISH} \
+  "The GTK+ installer is about to be interrupted for the following reason : $2.$\n$\nDo you want to continue the gtkmm installation ?"
+
+LangString MISC_DOWNLOAD_CANCELLED     	${LANG_ENGLISH} "Download cancelled"
+LangString MISC_DOWNLOAD_ERROR          ${LANG_ENGLISH} "Unkown error during download"
+LangString MISC_ADMIN_REQUIRED          ${LANG_ENGLISH} \
+  "Administrator rights are required to uninstall ${PRODUCT_NAME}. Exiting the installer now..."
+LangString MISC_INSTALL_OPTION          ${LANG_ENGLISH} "Install Option"
+LangString MISC_UNINSTALL_CONTEXT       ${LANG_ENGLISH} \
+  "You can choose to install ${PRODUCT_NAME} for anyone who uses this computer or only you."
+LangString MISC_ANSWER_SYSTEM           ${LANG_ENGLISH} \
+  "Please answer the following system-related questions."
+
+LangString GTKMM_PREVIOUS_VERSION       ${LANG_ENGLISH} \
+"A previous version of ${PRODUCT_NAME} ($R1) has been detected. Do you agree to uninstall it now ? \
+$\n$\nClick `Yes` to remove the previous version , `No` to overwrite it, or `Cancel` to \
+cancel this upgrade."
+LangString GTKMM_PREVIOUS_ERROR         ${LANG_ENGLISH} \
+'An error occured or a previous version of ${PRODUCT_NAME} ($R1) was not uninstalled. \
+The installer will stop now.'
+LangString GTKMM_ADD_PATH               ${LANG_ENGLISH} \
+"Add the gtkmm runtime directory to the PATH variable"
+LangString GTKMM_NEWER                  ${LANG_ENGLISH} \
+"${PRODUCT_NAME} ($R1) is already installed on your system, and is newer than this distribution (${PRODUCT_VERSION}-${PRODUCT_VERSION_INSTALLER})."
+
+LangString GTKMM_RIGHTS_INSTALL               ${LANG_ENGLISH} \
+"Install for"
+LangString GTKMM_RIGHTS_ANYONE               ${LANG_ENGLISH} \
+"Anyone who uses this computer"
+LangString GTKMM_RIGHTS_CURRENT               ${LANG_ENGLISH} \
+"Only me"

Added: trunk/installer/translations/french.nsh
==============================================================================
--- (empty file)
+++ trunk/installer/translations/french.nsh	Sun Aug 10 19:43:11 2008
@@ -0,0 +1,50 @@
+;;
+;;  french.nsh
+;;
+;;  French language strings for the Windows gtkmm NSIS installer.
+;;  Windows Code page: 1252
+;;
+;;  Author: Eric Boumaour <zongo nekeme net>, 2003.
+;;
+
+LangString GTK_RUNTIME_REQUIRED	        ${LANG_FRENCH} \
+  "Le GTK+ $R1 Runtime Environment est néssaire pour pouvoir utiliser gtkmm. Dérez-vous l'installer maintenant ?$\n$\nCliquez 'Oui' pour déarger puis installer GTK+ $R1, 'Non' pour passer cette épe ou 'Annuler' pour annuler l'installation de gtkmm."
+LangString GTK_DEVEL_REQUIRED           ${LANG_FRENCH} \
+  "Le GTK+ $R1 Development Environment est néssaire pour pouvoir utiliser gtkmm. Dérez-vous l'installer maintenant ?$\n$\nCliquez 'Oui' pour déarger puis installer GTK+ $R1, 'Non' pour passer cette épe ou 'Annuler' pour annuler l'installation de gtkmm."
+LangString GTK_GET_VERSION		${LANG_FRENCH} "Acquisition de la version de l'installeur GTK+"
+LangString GTK_DOWNLOADING		${LANG_FRENCH} "Dechargement de l'installeur GTK+"
+LangString GTK_STARTING	        	${LANG_FRENCH} "Lancement de l'installeur GTK+"
+LangString GTK_FINISHED        	        ${LANG_FRENCH} "Installation de GTK+ terminé
+LangString GTK_INTERRUPTED 	        ${LANG_FRENCH} "L'installeur GTK+ s'est arrê de maniè anormale"
+LangString GTK_INTERRUPT_REASON         ${LANG_FRENCH} \
+  "L'installeur GTK+ va s'arrêr pour la raison suivante : $2.$\n$\nDérez-vous poursuivre l'installation de gtkmm ?"
+
+LangString MISC_DOWNLOAD_CANCELLED     	${LANG_FRENCH} "Déargement annulé+LangString MISC_DOWNLOAD_ERROR          ${LANG_FRENCH} "Erreur inconnue durant le déargement"
+LangString MISC_ADMIN_REQUIRED          ${LANG_FRENCH} \
+  "Des droits administrateur sont néssaires pour dénstaller${PRODUCT_NAME}. L'installation va s'arrêr maintenant..."
+LangString MISC_INSTALL_OPTION          ${LANG_FRENCH} "Option d'installation"
+LangString MISC_UNINSTALL_CONTEXT       ${LANG_FRENCH} \
+  "${PRODUCT_NAME} peut êe installéour tous les utilisateurs ou uniquement l'utilisateur actuel."
+LangString MISC_ANSWER_SYSTEM           ${LANG_FRENCH} \
+  "Veuillez réndre aux questions suivantes relatives àotre systè."
+
+
+LangString GTKMM_PREVIOUS_VERSION       ${LANG_FRENCH} \
+"Une version prédente de ${PRODUCT_NAME} ($R1) a é décté Etes-vous d'accord de la dénstaller maintenant ? $\n$\nCliquer sur `Oui` pour supprimer \
+  la version prédente, `Non` pour l'éaser, ou `Annuler` pour annuler cette mise àour."
+LangString GTKMM_PREVIOUS_ERROR         ${LANG_FRENCH} \
+  "Une erreur s'est produite ou une version prédente de ${PRODUCT_NAME} ($R1) n'a pas é correctement dénstallé \
+   L'installation va s'arrêr maintenant."
+LangString GTKMM_NEWER                  ${LANG_FRENCH} \
+"${PRODUCT_NAME} ($R1) est dé installéur votre systè, et est plus rént que cette distribution (${PRODUCT_VERSION}-${PRODUCT_VERSION_INSTALLER})."
+   
+LangString GTKMM_ADD_PATH               ${LANG_FRENCH} \
+"Ajouter le repertoire racine de gtkmm àa variable PATH"
+
+LangString GTKMM_RIGHTS_INSTALL         ${LANG_FRENCH} \
+"Installer pour"
+LangString GTKMM_RIGHTS_ANYONE          ${LANG_FRENCH} \
+"Tous les utilisateurs de cet ordinateur"
+LangString GTKMM_RIGHTS_CURRENT         ${LANG_FRENCH} \
+"Uniquement l'utilisateur actuel"



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