Re: [Warzone-dev] NSIS installer

2006-12-27 Thread Dennis Schridde
Am Mittwoch, 27. Dezember 2006 04:27 schrieb Giel van Schijndel:
 Dennis Schridde schreef:
  Am Mittwoch, 27. Dezember 2006 02:50 schrieb Giel van Schijndel:
  Christian Ohm schreef:
  On Wednesday, 27 December 2006 at  1:46, Giel van Schijndel wrote:
* added some DLLs
  (SDL.dll, SDL_net.dll, physfs.dll, vorbisfile.dll, ogg.dll,
  vorbis.dll, png13.dll, zlib1.dll, jpeg6b.dll)
  ( *NOTE: I'm afraight that the current installer executable you're
  distributing won't work without these DLLs* )
 
  What current installer? The one you can download from gna.org for 2.0.5
  works on a system that has never seen Warzone before (but perhaps
  you're talking about something else, and I'm too tired to notice).
 
  Nah, it apparently was me who was/is too tired to notice (CET=GMT+1
  here, so calculate it if you wish).
 
  It seems that that executable is statically linked to these libraries.
 
  Exactly. :)
  Some ppl said that they didn't like all those DLLs in the folder, they
  are not needed anyway, since probably never more than 1 app will use our
  compilation of libpng or whatever and it saves some download space, so I
  linked statically...
 
  Besides that the nsis patch looks ok, just one question: Why do you
  sometimes use $DEVDIR and other times .. ?
  Is it possible to pass variables to makensis? That way we could pass the
  version info...

 ${DEVDIR} is a commandline passed variable, it is taken from DEVDIR in
 makerules/config.mk
 The reason I use ${DEVDIR} is because those files (or its sources for
 that matter) aren't contained in the repository (refers to the
 WZ-devpackage directory).

 The places where ../ is used is where the file is to be found in the
 repository or compiled from it.

 And yes it is indeed possible to pass variables to makensis just use
 /Dvarname=value. Make sure to include it in quotes as shown though
 because it otherwise can't deal with spaces at all. Then inside the
 script refer to that value like this: ${varname}.

 As for version info you could use this (except the current comment that
 is): VIProductVersion 9.9.9.9  ; Version number provided here
 has to be in n.n.n.n format where n is any unsigned integer
 VIAddVersionKey CompanyName   Warzone Resurrection Project
 VIAddVersionKey FileDescription   Warzone 2100 Installer
 VIAddVersionKey FileVersion   TRUNK
 VIAddVersionKey InternalName  Warzone 2100
 VIAddVersionKey LegalCopyright© 2006 Warzone Resurrection
 Project
 VIAddVersionKey ProductName   Warzone 2100
 VIAddVersionKey ProductVersionTRUNK
 VIAddVersionKey Comments  LALALALALALALA
What do you think about this?
http://nsis.sourceforge.net/Version_Info_manipulations_on_compile-time

He seems to produce an .rc from an allready compiled .exe, but we allready got 
the .rc, so we could skip all that reshacker stuff. I still don't exactly 
know how it works, though. :(

--Dennis


pgpO8LU3dloH0.pgp
Description: PGP signature
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] NSIS installer

