~ubuntu-branches/ubuntu/quantal/devil/quantal

« back to all changes in this revision

Viewing changes to libtools/config gen/config gen.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Bradley Smith
  • Date: 2008-07-23 21:45:53 UTC
  • mfrom: (1.1.1 upstream) (5.1.2 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080723214553-o8629ygxv6d2iijm
Tags: 1.6.8-rc2-3
* Fix typo in 00_misc_fixes.diff.
* Remove broken watch file. Not adding a new one since upstreams
  repository is full of broken versioning.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#define WIN32_LEAN_AND_MEAN
2
2
#include <windows.h>
3
 
#include <stdio.h>
4
 
#include <stdlib.h>
5
 
#include <iostream.h>
6
 
#include <fstream.h>
 
3
#include <cstdio>
 
4
#include <cstdlib>
 
5
#include <iostream>
 
6
#include <fstream>
7
7
#include <direct.h>
8
8
 
 
9
using namespace std;
9
10
 
10
11
char            **LibDirs, **IncDirs;
11
12
int                     NumLib, NumInc;
13
14
 
14
15
bool    GetDirs(void);
15
16
bool    TestVC7(void);
 
17
bool    TestVC7_1(void);
16
18
void    TestInc(char *FileName, char *SubDir, char *Directive, bool IfFound);
17
19
void    CleanUp(void);
18
20
void    Compare(void);
35
37
        Out.open("config.h.temp");
36
38
        Out << "#ifndef __CONFIG_H__" << endl << "#define __CONFIG_H__" << endl << endl;
37
39
 
38
 
        TestInc("jpeglib.h",    NULL,   "IL_NO_JPG",    false);
39
 
        TestInc("libmng.h",             NULL,   "IL_NO_MNG",    false);
40
 
        TestInc("png.h",                NULL,   "IL_NO_PNG",    false);
41
 
        TestInc("tiff.h",               NULL,   "IL_NO_TIF",    false);
42
 
        TestInc("lcms.h",               "lcms", "IL_NO_LCMS",   false);
 
40
        TestInc("jpeglib.h",    NULL,   "IL_NO_JPG 1",  false);
 
41
        TestInc("libmng.h",             NULL,   "IL_NO_MNG 1",  false);
 
42
        TestInc("png.h",                NULL,   "IL_NO_PNG 1",  false);
 
43
        TestInc("tiff.h",               NULL,   "IL_NO_TIF 1",  false);
 
44
        TestInc("lcms.h",               "lcms", "IL_NO_LCMS 1", false);
43
45
 
44
46
        Out << endl;
45
47
 
46
 
        TestInc("gl.h",                 "gl",   "ILUT_USE_OPENGL",      true);
47
 
        TestInc("d3d8.h",               NULL,   "ILUT_USE_DIRECTX8",true);
48
 
        // Temporary fix for the SDL main() linker bug.
49
 
        //TestInc("sdl.h",              NULL,   "ILUT_USE_SDL",         true);
50
 
        TestInc("windows.h",    NULL,   "ILUT_USE_WIN32",       true);
 
48
        TestInc("gl.h",                 "gl",   "ILUT_USE_OPENGL 1",    true);
 
49
        TestInc("d3d8.h",               NULL,   "ILUT_USE_DIRECTX8 1",true);
 
50
        TestInc("d3d9.h",               NULL,   "ILUT_USE_DIRECTX9 1",true);
 
51
        TestInc("sdl.h",                NULL,   "ILUT_USE_SDL 1",               true);
 
52
        TestInc("windows.h",    NULL,   "ILUT_USE_WIN32 1",     true);
51
53
 
52
54
        Out << endl << "#endif /* __CONFIG_H__ */" << endl;
53
55
        Out.close();
69
71
        DWORD   IncLen=2048, LibLen=2048, i;
70
72
        char    *Token;
71
73
 
72
 
        if (TestVC7())
 
74
        if (TestVC7_1() || TestVC7())
73
75
                return true;
74
76
 
75
77
        Result = RegOpenKey(HKEY_CURRENT_USER, 
224
226
}
225
227
 
226
228
 
 
229
bool TestVC7_1()
 
230
{
 
231
        LONG    Result;
 
232
        HKEY    Key;
 
233
        char    VCInstallDir[2048], Inc[2048], Temp[2048];
 
234
        DWORD   InstLen=2048, IncLen=2048, i;
 
235
        char    *Token;
 
236
 
 
237
        Result = RegOpenKey(HKEY_LOCAL_MACHINE, 
 
238
                TEXT("SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC"),
 
239
                &Key);
 
240
        if (Result != ERROR_SUCCESS)
 
241
                return false;
 
242
 
 
243
        Result = RegQueryValueEx(Key,
 
244
                TEXT("ProductDir"),
 
245
                NULL,
 
246
                NULL,
 
247
                (LPBYTE)VCInstallDir,
 
248
                &InstLen);
 
249
        if (Result != ERROR_SUCCESS) {
 
250
                RegCloseKey(Key);
 
251
                return false;
 
252
        }
 
253
        RegCloseKey(Key);
 
254
 
 
255
 
 
256
        Result = RegOpenKey(HKEY_LOCAL_MACHINE, 
 
257
                TEXT("SOFTWARE\\Microsoft\\VisualStudio\\7.1\\VC\\VC_OBJECTS_PLATFORM_INFO\\Win32\\Directories"),
 
258
                &Key);
 
259
        if (Result != ERROR_SUCCESS)
 
260
                return false;
 
261
 
 
262
        Result = RegQueryValueEx(Key,
 
263
                TEXT("Include Dirs"),
 
264
                NULL,
 
265
                NULL,
 
266
                (LPBYTE)Inc,
 
267
                &IncLen);
 
268
        if (Result != ERROR_SUCCESS) {
 
269
                RegCloseKey(Key);
 
270
                return false;
 
271
        }
 
272
        RegCloseKey(Key);
 
273
 
 
274
 
 
275
        i = 0;
 
276
        strcpy(Temp, Inc);
 
277
        Token = strtok(Temp, ";");
 
278
        while (Token != NULL) {
 
279
                i++;
 
280
                Token = strtok(NULL, ";");
 
281
        }
 
282
        IncDirs = new char *[i];
 
283
        NumInc = i;
 
284
 
 
285
        i = 0;
 
286
        strcpy(Temp, Inc);
 
287
        Token = strtok(Temp, ";");
 
288
        while (Token != NULL) {
 
289
                IncDirs[i++] = strdup(Token);
 
290
                Token = strtok(NULL, ";");
 
291
        }
 
292
 
 
293
 
 
294
        // Replace $(VCInstallDir) with InstDir.
 
295
        for (i = 0; i < (DWORD)NumInc; i++) {
 
296
                if (!strncmp("$(VCInstallDir)", IncDirs[i], strlen("$(VCInstallDir)"))) {
 
297
                        strcpy(Temp, VCInstallDir);
 
298
                        strcat(Temp, IncDirs[i] + strlen("$(VCInstallDir)"));
 
299
                        free(IncDirs[i]);
 
300
                        IncDirs[i] = strdup(Temp);
 
301
                }
 
302
        }
 
303
 
 
304
        return true;
 
305
}
 
306
 
 
307
 
227
308
void TestInc(char *FileName, char *SubDir, char *Directive, bool IfFound)
228
309
{
229
310
        WIN32_FIND_DATA FindData;