Change widl to use only host headers.

Part of my ongoing attempt to separate host and target headers properly (see also bug 2779)
- Add a new header "nls.h" in the host directory, which contains a bunch of definitions needed for both widl and wrc.
- Add some more important defines to "typedefs.h".

svn path=/trunk/; revision=30842
This commit is contained in:
Colin Finck 2007-11-28 21:40:39 +00:00
parent 6847d5fa1a
commit 484d24fef4
15 changed files with 176 additions and 141 deletions

134
reactos/include/host/nls.h Normal file
View file

@ -0,0 +1,134 @@
/*
PROJECT: ReactOS
LICENSE: GPL v2 or any later version
FILE: include/host/nls.h
PURPOSE: NLS definitions for host tools
COPYRIGHT: Copyright 2007 Colin Finck <mail@colinfinck.de>
*/
#ifndef _HOST_NLS_H
#define _HOST_NLS_H
#include <host/typedefs.h>
typedef DWORD LCID;
#define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p))
#define PRIMARYLANGID(l) ((WORD)(l)&0x3ff)
#define SUBLANGID(l) ((WORD)(l)>>10)
#define LANGIDFROMLCID(l) ((WORD)(l))
#define LANG_AFRIKAANS 0x36
#define LANG_ALBANIAN 0x1c
#define LANG_ARABIC 0x01
#define LANG_ARMENIAN 0x2b
#define LANG_ASSAMESE 0x4d
#define LANG_AZERI 0x2c
#define LANG_BASQUE 0x2d
#define LANG_BELARUSIAN 0x23
#define LANG_BENGALI 0x45
#define LANG_BULGARIAN 0x02
#define LANG_CATALAN 0x03
#define LANG_CHINESE 0x04
#define LANG_CROATIAN 0x1a
#define LANG_CZECH 0x05
#define LANG_DANISH 0x06
#define LANG_DIVEHI 0x65
#define LANG_DUTCH 0x13
#define LANG_ENGLISH 0x09
#define LANG_ESTONIAN 0x25
#define LANG_FAEROESE 0x38
#define LANG_FARSI 0x29
#define LANG_FINNISH 0x0b
#define LANG_FRENCH 0x0c
#define LANG_GALICIAN 0x56
#define LANG_GEORGIAN 0x37
#define LANG_GERMAN 0x07
#define LANG_GREEK 0x08
#define LANG_GUJARATI 0x47
#define LANG_HEBREW 0x0d
#define LANG_HINDI 0x39
#define LANG_HUNGARIAN 0x0e
#define LANG_ICELANDIC 0x0f
#define LANG_INDONESIAN 0x21
#define LANG_IRISH 0x3c
#define LANG_ITALIAN 0x10
#define LANG_JAPANESE 0x11
#define LANG_KANNADA 0x4b
#define LANG_KASHMIRI 0x60
#define LANG_KAZAK 0x3f
#define LANG_KONKANI 0x57
#define LANG_KOREAN 0x12
#define LANG_KYRGYZ 0x40
#define LANG_LATVIAN 0x26
#define LANG_LITHUANIAN 0x27
#define LANG_MACEDONIAN 0x2f
#define LANG_MANIPURI 0x58
#define LANG_MALAY 0x3e
#define LANG_MALAYALAM 0x4c
#define LANG_MARATHI 0x4e
#define LANG_MONGOLIAN 0x50
#define LANG_NEPALI 0x61
#define LANG_NEUTRAL 0x00
#define LANG_NORWEGIAN 0x14
#define LANG_ORIYA 0x48
#define LANG_POLISH 0x15
#define LANG_PORTUGUESE 0x16
#define LANG_PUNJABI 0x46
#define LANG_ROMANIAN 0x18
#define LANG_ROMANSH 0x17
#define LANG_RUSSIAN 0x19
#define LANG_SAMI 0x3b
#define LANG_SANSKRIT 0x4f
#define LANG_SERBIAN 0x1a
#define LANG_SINDHI 0x59
#define LANG_SLOVAK 0x1b
#define LANG_SLOVENIAN 0x24
#define LANG_SPANISH 0x0a
#define LANG_SWAHILI 0x41
#define LANG_SWEDISH 0x1d
#define LANG_SYRIAC 0x5a
#define LANG_TAJIK 0x28
#define LANG_TAMIL 0x49
#define LANG_TATAR 0x44
#define LANG_TELUGU 0x4a
#define LANG_THAI 0x1e
#define LANG_TURKISH 0x1f
#define LANG_UKRAINIAN 0x22
#define LANG_URDU 0x20
#define LANG_UZBEK 0x43
#define LANG_VIETNAMESE 0x2a
/* non standard; keep the number high enough (but < 0xff) */
#define LANG_ESPERANTO 0x8f
#define LANG_WALON 0x90
#define LANG_CORNISH 0x91
#define LANG_WELSH 0x92
#define LANG_BRETON 0x93
/* FIXME: these are not in the Windows header */
#define LANG_GAELIC 0x94
#define LANG_MALTESE 0x3a
#define LANG_RHAETO_ROMANCE 0x17
#define LANG_SAAMI 0x3b
#define LANG_SORBIAN 0x2e
#define LANG_LOWER_SORBIAN 0x2e
#define LANG_UPPER_SORBIAN 0x2e
#define LANG_SUTU 0x30
#define LANG_TSONGA 0x31
#define LANG_TSWANA 0x32
#define LANG_VENDA 0x33
#define LANG_XHOSA 0x34
#define LANG_ZULU 0x35
/* Sublanguages */
#define SUBLANG_AZERI_CYRILLIC 0x02
#define SUBLANG_CHINESE_SINGAPORE 0x04
#define SUBLANG_CHINESE_SIMPLIFIED 0x02
#define SUBLANG_DEFAULT 0x01
#define SUBLANG_NEUTRAL 0x00
#define SUBLANG_NORWEGIAN_NYNORSK 0x02
#define SUBLANG_SERBIAN_CYRILLIC 0x03
#define SUBLANG_UZBEK_CYRILLIC 0x02
#endif