2006-12-27 Thread Dennis Schridde
Am Mittwoch, 27. Dezember 2006 17:45 schrieb Giel van Schijndel:
 Giel van Schijndel schreef:
  Dennis Schridde schreef:
  Am Mittwoch, 27. Dezember 2006 04:27 schrieb Giel van Schijndel:
  ${DEVDIR} is a commandline passed variable, it is taken from DEVDIR in
  makerules/config.mk
  The reason I use ${DEVDIR} is because those files (or its sources for
  that matter) aren't contained in the repository (refers to the
  WZ-devpackage directory).
 
  The places where ../ is used is where the file is to be found in the
  repository or compiled from it.
 
  And yes it is indeed possible to pass variables to makensis just use
  /Dvarname=value. Make sure to include it in quotes as shown though
  because it otherwise can't deal with spaces at all. Then inside the
  script refer to that value like this: ${varname}.
 
  As for version info you could use this (except the current comment that
  is): VIProductVersion 9.9.9.9  ; Version number provided
  here has to be in n.n.n.n format where n is any unsigned integer
  VIAddVersionKey CompanyName   Warzone Resurrection Project
  VIAddVersionKey FileDescription   Warzone 2100 Installer
  VIAddVersionKey FileVersion   TRUNK
  VIAddVersionKey InternalName  Warzone 2100
  VIAddVersionKey LegalCopyright© 2006 Warzone Resurrection
  Project
  VIAddVersionKey ProductName   Warzone 2100
  VIAddVersionKey ProductVersionTRUNK
  VIAddVersionKey Comments  LALALALALALALA
 
  What do you think about this?
  http://nsis.sourceforge.net/Version_Info_manipulations_on_compile-time
 
  He seems to produce an .rc from an allready compiled .exe, but we
  allready got the .rc, so we could skip all that reshacker stuff. I still
  don't exactly know how it works, though. :(
 
  Looks very promising, I'll look into it.

 Now it doesn't look as promising as I initially thought it did.

 Yes, it does extract the .rc from the .exe using ResHacker this only to
 do some string processing to retrieve the version number.

 The second part is used to retrieve a .res file from the .exe (windres
 produces a .res also if you want by compiling a .rc file).

 So both of these two things we could do without using ResHacker.
 What it does then however is using ResHacker to produce the EXE header
 (contains all the windows resource stuff). And besides that this is a
 truly unreliable way of incorporating your version information into the
 final executable. It also depends on an external tool not part of NSIS
 while NSIS itself can do the job, i.e. using all those VIAddVersionKey
 statements, and as such adding more complexity to the required toolchain
 needlessly.
:(
NSIS doesn't offer a way to extract something from a file? Eg grep-like?

--Dennis


pgpm9F5FFYecW.pgp
Description: PGP signature
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] NSIS installer

2006-12-27 Thread Dennis Schridde
Am Mittwoch, 27. Dezember 2006 20:14 schrieb Giel van Schijndel:
 Dennis Schridde schreef:
  NSIS doesn't offer a way to extract something from a file? Eg grep-like?

 No, unless you're willing to write unreasonably large functions yourself
 (e.g.
 http://nsis.sourceforge.net/GetBetween:_Get_text_in_between_two_markers_in_
a_file ). And regular expressions aren't supported AFAIK by NSIS

 But even if you did add such functions, you'd need to interpret the
 .rc-fileformat which currently is only the job of the compiler. And to
 my opinion it should stay the job of the compiler and shouldn't become
 that of us using some unacceptably large NSIS script. Then as a second
 point, the only information that might change on a regular basis is
 currently (i.e. in SVN) already defined using command line definitions
 (i.e. ${VERSION} and ${VERSIONNUM}) so there isn't a requirement for
Problem with those is that you can't create VERSIONNUM automatically out of 
VERSION. This might be suitable for the raw Makefiles, but certainly is not 
for the automake build...
As a workaround I added a --with-installer-version switch to configure.

--Dennis


pgpxfDzYqgYsW.pgp
Description: PGP signature
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] NSIS installer

2006-12-27 Thread Giel van Schijndel
Dennis Schridde schreef:
 Am Mittwoch, 27. Dezember 2006 20:14 schrieb Giel van Schijndel:
   
 Dennis Schridde schreef:
 
 NSIS doesn't offer a way to extract something from a file? Eg grep-like?
   
 No, unless you're willing to write unreasonably large functions yourself
 (e.g.
 http://nsis.sourceforge.net/GetBetween:_Get_text_in_between_two_markers_in_
 a_file ). And regular expressions aren't supported AFAIK by NSIS

 But even if you did add such functions, you'd need to interpret the
 .rc-fileformat which currently is only the job of the compiler. And to
 my opinion it should stay the job of the compiler and shouldn't become
 that of us using some unacceptably large NSIS script. Then as a second
 point, the only information that might change on a regular basis is
 currently (i.e. in SVN) already defined using command line definitions
 (i.e. ${VERSION} and ${VERSIONNUM}) so there isn't a requirement for
 
 Problem with those is that you can't create VERSIONNUM automatically out of 
 VERSION. This might be suitable for the raw Makefiles, but certainly is not 
 for the automake build...
 As a workaround I added a --with-installer-version switch to configure.
Well I suppose you could use an include file in the .rc-file which
contains the version numbers, which you would then parse with the above
mentioned GetBetween function. Then use those numbers as arguments
against VIAddVersionKey.

That should be easily implemented.

--
Giel



signature.asc
Description: OpenPGP digital signature
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev