Dennis Schridde schreef:
> 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 "ProductVersion"        "TRUNK"
>>>>> 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?
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
automation to my opinion anyway (at least not large enough to motivate
writing functions larger than 40 lines).

--
Giel

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev

Reply via email to