38
cl /MD hello.c > /dev/null 2>&1
39
cl -MD hello.c > /dev/null 2>&1
39
40
if [ '!' -f hello.exe.manifest ]; then
40
echo "This compiler does not generate manifest files - OK if using mingw" >&2
41
# Gah - VC 2010 changes the way it handles DLL's and manifests... Again...
42
# need another way of getting the version
43
DLLNAME=`dumpbin.exe -imports hello.exe | egrep MSVCR.*dll`
44
DLLNAME=`echo $DLLNAME`
49
#define REQ_MODULE "$DLLNAME"
56
unsigned char *versinfo;
60
unsigned int vs_ver_size;
65
if (!(versize = GetFileVersionInfoSize(REQ_MODULE,&dummy))) {
66
fprintf(stderr,"No version info size in %s!\n",REQ_MODULE);
69
versinfo=malloc(versize);
70
if (!GetFileVersionInfo(REQ_MODULE,dummy,versize,versinfo)) {
71
fprintf(stderr,"No version info in %s!\n",REQ_MODULE);
74
if (!VerQueryValue(versinfo,"\\\\VarFileInfo\\\\Translation",&translate,&tr_size)) {
75
fprintf(stderr,"No translation info in %s!\n",REQ_MODULE);
78
n = tr_size/(2*sizeof(*translate));
79
for(i=0; i < n; ++i) {
80
sprintf(buff,"\\\\StringFileInfo\\\\%04x%04x\\\\FileVersion",
81
translate[i*2],translate[i*2+1]);
82
if (VerQueryValue(versinfo,buff,&vs_verinfo,&vs_ver_size)) {
83
printf("%s\n",(char *) vs_verinfo);
87
fprintf(stderr,"Failed to find file version of %s\n",REQ_MODULE);
91
cl -MD helper.c version.lib > /dev/null 2>&1
92
if [ '!' -f helper.exe ]; then
93
echo "Failed to build helper program." >&2
99
VERSION=`grep '<assemblyIdentity' hello.exe.manifest | sed 's,.*version=.\([0-9\.]*\).*,\1,g' | grep -v '<'`
100
NAME=`grep '<assemblyIdentity' hello.exe.manifest | sed 's,.*name=.[A-Za-z\.]*\([0-9]*\).*,msvcr\1.dll,g' | grep -v '<'`
43
VERSION=`grep '<assemblyIdentity' hello.exe.manifest | sed 's,.*version=.\([0-9\.]*\).*,\1,g' | grep -v '<'`
44
NAME=`grep '<assemblyIdentity' hello.exe.manifest | sed 's,.*name=.[A-Za-z\.]*\([0-9]*\).*,msvcr\1.dll,g' | grep -v '<'`
45
rm -f hello.c hello.obj hello.exe hello.exe.manifest
102
#rm -f hello.c hello.obj hello.exe hello.exe.manifest helper.c helper.obj helper.exe helper.exe.manifest
46
103
if [ "$1" = "-n" ]; then