2011-03-07 16 views
11

gtk2hs, Glade ve Haskell ile küçük bir GUI uygulaması yaptım. Windows XP'de iyi çalışır, ancak kullanıcıların çalıştırmak için GTK +, gtk2hs (libglade-2.0.0.dll için sorar) ve GHC (bir gtk2hs bağımlılığı gibi) yüklemeleri gerekir.Windows'ta bir haskell gtk2hs glade uygulaması nasıl paketlenir?

Kendim bir Windows n00b alıyorum, ancak küçük GUI'mizi kullanıcının bakış açısından yüklemeyi nasıl basitleştirebilirim? Gerekli .dll ile paketlemek için bir yolu var mı? Ve hangi .dll ihtiyaçlarının olacağını en iyi nasıl bulabilirim? İyi bir uygulama nedir?

Çok teşekkürler, Jarra

cevap

6

Sonunda kendi soru için cevabını buldu. Bir Windows yükleyicisi yapmak için de (burada bulabilirsiniz: http://www.jrsoftware.org/isdl.php) de Inno Setup yardımcı programını kullandım. Bir lib dizinine

; -- crosschecker.iss -- 
; For making the crosschecker installer. 

[Setup] 
AppName=Crosschecker 
AppVersion=0.1 
DefaultDirName={pf}\Crosschecker 
; Since no icons will be created in "{group}", we don't need the wizard 
; to ask for a Start Menu folder name: 
DisableProgramGroupPage=yes 
UninstallDisplayIcon={app}\crosschecker.exe 
OutputDir=userdocs:Inno Setup Examples Output 

[Files] 
Source: "crosschecker.exe"; DestDir: "{app}" 
Source: "window.glade"; DestDir: "{app}" 

; GTK+ dependencies 
; DLL 
Source: "libs\libcairo-2.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libpangocairo-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\jpeg62.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libtiff3.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libpng12-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\zlib1.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\intl.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libglib-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libgmodule-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libgobject-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libgthread-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libpango-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libpangoft2-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libpangowin32-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libglade-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libatk-1.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libgio-2.0-0.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\libxml2.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "libs\iconv.dll"; DestDir: "{app}"; Flags: ignoreversion 
Source: "etc\gtk-2.0\gdk-pixbuf.loaders"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion 


[Icons] 
Name: "{commonprograms}\Crosschecker"; Filename: "{app}\crosschecker.exe" 
Name: "{commondesktop}\Crosschecker"; Filename: "{app}\crosschecker.exe" 

en GTK gtk2hs paketten birkaç gelen .dll çoğu ... Ben tüm .dll kopyalanan 's: Crosschecker adlı bir GTK/Glade/Gtk2hs uygulama için Bu ekleme yapılandırması kullanılan Bu yüzden Inno Setup yapılandırmasının bulunduğu yer burası.

HTH,

Jarra