View file

@ -4,6 +4,7 @@
FILE: include/host/typedefs.h
PURPOSE: Type definitions and useful macros for host tools
COPYRIGHT: Copyright 2007 Hervé Poussineau
Copyright 2007 Colin Finck <mail@colinfinck.de>
*/
#ifndef _TYPEDEFS_HOST_H
@ -21,6 +22,7 @@
#error Unknown compiler
#endif
/* Function attributes for GCC */
#if !defined(_MSC_VER) && !defined(__fastcall)
#define __fastcall __attribute__((fastcall))
#endif
@ -31,6 +33,7 @@
#define __stdcall __attribute__((stdcall))
#endif
/* Basic definitions */
#define UNIMPLEMENTED { printf("%s unimplemented\n", __FUNCTION__); exit(1); }
#define ASSERT(x) assert(x)
#define ASSERTMSG(x, m) assert(x)
@ -53,6 +56,7 @@
#define ANYSIZE_ARRAY 1
/* Type definitions */
typedef void VOID, *PVOID, *HANDLE;
typedef HANDLE HKEY, *PHKEY;
typedef unsigned char UCHAR, *PUCHAR, BYTE, *LPBYTE;
@ -66,6 +70,8 @@ typedef int LONG, *PLONG, *LPLONG;
typedef unsigned int ULONG, *PULONG, DWORD, *LPDWORD;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
typedef int INT;
typedef unsigned int UINT, *PUINT, *LPUINT;
typedef UCHAR BOOLEAN, *PBOOLEAN;
typedef int BOOL;
typedef long int W64 LONG_PTR, *PLONG_PTR;
@ -75,9 +81,11 @@ typedef unsigned short WCHAR, *PWCHAR, *PWSTR, *LPWSTR;
typedef const unsigned short *PCWSTR, *LPCWSTR;
typedef int NTSTATUS;
typedef int POOL_TYPE;
typedef LONG HRESULT;
#define MAXUSHORT USHRT_MAX
/* Widely used structures */
#include <host/pshpack4.h>
typedef struct _RTL_BITMAP
{
@ -122,9 +130,7 @@ typedef struct _UNICODE_STRING
} UNICODE_STRING, *PUNICODE_STRING;
#include <host/poppack.h>
//
// List Functions
//
/* List Functions */
static __inline
VOID
InitializeListHead(
@ -220,13 +226,25 @@ RemoveTailList(
typedef const UNICODE_STRING *PCUNICODE_STRING;
#define NT_SUCCESS(x) ((x)>=0)
#define FIELD_OFFSET(t,f) ((LONG_PTR)&(((t*)0)->f))
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
#define CONTAINING_RECORD(address, type, field) ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
#define RtlZeroMemory(Destination, Length) memset(Destination, 0, Length)
#define RtlCopyMemory(Destination, Source, Length) memcpy(Destination, Source, Length)
#define RtlMoveMemory(Destination, Source, Length) memmove(Destination, Source, Length)
/* Widely used macros */
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a,b) ((a) < (b) ? (b) : (a))
#define LOBYTE(w) ((BYTE)(w))
#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF))
#define LOWORD(l) ((WORD)((DWORD_PTR)(l)))
#define HIWORD(l) ((WORD)(((DWORD_PTR)(l)>>16)&0xFFFF))
#define MAKEWORD(a,b) ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8)))
#define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16)))
#define NT_SUCCESS(x) ((x)>=0)
#define FIELD_OFFSET(t,f) ((LONG_PTR)&(((t*)0)->f))
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
#define CONTAINING_RECORD(address, type, field) ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
#define RtlZeroMemory(Destination, Length) memset(Destination, 0, Length)
#define RtlCopyMemory(Destination, Source, Length) memcpy(Destination, Source, Length)
#define RtlMoveMemory(Destination, Source, Length) memmove(Destination, Source, Length)
/* Prevent inclusion of some other headers */
#define __INTERNAL_DEBUG

View file

@ -29,13 +29,13 @@
#include <ctype.h>
#include <signal.h>
#include "windef.h"
#include "widl.h"
#include "utils.h"
#include "parser.h"
#include "header.h"
#include <host/typedefs.h>
#include "widltypes.h"
#include "typelib.h"
#include "typelib_struct.h"

View file

@ -21,10 +21,7 @@
#include <stdio.h>
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
#include <host/nls.h>
#include "hash.h"
static const unsigned char Lookup_16[128 * 3] = {

View file

@ -30,7 +30,6 @@
#include <ctype.h>
#include <signal.h>
#include "windef.h"
#include "widl.h"
#include "utils.h"
#include "parser.h"

View file

@ -356,8 +356,6 @@
#include <alloca.h>
#endif
#include "windef.h"
#include "widl.h"
#include "utils.h"
#include "parser.h"

View file

@ -31,8 +31,6 @@
#include <alloca.h>
#endif
#include "windef.h"
#include "widl.h"
#include "utils.h"
#include "parser.h"

View file

@ -35,7 +35,6 @@
#include "utils.h"
#include "parser.h"
#include "header.h"
#include "windef.h"
#include "widl.h"
#include "typelib.h"

View file

@ -37,7 +37,6 @@
#include "utils.h"
#include "parser.h"
#include "header.h"
#include "windef.h"
#include "wine/list.h"
#include "widl.h"

View file

@ -35,9 +35,6 @@
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#include "windef.h"
#include "winbase.h"
#include "widl.h"
#include "utils.h"
#include "parser.h"

View file

@ -302,7 +302,7 @@ typedef struct {
*
*/
#include "pshpack1.h"
#include <host/pshpack1.h>
typedef struct {
/*00*/ DWORD SLTG_magic; /* 0x47544c53 == "SLTG" */
@ -599,7 +599,7 @@ WORD offset from start of block to SAFEARRAY
WORD typeofarray
*/
#include "poppack.h"
#include <host/poppack.h>
/*---------------------------END--------------------------------------------*/
#endif

View file

@ -59,7 +59,7 @@ WIDL_OBJECTS = \
WIDL_HOST_CFLAGS = \
-DINT16=SHORT -DYYDEBUG=1 \
-I$(WIDL_BASE) -I$(WPP_BASE) \
-Iinclude/reactos/wine -Iinclude/reactos -Iinclude/psdk \
-Iinclude/reactos/wine -Iinclude/reactos -Iinclude \
-I$(INTERMEDIATE_)include $(TOOLS_CFLAGS)
WIDL_HOST_LFLAGS = $(TOOLS_LFLAGS)

View file

@ -21,6 +21,12 @@
#ifndef __WIDL_WIDLTYPES_H
#define __WIDL_WIDLTYPES_H
#include <host/typedefs.h>
#define S_OK ((HRESULT)0x00000000L)
#define S_FALSE ((HRESULT)0x00000001L)
#define E_OUTOFMEMORY ((HRESULT)0x8007000EL)
#define TYPE_E_IOERROR ((HRESULT)0x80028CA2L)
#include <stdarg.h>
#include "guiddef.h"
#include "wine/rpcfc.h"
@ -30,9 +36,6 @@
typedef GUID UUID;
#endif
#define TRUE 1
#define FALSE 0
typedef struct _attr_t attr_t;
typedef struct _expr_t expr_t;
typedef struct _type_t type_t;

View file

@ -40,10 +40,7 @@
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#include "winerror.h"
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
#include <host/nls.h>
#include "widltypes.h"
#include "typelib.h"

View file

@ -10,19 +10,13 @@
#define _WRC_ROSTYPES_H
#include <host/typedefs.h>
#include <host/nls.h>
#include <string.h>
// Definitions copied from various <win....h> files
// We only want to include host headers, so we define them manually
#define LOBYTE(w) ((BYTE)(w))
#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF))
#define LOWORD(l) ((WORD)((DWORD_PTR)(l)))
#define HIWORD(l) ((WORD)(((DWORD_PTR)(l)>>16)&0xFFFF))
#define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p))
#define VS_FFI_SIGNATURE 0xFEEF04BD
#define VS_FFI_STRUCVERSION 0x10000
#define PRIMARYLANGID(l) ((WORD)(l)&0x3ff)
#define SUBLANGID(l) ((WORD)(l)>>10)
#define BS_3STATE 5
#define BS_AUTO3STATE 6
@ -61,104 +55,6 @@
#define WS_TABSTOP 0x10000
#define WS_VISIBLE 0x10000000
#define LANG_AFRIKAANS 0x36
#define LANG_ALBANIAN 0x1c
#define LANG_ARABIC 0x01
#define LANG_ARMENIAN 0x2b
#define LANG_AZERI 0x2c
#define LANG_BASQUE 0x2d
#define LANG_BELARUSIAN 0x23
#define LANG_BULGARIAN 0x02
#define LANG_CATALAN 0x03
#define LANG_CHINESE 0x04
#define LANG_CROATIAN 0x1a
#define LANG_CZECH 0x05
#define LANG_DANISH 0x06
#define LANG_DIVEHI 0x65
#define LANG_DUTCH 0x13
#define LANG_ENGLISH 0x09
#define LANG_ESTONIAN 0x25
#define LANG_FAEROESE 0x38
#define LANG_FARSI 0x29
#define LANG_FINNISH 0x0b
#define LANG_FRENCH 0x0c
#define LANG_GALICIAN 0x56
#define LANG_GEORGIAN 0x37
#define LANG_GERMAN 0x07
#define LANG_GREEK 0x08
#define LANG_GUJARATI 0x47
#define LANG_HEBREW 0x0d
#define LANG_HINDI 0x39
#define LANG_HUNGARIAN 0x0e
#define LANG_ICELANDIC 0x0f
#define LANG_INDONESIAN 0x21
#define LANG_ITALIAN 0x10
#define LANG_JAPANESE 0x11
#define LANG_KANNADA 0x4b
#define LANG_KAZAK 0x3f
#define LANG_KONKANI 0x57
#define LANG_KOREAN 0x12
#define LANG_KYRGYZ 0x40
#define LANG_LATVIAN 0x26
#define LANG_LITHUANIAN 0x27
#define LANG_MACEDONIAN 0x2f
#define LANG_MALAY 0x3e
#define LANG_MARATHI 0x4e
#define LANG_MONGOLIAN 0x50
#define LANG_NEUTRAL 0x00
#define LANG_NORWEGIAN 0x14
#define LANG_POLISH 0x15
#define LANG_PORTUGUESE 0x16
#define LANG_PUNJABI 0x46
#define LANG_ROMANIAN 0x18
#define LANG_RUSSIAN 0x19
#define LANG_SANSKRIT 0x4f
#define LANG_SERBIAN 0x1a
#define LANG_SLOVAK 0x1b
#define LANG_SLOVENIAN 0x24
#define LANG_SPANISH 0x0a
#define LANG_SWAHILI 0x41
#define LANG_SWEDISH 0x1d
#define LANG_SYRIAC 0x5a
#define LANG_TAMIL 0x49
#define LANG_TATAR 0x44
#define LANG_TELUGU 0x4a
#define LANG_THAI 0x1e
#define LANG_TURKISH 0x1f
#define LANG_UKRAINIAN 0x22
#define LANG_URDU 0x20
#define LANG_UZBEK 0x43
#define LANG_VIETNAMESE 0x2a
/* non standard; keep the number high enough (but < 0xff) */
#define LANG_ESPERANTO 0x8f
#define LANG_WALON 0x90
#define LANG_CORNISH 0x91
#define LANG_WELSH 0x92
#define LANG_BRETON 0x93
/* FIXME: these are not in the Windows header */
#define LANG_GAELIC 0x94
#define LANG_MALTESE 0x3a
#define LANG_RHAETO_ROMANCE 0x17
#define LANG_SAAMI 0x3b
#define LANG_SORBIAN 0x2e
#define LANG_LOWER_SORBIAN 0x2e
#define LANG_UPPER_SORBIAN 0x2e
#define LANG_SUTU 0x30
#define LANG_TSONGA 0x31
#define LANG_TSWANA 0x32
#define LANG_VENDA 0x33
#define LANG_XHOSA 0x34
#define LANG_ZULU 0x35
#define SUBLANG_AZERI_CYRILLIC 0x02
#define SUBLANG_CHINESE_SINGAPORE 0x04
#define SUBLANG_CHINESE_SIMPLIFIED 0x02
#define SUBLANG_NEUTRAL 0x00
#define SUBLANG_SERBIAN_CYRILLIC 0x03
#define SUBLANG_UZBEK_CYRILLIC 0x02
#include <host/pshpack2.h>
typedef struct tagBITMAPFILEHEADER {
WORD bfType;