From: Dirk Hohndel Date: Sat, 29 Oct 2011 17:02:40 +0000 (-0700) Subject: Add first cut of the mingw cross build spec file + nsi file X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=667f07d281399414ff683536a848dda71e04d561;p=ext%2Fsubsurface.git Add first cut of the mingw cross build spec file + nsi file These need more work but I'd rather have them here under version control. The spec file appears to successfully build the Windows binaries, given the right tar file to start with. Those binaries are then packed into an rpm file (extermely useless to Windows users). Once the rpm is unpacked one can then use the NSIS compiler and the .nsi file to create a Windows installer. This all is still extremely fragile, but it worked at least once... Signed-off-by: Dirk Hohndel --- diff --git a/packaging/windows/mingw-subsurface.spec b/packaging/windows/mingw-subsurface.spec new file mode 100644 index 0000000..e1335de --- /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.nsi b/packaging/windows/subsurface.nsi new file mode 100644 index 0000000..c4fd48f --- /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 "$DESKTOP\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 +