mirror of
https://github.com/netsurf-browser/netsurf
synced 2025-01-03 09:44:24 +03:00
fix windows build format specifiers
add install target for windows - creates installer rather than actually installing
This commit is contained in:
parent
786a5186aa
commit
de982b4d3e
1
.gitignore
vendored
1
.gitignore
vendored
@ -19,6 +19,7 @@ nsmonkey
|
||||
nsdebug
|
||||
Makefile.config
|
||||
NetSurf.exe
|
||||
netsurf-installer.exe
|
||||
NetSurf.app
|
||||
NetSurf.dbg
|
||||
NetSurf.dmg
|
||||
|
@ -280,7 +280,7 @@ static void fetch_data_poll(lwc_string *scheme)
|
||||
|
||||
if (c->aborted == false) {
|
||||
snprintf(header, sizeof header,
|
||||
"Content-Length: %zd",
|
||||
"Content-Length: %"SSIZET_FMT,
|
||||
c->datalen);
|
||||
msg.type = FETCH_HEADER;
|
||||
msg.data.header_or_data.buf =
|
||||
|
@ -266,7 +266,7 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
|
||||
return;
|
||||
}
|
||||
|
||||
fd = open(ctx->path, O_RDONLY);
|
||||
fd = open(ctx->path, O_RDONLY | O_BINARY);
|
||||
if (fd < 0) {
|
||||
/* process errors as appropriate */
|
||||
fetch_file_process_error(ctx,
|
||||
@ -304,7 +304,7 @@ static void fetch_file_process_plain(struct fetch_file_context *ctx,
|
||||
goto fetch_file_process_aborted;
|
||||
|
||||
/* content length */
|
||||
if (fetch_file_send_header(ctx, "Content-Length: %zd", fdstat->st_size))
|
||||
if (fetch_file_send_header(ctx, "Content-Length: %"SSIZET_FMT, fdstat->st_size))
|
||||
goto fetch_file_process_aborted;
|
||||
|
||||
/* create etag */
|
||||
|
@ -575,15 +575,15 @@ case chr : \
|
||||
slen++;
|
||||
break;
|
||||
|
||||
FMTCHR('a', "zd", params.limit);
|
||||
FMTCHR('b', "zd", params.hysteresis);
|
||||
FMTCHR('c', "zd", total_bitmap_size);
|
||||
FMTCHR('a', SSIZET_FMT, params.limit);
|
||||
FMTCHR('b', SSIZET_FMT, params.hysteresis);
|
||||
FMTCHR('c', SSIZET_FMT, total_bitmap_size);
|
||||
FMTCHR('d', "d", bitmap_count);
|
||||
FMTCHR('e', "d", current_age / 1000);
|
||||
FMTCHR('f', "zd", max_bitmap_size);
|
||||
FMTCHR('f', SSIZET_FMT, max_bitmap_size);
|
||||
FMTCHR('g', "d", max_bitmap_size_count);
|
||||
FMTCHR('h', "d", max_bitmap_count);
|
||||
FMTCHR('i', "zd", max_bitmap_count_size);
|
||||
FMTCHR('i', SSIZET_FMT, max_bitmap_count_size);
|
||||
|
||||
|
||||
case 'j':
|
||||
@ -710,7 +710,7 @@ int image_cache_snentryf(char *string, size_t size, unsigned int entryn,
|
||||
if (centry->bitmap != NULL) {
|
||||
slen += snprintf(string + slen,
|
||||
size - slen,
|
||||
"%zd",
|
||||
"%"SSIZET_FMT,
|
||||
centry->bitmap_size);
|
||||
} else {
|
||||
slen += snprintf(string + slen,
|
||||
|
@ -116,13 +116,23 @@ char *realpath(const char *path, char *resolved_path);
|
||||
#define WITH_MMAP
|
||||
#endif
|
||||
|
||||
/* gtk */
|
||||
#if defined(gtk)
|
||||
#define WITH_THEME_INSTALL
|
||||
#endif
|
||||
|
||||
/* amiga */
|
||||
#if defined(__amigaos4__) || defined(__AMIGA__) || \
|
||||
defined(nsatari)
|
||||
#define NO_IPV6
|
||||
#endif
|
||||
|
||||
/* windows */
|
||||
#if (defined(_WIN32))
|
||||
#define SSIZET_FMT "Iu"
|
||||
#else
|
||||
#define SSIZET_FMT "zd"
|
||||
#define O_BINARY 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -71,3 +71,15 @@ S_WINDOWS := $(addprefix windows/,$(S_WINDOWS))
|
||||
# are not yet available
|
||||
SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_WINDOWS) $(S_RESOURCES)
|
||||
EXETARGET := NetSurf.exe
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Install target
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
install-windows: netsurf-installer.exe
|
||||
|
||||
WIN_RES_OBJ := installer.nsi NetSurf.ico netsurf.png welcome.html default.css messages
|
||||
WIN_RES_INS_OBJ := $(addprefix windows/res/,$(WIN_RES_OBJ))
|
||||
|
||||
netsurf-installer.exe: $(EXETARGET) $(WIN_RES_INS_OBJ)
|
||||
makensis -V4 -NOCD windows/res/installer.nsi
|
||||
|
@ -1,94 +0,0 @@
|
||||
; install script for nullsoft msi installer creation
|
||||
; debian package name nsis
|
||||
; paths may need adapting according to local settings
|
||||
; for release, would really need to compile source tree too
|
||||
Page license
|
||||
Page directory
|
||||
Page instfiles
|
||||
; install directory $INSTDIR = $PROGRAMFILES\NetSurf
|
||||
; install resources $PROGRAMFILES\NetSurf\res
|
||||
; install dlls $SYSDIR=%SystemRoot%\System[32]
|
||||
SetCompressor lzma
|
||||
InstallDir "$PROGRAMFILES\NetSurf"
|
||||
LicenseData ../COPYING ; \n -> \r\n
|
||||
Name NetSurf
|
||||
OutFile NetSurfInstall.exe
|
||||
Icon ../windows/res/NetSurf32.ico
|
||||
XPStyle on
|
||||
Section
|
||||
SetShellVarContext all
|
||||
SetOutPath $SYSDIR
|
||||
File /usr/local/mingw/bin/libeay32.dll
|
||||
File /usr/local/mingw/bin/libcurl-4.dll
|
||||
File /usr/local/mingw/bin/libiconv-2.dll
|
||||
File /usr/local/mingw/bin/ssleay32.dll
|
||||
File /usr/local/mingw/bin/libgnurx-0.dll
|
||||
File /usr/local/mingw/bin/libxml2-2.dll
|
||||
File /usr/local/mingw/bin/libpng12.dll
|
||||
File /usr/local/mingw/bin/libjpeg.dll
|
||||
IfFileExists "$INSTDIR\*.*" +2
|
||||
CreateDirectory "$INSTDIR"
|
||||
SetOutPath $INSTDIR
|
||||
File ../NetSurf.exe
|
||||
IfFileExists "$INSTDIR\res\*.*" +2
|
||||
CreateDirectory "$INSTDIR\res"
|
||||
SetOutPath $INSTDIR\res
|
||||
File ../windows/res/default.css
|
||||
File ../windows/res/quirks.css
|
||||
File ../windows/res/messages
|
||||
File ../windows/res/preferences
|
||||
File ../windows/res/*.bmp
|
||||
File ../windows/res/*.ico
|
||||
File ../windows/res/throbber.avi
|
||||
IfFileExists $SMPROGRAMS\NetSurf\NetSurf.lnk +2
|
||||
CreateDirectory "$SMPROGRAMS\NetSurf"
|
||||
CreateShortCut "$SMPROGRAMS\NetSurf\NetSurf.lnk" "$INSTDIR\NetSurf.exe" "" "$INSTDIR\res\NetSurf32.ico"
|
||||
IfFileExists "$INSTDIR\src\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src"
|
||||
SetOutPath "$INSTDIR\src"
|
||||
File ../Makefile
|
||||
File ../Makefile.config
|
||||
File ../Makefile.config.example
|
||||
File ../Makefile.defaults
|
||||
File ../Makefile.sources
|
||||
File ../Makefile.resources
|
||||
IfFileExists "$INSTDIR\src\content\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\content"
|
||||
SetOutPath "$INSTDIR\src\content"
|
||||
File /r /x .svn ../content/*.c
|
||||
File /r /x .svn ../content/*.h
|
||||
IfFileExists "$INSTDIR\src\css\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\css"
|
||||
SetOutPath "$INSTDIR\src\css"
|
||||
File /r /x .svn ../css/*.c
|
||||
File /r /x .svn ../css/*.h
|
||||
IfFileExists "$INSTDIR\src\desktop\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\desktop"
|
||||
SetOutPath "$INSTDIR\src\desktop"
|
||||
File /r /x .svn ../desktop/*.c
|
||||
File /r /x .svn ../desktop/*.h
|
||||
IfFileExists "$INSTDIR\src\image\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\image"
|
||||
SetOutPath "$INSTDIR\src\image"
|
||||
File /r /x .svn ../image/*.c
|
||||
File /r /x .svn ../image/*.h
|
||||
IfFileExists "$INSTDIR\src\render\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\render"
|
||||
SetOutPath "$INSTDIR\src\render"
|
||||
File /r /x .svn ../render/*.c
|
||||
File /r /x .svn ../render/*.h
|
||||
IfFileExists "$INSTDIR\src\utils\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\utils"
|
||||
SetOutPath "$INSTDIR\src\utils"
|
||||
File /r /x .svn ../utils/*.c
|
||||
File /r /x .svn ../utils/*.h
|
||||
IfFileExists "$INSTDIR\src\windows\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\windows"
|
||||
SetOutPath "$INSTDIR\src\windows"
|
||||
File /r /x .svn ../windows/*.c
|
||||
File /r /x .svn ../windows/*.h
|
||||
IfFileExists "$INSTDIR\src\Docs\*.*" +2
|
||||
CreateDirectory "$INSTDIR\src\Docs"
|
||||
SetOutPath "$INSTDIR\src\Docs"
|
||||
File /r /x .svn ../Docs/*.*
|
||||
SectionEnd
|
@ -119,7 +119,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hLastInstance, LPSTR lpcli, int ncmd)
|
||||
argctemp++;
|
||||
}
|
||||
|
||||
respaths = nsws_init_resource("${APPDATA}\\NetSurf:${HOME}\\.netsurf:${NETSURFRES}:${PROGRAMFILES}\\NetSurf\\res:"NETSURF_WINDOWS_RESPATH);
|
||||
respaths = nsws_init_resource("${APPDATA}\\NetSurf:${HOME}\\.netsurf:${NETSURFRES}:${PROGRAMFILES}\\NetSurf\\NetSurf\\:"NETSURF_WINDOWS_RESPATH);
|
||||
|
||||
messages = filepath_find(respaths, "messages");
|
||||
|
||||
|
133
windows/res/installer.nsi
Normal file
133
windows/res/installer.nsi
Normal file
@ -0,0 +1,133 @@
|
||||
# This installs NetSurf execuatables and resources, creates a start menu shortcut, builds an uninstaller, and
|
||||
# adds uninstall information to the registry for Add/Remove Programs
|
||||
|
||||
# show up in a few places.
|
||||
# All the other settings can be tweaked by editing the !defines at the top of this script
|
||||
!define APPNAME "NetSurf"
|
||||
!define COMPANYNAME "NetSurf"
|
||||
!define DESCRIPTION "Web Browser"
|
||||
# These three must be integers
|
||||
!define VERSIONMAJOR 3
|
||||
!define VERSIONMINOR 0
|
||||
!define VERSIONBUILD 1
|
||||
# These will be displayed by the "Click here for support information" link in "Add/Remove Programs"
|
||||
# It is possible to use "mailto:" links in here to open the email client
|
||||
!define HELPURL "http://www.netsurf-browser.org/" # "Support Information" link
|
||||
!define UPDATEURL "http://www.netsurf-browser.org/" # "Product Updates" link
|
||||
!define ABOUTURL "http://www.netsurf-browser.org/" # "Publisher" link
|
||||
# This is the size (in kB) of all the files copied into "Program Files"
|
||||
!define INSTALLSIZE 9000
|
||||
|
||||
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
|
||||
|
||||
InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}"
|
||||
|
||||
# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n)
|
||||
LicenseData "COPYING"
|
||||
# This will be in the installer/uninstaller's title bar
|
||||
Name "${COMPANYNAME} - ${APPNAME}"
|
||||
Icon "windows\res\NetSurf.ico"
|
||||
outFile "netsurf-installer.exe"
|
||||
BrandingText "${COMPANYNAME}"
|
||||
|
||||
!include LogicLib.nsh
|
||||
|
||||
# Just three pages - license agreement, install location, and installation
|
||||
page license
|
||||
page directory
|
||||
Page instfiles
|
||||
|
||||
!macro VerifyUserIsAdmin
|
||||
UserInfo::GetAccountType
|
||||
pop $0
|
||||
${If} $0 != "admin" ;Require admin rights on NT4+
|
||||
messageBox mb_iconstop "Administrator rights required!"
|
||||
setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
||||
quit
|
||||
${EndIf}
|
||||
!macroend
|
||||
|
||||
function .onInit
|
||||
setShellVarContext all
|
||||
!insertmacro VerifyUserIsAdmin
|
||||
functionEnd
|
||||
|
||||
section "install"
|
||||
# Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
|
||||
setOutPath $INSTDIR
|
||||
# Files added here should be removed by the uninstaller (see section "uninstall")
|
||||
file "NetSurf.exe"
|
||||
file /oname=NetSurf.ico "windows\res\NetSurf.ico"
|
||||
file /oname=libcares-2.dll "/opt/netsurf/i686-w64-mingw32/env/bin/libcares-2.dll"
|
||||
file /oname=libgnurx-0.dll "/opt/netsurf/i686-w64-mingw32/env/bin/libgnurx-0.dll"
|
||||
file /oname=default.css "windows\res\default.css"
|
||||
file /oname=welcome.html "windows\res\welcome.html"
|
||||
file /oname=netsurf.png "windows\res\netsurf.png"
|
||||
file /oname=messages "windows\res\messages"
|
||||
# Add any other files for the install directory (license files, app data, etc) here
|
||||
|
||||
# Uninstaller - See function un.onInit and section "uninstall" for configuration
|
||||
writeUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
# Start Menu
|
||||
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
|
||||
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\NetSurf.exe" "" "$INSTDIR\NetSurf.ico"
|
||||
|
||||
# Registry information for add/remove programs
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\NetSurf.ico$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR}
|
||||
# There is no option for modifying or repairing the install
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
|
||||
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE}
|
||||
sectionEnd
|
||||
|
||||
# Uninstaller
|
||||
|
||||
function un.onInit
|
||||
SetShellVarContext all
|
||||
|
||||
#Verify the uninstaller - last chance to back out
|
||||
MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
|
||||
Abort
|
||||
next:
|
||||
!insertmacro VerifyUserIsAdmin
|
||||
functionEnd
|
||||
|
||||
section "uninstall"
|
||||
|
||||
# Remove Start Menu launcher
|
||||
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
||||
# Try to remove the Start Menu folder - this will only happen if it is empty
|
||||
rmDir "$SMPROGRAMS\${COMPANYNAME}"
|
||||
|
||||
# Remove files
|
||||
delete $INSTDIR\NetSurf.exe
|
||||
delete $INSTDIR\NetSurf.ico
|
||||
delete $INSTDIR\libcares-2.dll
|
||||
delete $INSTDIR\libgnurx-0.dll
|
||||
delete $INSTDIR\default.css
|
||||
delete $INSTDIR\welcome.html
|
||||
delete $INSTDIR\netsurf.png
|
||||
delete $INSTDIR\messages
|
||||
|
||||
# Always delete uninstaller as the last action
|
||||
delete $INSTDIR\uninstall.exe
|
||||
|
||||
# Try to remove the install directory - this will only happen if it is empty
|
||||
rmDir $INSTDIR
|
||||
|
||||
# Remove uninstaller information from the registry
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
|
||||
sectionEnd
|
1
windows/res/internal.css
Symbolic link
1
windows/res/internal.css
Symbolic link
@ -0,0 +1 @@
|
||||
../../!NetSurf/Resources/internal.css,f79
|
1
windows/res/netsurf.png
Symbolic link
1
windows/res/netsurf.png
Symbolic link
@ -0,0 +1 @@
|
||||
../../!NetSurf/Resources/netsurf.png,b60
|
1
windows/res/welcome.html
Symbolic link
1
windows/res/welcome.html
Symbolic link
@ -0,0 +1 @@
|
||||
../../!NetSurf/Resources/en/welcome.html,faf
|
Loading…
Reference in New Issue
Block a user