summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-10-29 16:11:59 -0700
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-10-29 16:11:59 -0700
commit951f601aad396523fc9efbb4f021264e3f03524c (patch)
tree71afe13a347cd6d80d46ad1c877ce4615ca82ecf
parentceed8b6bc91872dec83b9c02223d72ac137c7335 (diff)
parent28d4075746c6120b56231dc58564a2353cc88a6a (diff)
downloadsubsurface-951f601aad396523fc9efbb4f021264e3f03524c.tar.gz
Merge branch 'mingw-port-cleanup' of git://github.com/dirkhh/subsurface
* 'mingw-port-cleanup' of git://github.com/dirkhh/subsurface: Fix Windows install destination Get rid of the terminal window that is displayed under Windows Add first cut of the mingw cross build spec file + nsi file Get icons working correctly under Windows
-rw-r--r--Makefile4
-rw-r--r--gtk-gui.c6
-rw-r--r--packaging/windows/mingw-subsurface.spec112
-rw-r--r--packaging/windows/subsurface.icobin0 -> 16958 bytes
-rw-r--r--packaging/windows/subsurface.nsi89
-rw-r--r--packaging/windows/subsurface.rc25
-rw-r--r--packaging/windows/subsurface.resbin0 -> 18056 bytes
7 files changed, 234 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index cc353f7d2..0d736e1b7 100644
--- a/Makefile
+++ b/Makefile
@@ -34,6 +34,8 @@ ifeq ($(CC), i686-w64-mingw32-gcc)
LIBDIVECOMPUTERDIR = /usr/i686-w64-mingw32/sys-root/mingw/include/libdivecomputer
LIBDIVECOMPUTERINCLUDES = `$(PKGCONFIG) --cflags libdivecomputer`
LIBDIVECOMPUTERARCHIVE = `$(PKGCONFIG) --libs libdivecomputer`
+ RESFILE = packaging/windows/subsurface.res
+ LDFLAGS += -Wl,-subsystem,windows
else
libdc-local := $(wildcard /usr/local/lib/libdivecomputer.a)
@@ -76,7 +78,7 @@ LIBS = $(LIBXML2) $(LIBGTK) $(LIBDIVECOMPUTER) -lpthread
OBJS = main.o dive.o profile.o info.o equipment.o divelist.o \
parse-xml.o save-xml.o libdivecomputer.o print.o uemis.o \
- gtk-gui.o
+ gtk-gui.o $(RESFILE)
$(NAME): $(OBJS)
$(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS)
diff --git a/gtk-gui.c b/gtk-gui.c
index ea3f646e7..b1bc82a73 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -552,7 +552,11 @@ static void about_dialog(GtkWidget *w, gpointer data)
GdkPixbuf *logo = NULL;
if (need_icon) {
+#ifndef WIN32
GtkWidget *image = gtk_image_new_from_file("subsurface.svg");
+#else
+ GtkWidget *image = gtk_image_new_from_file("subsurface.ico");
+#endif
if (image) {
logo = gtk_image_get_pixbuf(GTK_IMAGE(image));
@@ -823,7 +827,7 @@ void init_ui(int argc, char **argv)
#ifndef WIN32
gtk_window_set_icon_from_file(GTK_WINDOW(win), "subsurface.svg", NULL);
#else
- gtk_window_set_icon_from_file(GTK_WINDOW(win), "subsurface.bmp", NULL);
+ gtk_window_set_icon_from_file(GTK_WINDOW(win), "subsurface.ico", NULL);
#endif
g_signal_connect(G_OBJECT(win), "delete-event", G_CALLBACK(on_delete), NULL);
g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(on_destroy), NULL);
diff --git a/packaging/windows/mingw-subsurface.spec b/packaging/windows/mingw-subsurface.spec
new file mode 100644
index 000000000..e1335de1f
--- /dev/null
+++ b/packaging/windows/mingw-subsurface.spec
@@ -0,0 +1,112 @@
+%define __strip %{_mingw32_strip}
+%define __objdump %{_mingw32_objdump}
+%define _use_internal_dependency_generator 0
+%define __find_requires %{_mingw32_findrequires}
+%define __find_provides %{_mingw32_findprovides}
+%define __os_install_post %{_mingw32_debug_install_post} \
+ %{_mingw32_install_post}
+
+
+Name: mingw32-subsurface
+Summary: Simple Dive Log Program
+Version: 1.1
+Release: 5
+License: GPLv2
+URL: http://subsurface.hohndel.org
+Source0: subsurface-1.1.tar.gz
+BuildArch: noarch
+BuildRequires: mingw32-cross-pkg-config mingw32-cross-gcc
+BuildRequires: mingw32-gtk2-devel mingw32-glib2-devel mingw32-libxml2-devel
+BuildRequires: mingw32-libdivecomputer0-devel mingw32-gconf2-devel
+BuildRequires: mingw32-pthreads-devel
+BuildRequires: mingw32-gtk2 mingw32-glib2 mingw32-libxml2
+BuildRequires: mingw32-libdivecomputer0 mingw32-gconf2
+BuildRequires: mingw32-pthreads mingw32-zlib
+
+Group: Productivity/Other
+
+%description
+subsurface is a simple dive log program written in C
+
+%{_mingw32_debug_package}
+
+%prep
+%setup -q -n subsurface-1.1
+
+%build
+make CC=%{_mingw32_target}-gcc PKGCONFIG=%{_mingw32_target}-pkg-config XML2CONFIG=%{_mingw32_bindir}/xml2-config NAME=subsurface.exe
+
+%clean
+#rm -rf %{buildroot}
+
+%install
+mkdir -p $RPM_BUILD_ROOT/%{_mingw32_bindir}
+mkdir -p $RPM_BUILD_ROOT/%{_mingw32_datadir}
+install -m 755 subsurface.exe $RPM_BUILD_ROOT/%{_mingw32_bindir}/subsurface.exe
+install -m 644 subsurface.svg $RPM_BUILD_ROOT/%{_mingw32_datadir}/subsurface.svg
+# this seems like a really ugly hack
+install -m 755 %{_mingw32_bindir}/libdivecomputer-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libdivecomputer-0.dll
+install -m 755 %{_mingw32_bindir}/libcairo-2.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libcairo-2.dll
+install -m 755 %{_mingw32_bindir}/libgconf-2-4.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgconf-2-4.dll
+install -m 755 %{_mingw32_bindir}/libgdk-win32-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgdk-win32-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libglib-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libglib-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libgtk-win32-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgtk-win32-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libpango-1.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libpango-1.0-0.dll
+install -m 755 %{_mingw32_bindir}/libpangocairo-1.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libpangocairo-1.0-0.dll
+install -m 755 %{_mingw32_bindir}/pthreadGC2.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/pthreadGC2.dll
+install -m 755 %{_mingw32_bindir}/libxml2-2.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libxml2-2.dll
+install -m 755 %{_mingw32_bindir}/libfontconfig-1.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libfontconfig-1.dll
+install -m 755 %{_mingw32_bindir}/libfreetype-6.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libfreetype-6.dll
+install -m 755 %{_mingw32_bindir}/libpixman-1-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libpixman-1-0.dll
+install -m 755 %{_mingw32_bindir}/libpng15-15.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libpng15-15.dll
+install -m 755 %{_mingw32_bindir}/zlib1.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/zlib1.dll
+install -m 755 %{_mingw32_bindir}/libintl-8.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libintl-8.dll
+install -m 755 %{_mingw32_bindir}/libgmodule-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgmodule-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libgdk_pixbuf-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgdk_pixbuf-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libgobject-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgobject-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libgio-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgio-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libjasper-1.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libjasper-1.dll
+install -m 755 %{_mingw32_bindir}/libgthread-2.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libgthread-2.0-0.dll
+install -m 755 %{_mingw32_bindir}/libffi-5.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libffi-5.dll
+install -m 755 %{_mingw32_bindir}/libjpeg-8.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libjpeg-8.dll
+install -m 755 %{_mingw32_bindir}/libtiff-3.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libtiff-3.dll
+install -m 755 %{_mingw32_bindir}/libpangoft2-1.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libpangoft2-1.0-0.dll
+install -m 755 %{_mingw32_bindir}/libpangowin32-1.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libpangowin32-1.0-0.dll
+install -m 755 %{_mingw32_bindir}/libatk-1.0-0.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/libatk-1.0-0.dll
+
+%files
+%defattr(-,root,root)
+%{_mingw32_bindir}/subsurface.exe
+%{_mingw32_bindir}/libdivecomputer-0.dll
+%{_mingw32_bindir}/libcairo-2.dll
+%{_mingw32_bindir}/libgconf-2-4.dll
+%{_mingw32_bindir}/libgdk-win32-2.0-0.dll
+%{_mingw32_bindir}/libglib-2.0-0.dll
+%{_mingw32_bindir}/libgtk-win32-2.0-0.dll
+%{_mingw32_bindir}/libpango-1.0-0.dll
+%{_mingw32_bindir}/libpangocairo-1.0-0.dll
+%{_mingw32_bindir}/pthreadGC2.dll
+%{_mingw32_bindir}/libxml2-2.dll
+%{_mingw32_bindir}/libfontconfig-1.dll
+%{_mingw32_bindir}/libfreetype-6.dll
+%{_mingw32_bindir}/libpixman-1-0.dll
+%{_mingw32_bindir}/libpng15-15.dll
+%{_mingw32_bindir}/zlib1.dll
+%{_mingw32_bindir}/libintl-8.dll
+%{_mingw32_bindir}/libgmodule-2.0-0.dll
+%{_mingw32_bindir}/libgdk_pixbuf-2.0-0.dll
+%{_mingw32_bindir}/libgobject-2.0-0.dll
+%{_mingw32_bindir}/libgio-2.0-0.dll
+%{_mingw32_bindir}/libjasper-1.dll
+%{_mingw32_bindir}/libgthread-2.0-0.dll
+%{_mingw32_bindir}/libffi-5.dll
+%{_mingw32_bindir}/libjpeg-8.dll
+%{_mingw32_bindir}/libtiff-3.dll
+%{_mingw32_bindir}/libpangoft2-1.0-0.dll
+%{_mingw32_bindir}/libpangowin32-1.0-0.dll
+%{_mingw32_bindir}/libatk-1.0-0.dll
+
+%{_mingw32_datadir}/subsurface.svg
+
+
+%changelog
diff --git a/packaging/windows/subsurface.ico b/packaging/windows/subsurface.ico
new file mode 100644
index 000000000..fe7d1090b
--- /dev/null
+++ b/packaging/windows/subsurface.ico
Binary files differ
diff --git a/packaging/windows/subsurface.nsi b/packaging/windows/subsurface.nsi
new file mode 100644
index 000000000..8595c419b
--- /dev/null
+++ b/packaging/windows/subsurface.nsi
@@ -0,0 +1,89 @@
+
+# define the name of the installer
+outfile "subsurface-installer.exe"
+Name subsurface
+
+VIProductVersion "1.1.0.0"
+VIAddVersionKey ProductName subsurface
+VIAddVersionKey ProductVersion "1.1"
+VIAddVersionKey FileVersion "1.1"
+
+Icon ..\share\subsurface.ico
+
+
+RequestExecutionLevel admin
+
+Function .onInit
+ MessageBox MB_YESNO "This will install subsurface. Do you wish to continue?" IDYES gogogo
+ Abort
+ gogogo:
+FunctionEnd
+
+# define the directory to install to, the desktop in this case as specified
+# by the predefined $DESKTOP variable
+installDir "$PROGRAMFILES\subsurface"
+
+# default section
+Section
+
+# define the output path for this file
+setOutPath $INSTDIR
+
+SetShellVarContext all
+
+# create directory in the Start menu
+CreateDirectory "$SMPROGRAMS\subsurface"
+
+# create Start menu shortcut
+createShortCut "$SMPROGRAMS\subsurface\subsurface.lnk" "$INSTDIR\subsurface.exe"
+
+#create uninstaller and corresponding shortcut in Start menu
+writeUninstaller "$INSTDIR\subsurface-uninstall.exe"
+createShortCut "$SMPROGRAMS\subsurface\uninstall-subsurface.lnk" "$INSTDIR\subsurface-uninstall.exe"
+
+# define what to install and place it in the output path
+file subsurface.exe
+file libatk-1.0-0.dll
+file libcairo-2.dll
+file libdivecomputer-0.dll
+file libffi-5.dll
+file libfontconfig-1.dll
+file libfreetype-6.dll
+file libgdk_pixbuf-2.0-0.dll
+file libgdk-win32-2.0-0.dll
+file libgio-2.0-0.dll
+file libglib-2.0-0.dll
+file libgmodule-2.0-0.dll
+file libgobject-2.0-0.dll
+file libgthread-2.0-0.dll
+file libgtk-win32-2.0-0.dll
+file libintl-8.dll
+file libjasper-1.dll
+file libjpeg-8.dll
+file libpango-1.0-0.dll
+file libpangocairo-1.0-0.dll
+file libpangoft2-1.0-0.dll
+file libpangowin32-1.0-0.dll
+file libpixman-1-0.dll
+file libpng15-15.dll
+file libtiff-3.dll
+file libxml2-2.dll
+file pthreadGC2.dll
+file zlib1.dll
+file /oname=subsurface.ico ..\\share\\subsurface.ico
+file /oname=subsurface.bmp ..\\share\\subsurface.bmp
+file /oname=subsurface.svg ..\\share\\subsurface.svg
+
+
+sectionEnd
+
+section "uninstall"
+ SetShellVarContext all
+ delete "$INSTDIR\subsurface-uninstall.exe"
+ delete "$INSTDIR\*.*"
+ RMDir "$INSTDIR"
+ delete "$SMPROGRAMS\subsurface\uninstall-subsurface.lnk"
+ delete "$SMPROGRAMS\subsurface\subsurface.lnk"
+ RMDir "$SMPROGRAMS\subsurface"
+sectionEnd
+
diff --git a/packaging/windows/subsurface.rc b/packaging/windows/subsurface.rc
new file mode 100644
index 000000000..af79f6de9
--- /dev/null
+++ b/packaging/windows/subsurface.rc
@@ -0,0 +1,25 @@
+1 VERSIONINFO
+FILEVERSION 1,1,0,0
+PRODUCTVERSION 1,1,0,0
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "080904E4"
+ BEGIN
+ VALUE "CompanyName", "subsurface team"
+ VALUE "FileDescription", "subsurface dive log"
+ VALUE "FileVersion", "1.1"
+ VALUE "InternalName", "subsurface"
+ VALUE "LegalCopyright", "Linus Torvalds, Dirk Hohndel and others"
+ VALUE "OriginalFilename", "subsurface.exe"
+ VALUE "ProductName", "subsurface"
+ VALUE "ProductVersion", "1.1"
+ END
+ END
+
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x809, 1252
+ END
+END
+ID ICON "subsurface.ico" \ No newline at end of file
diff --git a/packaging/windows/subsurface.res b/packaging/windows/subsurface.res
new file mode 100644
index 000000000..616cf5ea9
--- /dev/null
+++ b/packaging/windows/subsurface.res
Binary files differ