Commit graph

1360 commits

Author SHA1 Message Date
Richard Pospesel
c7d68454af widl: Refactor to have array type's element use decl_spec_t rather than type_t.
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:03 +02:00
Richard Pospesel
1ffb6494db widl: Change struct _var_t's type member to a struct _decl_spec_t.
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:00 +02:00
Richard Pospesel
28715ce34e widl: Use FC_CHAR rather than FC_BYTE for boolean typedef to match midl.exe output.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47041
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-20 09:05:52 +02:00
Alexandre Julliard
61680b4449 winecrt0: Provide our own setjmp/longjmp functions for exception handling.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-18 23:51:51 +02:00
Zebediah Figura
fcb96cf845 widl: Remove the unused "indent" parameter from write_type_tfs().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-14 09:15:59 +02:00
Zebediah Figura
0afbcee924 widl: Mark unions, user types, and ranges as IsSimpleRef.
This fixes a regression introduced by 02976b655a.
That patch should only have affected arrays.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-14 09:15:55 +02:00
Alexandre Julliard
60df3b14b5 include: Make the Wine exception handlers cdecl.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-30 15:04:06 +02:00
Zebediah Figura
bb0e8059f0 widl: Non-top-level conformant arrays are always [ref] by default.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-29 11:45:37 +02:00
Zebediah Figura
8e7fefe3d8 widl: Write array pointers as FC_OP pointers if appropriate.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47285
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-29 11:45:37 +02:00
Zebediah Figura
55a0ec420f widl: Remove an unused variable.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-29 11:45:37 +02:00
Zebediah Figura
3c4d0bf4e3 widl: Also allocate top-level pointers to arrays as on-stack in -Oicf mode.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47285
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-29 11:45:37 +02:00
Zebediah Figura
02976b655a widl: Use IsSimpleRef only for explicitly declared arrays.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47285
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-29 11:45:37 +02:00
Zebediah Figura
ead21a1bdd widl: Fix proxy vtbl generation in -Oi mode.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-21 18:08:37 +02:00
Alexandre Julliard
5ea4d5971b widl: Use %define parse.error verbose instead of %error-verbose.
The latter is deprecated and causes warnings.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-23 23:50:45 +02:00
Zebediah Figura
6c64d02117 widl: Correctly set the import library offset for all imported types.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47031
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-18 18:45:35 +02:00
Francois Gouget
069ce3b776 widl: A spelling fix in a variable name.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-15 20:04:22 +01:00
Piotr Caban
8b24bc95b9 winebuild: Recognize armv7a target.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-22 18:22:21 +01:00
Jacek Caban
83b9438029 widl: Fix handling context handle return type in mixed mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-30 18:32:36 +01:00
Jacek Caban
759a3bf34d widl: Check function return values for additional prototype types.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 17:12:13 +01:00
Jacek Caban
d2a8994d99 widl: Default to input param if [out] nor [in] attribut is specified in get_contexthandle_flags.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-24 16:26:02 +01:00
Jacek Caban
895d04623c widl: Fix context handle as return value handling.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-24 16:26:00 +01:00
Jacek Caban
28389a06f7 widl: Use public HANDLE_PARAM_IS_* flags.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:35:14 +01:00
Jacek Caban
7841a75743 widl: Fix HANDLE_PARAM_IS_RETURN flag handling.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:35:07 +01:00
Józef Kucia
b7402ddbbe widl: Guard RPC includes with #ifdef _WIN32.
This makes it easier to use header files generated by widl without
Windows headers.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-20 10:11:11 +01:00
Alexandre Julliard
f67301e9ec widl: Always generate files for the target platform only.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-14 23:11:31 +01:00
Jacek Caban
a514aa7653 widl: Don't make proxy vtbl const in interpreted mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:21:52 +01:00
Jacek Caban
da6b0ca6e6 widl: Write async interface IIDs to _i.c file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:21:52 +01:00
Jacek Caban
fb5d6c672f widl: Add support for serialization functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban
dc03ca5e15 widl: Write serialize function declarations in header.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban
ed11765665 widl: Write type string for serialized types.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban
90748c581b widl: Add basic acf parser implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban
d6b76df314 widl: Preprocess and attempt to parse provided ACF file.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban
1db0ad9798 widl: Add -acf command line option.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban
2ffd106b9b widl: Make MIDL_DEFINE_GUID more compatible with midl.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-09 21:08:09 +01:00
Jacek Caban
824d513585 widl: Generate async interface table.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:40:20 +01:00
Jacek Caban
89a1dade80 widl: Support async interfaces proxy.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:40:19 +01:00
Jacek Caban
3a8dbbb634 widl: Use for_each_iface in get_size_procformatstring.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:40:17 +01:00
Jacek Caban
212cffbf99 widl: Use for_each_iface in process_tfs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:40:16 +01:00
Jacek Caban
53e54833f6 widl: Introduce for_each_iface helper and use it in write_procformatstring.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:40:15 +01:00
Jacek Caban
069d7b02b7 widl: Support async interfaces in headers generation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:40:13 +01:00
Jacek Caban
b467f2de9b widl: Create type for async variant of an interface with async_uuid attribute.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:40:11 +01:00
Jacek Caban
b78de971f6 widl: Check for actual function name when handling call_as attribute.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 17:39:34 +01:00
Zebediah Figura
66f46f8182 widl: Correctly handle conformant arrays in clear_output_vars().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-02 15:17:52 +01:00
Jacek Caban
511b50e7bf widl: Ignore -robust command line option.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-01 21:50:57 +01:00
Jacek Caban
2761fc91d0 widl: Add __int32 type support.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-01 21:50:57 +01:00
Zebediah Figura
76a665a1c6 widl: Fix FC_ALLOCED_ON_STACK for interpreted stubs.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-01 12:04:41 +01:00
Zebediah Figura
481c408a02 widl: Only mark simple [out] pointers as on-stack if they are [ref] pointers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-01 12:04:38 +01:00
Alexandre Julliard
c34e245137 widl: Support generating multiple typelibs into the same resource file.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-16 13:48:36 +02:00
Zebediah Figura
b0c5a77e26 widl: Fix -Oicf marshalling of pointers to arrays.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-11 23:59:08 +02:00
Zebediah Figura
cfab3111c2 widl: Handle typedef'd arrays.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-10 17:44:05 +02:00
Zebediah Figura
65610a4c94 widl: Fix detection of SAFEARRAY pointers when writing array pointers.
This code was introduced in 7d1e3691, but that commit did not account for
pointers to normal C arrays.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-10 17:44:02 +02:00
Zebediah Figura
6f97103733 widl: Correctly generate headers for nested arrays and pointers.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 12:24:56 +02:00
Zebediah Figura
f12cc887f8 widl: Properly handle nesting of pointers and arrays when parsing.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 12:24:24 +02:00
Zebediah Figura
8f463a575d widl: The default pointer attribute for an array is always ref.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 12:23:35 +02:00
Zebediah Figura
8118a45a6a widl: Remove dead code.
MIDL doesn't warn on this, and it's not a particularly salient mistake to make.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 12:19:27 +02:00
Zebediah Figura
a2d0038045 widl: Check for positive array dimension when parsing array.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 12:19:26 +02:00
Zebediah Figura
bd37ddfa96 widl: Allow all dimensions of an array to be sizeless.
MIDL achieves this by setting the size of the inner arrays to a constant
value. widl actually already handles this (but uses 0 instead of 1.)

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-09 12:19:22 +02:00
Jacek Caban
bc6c2eb907 widl: Allow defaultvalue() attribute on any pointer type.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Jacek Caban
68c43a5ad9 widl: Split write_value for string and int values.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard
68cfa7fd03 widl: Silence a gcc warning.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 10:49:06 +02:00
Zebediah Figura
f9c8c20298 widl: Use publicly defined NDR constants.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 22:13:27 +02:00
Zebediah Figura
50a7b239bd widl: Generate correct size and alignment for all types.
Using type_memsize_and_alignment() directly instead of reimplementing it.

Also fix the generated tests in oleaut32 to reflect correct sizes for 64-bit
typelibs.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 10:07:10 +02:00
Zebediah Figura
d5a1d6134b widl: Prefer types defined in the same typelib to imported types.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-30 22:26:49 +02:00
Zebediah Figura
8c968f774c widl: Don't remove the FDUAL flag from non-dispatchable interfaces.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 17:13:05 +02:00
Zebediah Figura
413821f8b1 widl: Properly implement syntax 2 dispinterfaces.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 17:13:05 +02:00
Zebediah Figura
3e7a5301f2 widl: Try to import typedefs instead of redefining them.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 17:13:05 +02:00
Zebediah Figura
947ff4ba46 widl: Size of an encapsulated union doesn't include the tag.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-12 13:20:41 +02:00
Zebediah Figura
6c942496a9 widl: Generate correct alignment for encapsulated union tags.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-12 13:20:33 +02:00
Alexandre Julliard
832a40109e makefiles: Make the directory specifications a bit more standard.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-21 12:25:26 +01:00
Józef Kucia
1d0ba302d9 widl: Reformat do_import().
Use 4-space indents.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-29 19:29:30 +01:00
Józef Kucia
ba6b020b9f widl: Increase max import depth.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-29 19:28:36 +01:00
Austin English
500bcfb1c0 widl: Move WineHQ URLs to https.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-01 09:23:40 +01:00
Dmitry Timoshkov
b63274f30f widl: Generate header macros even for aggregate return methods.
A generated macro has a clear suggestion what to do (#define WIDL_C_INLINE_WRAPPERS)
instead of completely omitting the macro and leaving one wondering what is going on.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-15 20:20:13 +01:00
Henri Verbeet
b42a15513e widl: Handle C++ aggregate returns in a MSVC compatible way.
This mainly affects 64-bit winelib applications, and potentially mingw-w64
usage of the Wine headers. As explained in commit
fabfa59aea, MSVC returns aggregates through an
implicit parameter immediately after the this/interface pointer. GCC's
"ms_abi" attribute is supposed to match this, but unfortunately current
versions of g++ (confirmed up to at least g++ 6.3) place the implicit return
pointer before the this/interface pointer. See also
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52792.

This commit takes an approach similar to the earlier commit
fabfa59aea: For ABI compatibility the return
pointer is listed as an explicit parameter in the vtbl entry, while an inline
helper is provided for source code compatibility.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-24 18:58:30 +02:00
Alistair Leslie-Hughes
084fa63e60 widl: Only generate Proxy Stubs when functions have the call_as attribute.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-11 19:48:25 +02:00
Jacek Caban
fbdf119e2c widl: Try to find imported typelib using .tlb extension if it wasn't specified.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-16 15:34:04 +02:00
Huw Davies
5a06b6b035 widl: Add missing width and alignment for VARIANT.
Spotted by André Hentschel.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-27 12:38:25 +01:00
André Hentschel
028b2bddfc widl: Initialize decoded_size.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-23 11:01:50 +01:00
Jacek Caban
2ff2792fc4 widl: Accept known type as library name.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:47 +01:00
Jarkko Korpi
bb9b2f33ae widl: Fix overflow when left-shifting.
Signed-off-by: Jarkko Korpi <jarkko_korpi@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-23 22:56:58 +09:00
Francois Gouget
44468e8536 tools: Assorted comment spelling fixes.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 14:57:30 +09:00
Sergei Bolotov
376daa91d8 widl: Support for toggling and checking status for warnings, support for warning 2368.
Signed-off-by: Sergei Bolotov <bolotov.s.s@yandex.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-12 12:54:09 +09:00
Sergei Bolotov
646dfe746d widl: Handle "midl_pragma warning" statement in parser.
Signed-off-by: Sergei Bolotov <bolotov.s.s@yandex.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-12 12:27:17 +09:00
Alexandre Julliard
3602962275 makefiles: Generate dependencies for static libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-23 19:38:37 +09:00
Dmitry Timoshkov
b53c5b30b2 widl: Fixup the defaultvalue(BSTR) expression type like midl does.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-30 23:16:52 +09:00
Alexandre Julliard
87dacc4e11 widl: Disable a noisy warning.
This could be re-enabled once there's a mechanism to avoid the warning
when building the corresponding test case.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-06 01:13:40 +09:00
Dmitry Timoshkov
42c328ddf4 widl: Ignore assignment of a duplicate uuid.
MSDN KB285146 article describes this behaviour, and the tests confirm
that.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-05 20:22:36 +09:00
Dmitry Timoshkov
58b0788a2d widl: Attributes of the alias are supposed to replace attributes of a tag in the typelib.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-05 18:32:01 +09:00
Dmitry Timoshkov
ded915aa7c widl: Avoid generating duplicate typelib entries for structure tag names.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-05 18:31:53 +09:00
Dmitry Timoshkov
3cd67463bf widl: Attribute uuid() takes precedence over 'hidden'.
This means that definition like

[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753900),hidden]
typedef struct _m { int m1; } m;

makes both '_m' and 'm' appear in the typelib, and the tests confirm that.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-05 18:31:45 +09:00
Dmitry Timoshkov
f7581c763d widl: Avoid adding duplicate type definitions if tag and typedef names are the same.
Fix handing of the following .idl snippet:

typedef [uuid(b14b6bb5-904e-4ff9-b247-bd361f7a0001)]
struct g { int g1; } g;

[uuid(b14b6bb5-904e-4ff9-b247-bd361f7a0002)]
interface test_iface : IUnknown
{
    HRESULT test([in] g *ptr);
}

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-05 18:31:32 +09:00
Dmitry Timoshkov
f16396ceec widl: Avoid warnings when being added dispatch guids already present in a typelib.
Silence warnings about adding a duplicate uuid when generating
stdole2.tlb.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:23 +09:00
Sebastian Lackner
736beff9c6 widl: When adding an interface typedef do check whether it has been already added while resolving the parent interface.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:23 +09:00
Alexandre Julliard
da340169d6 makefiles: Generate rules for installing programs.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 21:20:06 +09:00
Alexandre Julliard
7626728b56 makefiles: Generate rules for building tool binaries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-27 14:47:27 +09:00
Dmitry Timoshkov
e6e7055c0b widl: Add support for unions to the typelib generator.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-26 23:03:40 +09:00
Dmitry Timoshkov
fb5293f0ce widl: Do not create duplicate type info entries when tag and typedef names are the same.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2015-10-06 14:28:23 +09:00
Dmitry Timoshkov
7d1e3691ab widl: Add special handling for pointers to arrays in the typelib generator. 2015-09-10 17:22:43 +09:00
Jacek Caban
7c29a53208 widl: Added support for namespaced structs. 2015-08-13 15:03:22 +09:00
Jacek Caban
8d43c54ed2 widl: Allow [version] attribute to be used on structs in winrt mode. 2015-08-13 15:03:20 +09:00
Jacek Caban
88987c0a95 widl: Added support for namespaced enums. 2015-08-07 23:50:48 +09:00
Jacek Caban
a99bb3468a widl: Don't allow coclass declaration in winrt mode. 2015-08-07 23:50:48 +09:00
Jacek Caban
21740b5e15 widl: Added support for -ns_prefix option. 2015-08-05 23:42:45 +09:00
Jacek Caban
a9503166fe widl: Added widl-specific winrt pragma. 2015-08-03 20:50:33 +02:00
Jacek Caban
cccbb4ebe8 widl: Properly handle namespaces in write_uuid_decl. 2015-07-31 14:39:34 +02:00
Jacek Caban
83e197df0f widl: Use proper names for namespaced interfaces in C declaration. 2015-07-31 14:39:27 +02:00
Jacek Caban
99d296b6fe widl: Declare C++ interfaces in namespaces if needed. 2015-07-31 14:39:20 +02:00
Jacek Caban
e50866ae10 widl: Write proper C++ forward declarations for interfaces inside namespace. 2015-07-31 14:39:13 +02:00
Jacek Caban
867b0f8278 widl: Use proper macro name for forward declarations of interfaces inside a namespace. 2015-07-31 14:38:58 +02:00
Jacek Caban
ddc493a805 widl: Keep track of namespace in parser and beginning namespace lookup implementation. 2015-07-31 14:38:34 +02:00
Jacek Caban
fc761cb935 widl: Renamed --rt option to --winrt for midl compatibility. 2015-07-30 23:50:43 +02:00
Jacek Caban
dd58fcc10e widl: Don't output C++ default value if the argument is followed by another without default value. 2015-07-28 09:53:48 +02:00
André Hentschel
04a9c94250 widl: Remove unused initializer (Clang). 2015-07-22 07:23:47 +02:00
Jarkko Korpi
abf4d5910f widl: Increase buffer size in typegen.c. 2015-07-14 14:57:30 +09:00
Gerald Pfeifer
3a64eb2c4a widl: Fix indentation in the EXPR_ADDRESSOF case in resolve_expression. 2015-06-30 17:40:26 +09:00
Francois Gouget
8a63982f73 widl: Remove unneeded NONAMELESSXXX directives. 2015-04-03 11:22:06 +09:00
André Hentschel
900e7c5d65 widl: Fix compiler warnings with flag -Wunused-macros. 2014-12-10 13:31:01 +01:00
Nikolay Sivov
c27af4774e widl: Generate method macros/wrappers for overridden methods. 2014-10-14 14:15:30 +09:00
Henri Verbeet
fabfa59aea widl: Handle aggregate returns in a MSVC compatible way.
Aggregates are returned through an implicit parameter after the this/interface
pointer. Note that this follows the C++ convention, affected methods are not
callable from C with the Microsoft headers.
2014-09-08 11:34:05 +02:00
Dmitry Timoshkov
1b6b04e3a8 widl: Correct the condition when to use new code path which avoids writing negative offsets in the pointer description. 2014-04-03 11:11:01 +02:00
Dmitry Timoshkov
a333c6584d widl: Add support for an array of strings to write_string_tfs. 2014-04-02 15:46:49 +02:00
Dmitry Timoshkov
1dbcdee326 widl: Don't call write_embedded_types if an array element is a string. 2014-04-02 15:46:47 +02:00
Dmitry Timoshkov
bde38bebe9 widl: Avoid generating negative offsets for conformant arrays of strings. 2014-04-02 15:46:45 +02:00
Dmitry Timoshkov
1845d10c3e widl: Pass type attributes from write_array_tfs to write_array_element_type.
This allows to differentiate strings and write appropriate rpc type
(FC_C_C[W]STRING instead of FC_[W]CHAR).
2014-04-02 15:46:43 +02:00
Dmitry Timoshkov
eb54b5b4df widl: Pass type attributes from write_array_tfs to write_pointer_description.
This allows to differentiate strings and write appropriate rpc type
(FC_C_C[W]STRING instead of FC_[W]CHAR).
2014-04-02 15:46:41 +02:00
Dmitry Timoshkov
e6d585a6b2 widl: Move is_void(), is_declptr() and is_conformant_array() to header.h and make them inline. 2014-03-20 10:44:32 +01:00
Dmitry Timoshkov
ae843427ed widl: Unify indentation of comments. 2014-03-19 11:36:33 +01:00
Dmitry Timoshkov
e809f0bd8c widl: Move is_ptr() and is_array() to header.h and make them inline. 2014-03-19 11:36:12 +01:00
Nikolay Sivov
ea9e7b6318 widl: Fix default value types. 2014-03-18 11:40:08 +01:00
Nikolay Sivov
826980d7f4 widl: Fix duplicate typeinfo being written to typelib for enums. 2014-03-11 10:28:46 +01:00
Alexandre Julliard
a2683dca64 widl: Ignore unknown -m target options. 2014-02-12 19:15:22 +01:00
Nikolay Sivov
cbf55d8251 widl: Uuid attribute is allowed for 'struct'. 2014-01-28 10:52:09 +01:00
Nikolay Sivov
c46debeeeb widl: Fix pointer size for SYS_WIN64 typelibs.
The fact that test data was wrong was hidden by broken widl typelib,
and same test typelib was used on windows so we never get proper test
results. Standard IUnknown/IDispatch that live in system stdole2.tlb
are also tested now.
2014-01-27 14:13:54 +01:00
Alexandre Julliard
509364e1dd makefiles: Get rid of Make.rules. 2014-01-14 12:18:02 +01:00
Jacek Caban
0df819eecf widl: Make identifiers file more compatible with midl. 2014-01-09 12:28:43 +01:00
Alexandre Julliard
0d533cf0bd makefiles: Allow define arguments to be specific to a single file. 2014-01-07 12:20:25 +01:00
Alexandre Julliard
ce25c89585 makedep: Don't expand variable references that use ${}. 2014-01-04 20:33:57 +01:00
Alexandre Julliard
092f37fc2d makefiles: Include program files in the all: target. 2013-12-31 19:07:49 +01:00
Alexandre Julliard
1047e0474d makefiles: Leave it to install-sh to create destination directories. 2013-12-26 14:35:15 +01:00
Alexandre Julliard
9e307f268e widl: Determine the output type from the file name if not specified explicitly. 2013-12-26 13:35:45 +01:00
Frédéric Delanoy
120dac41a1 widl: Constify a character string. 2013-12-20 10:51:17 +01:00
Alexandre Julliard
e2df0ab856 makefiles: Generate rules from makedep for building and installing man pages. 2013-11-18 11:40:00 +01:00
Jacek Caban
318931bd46 widl: Include resource id in typelib path if not default. 2013-11-12 19:06:42 +01:00
Alexandre Julliard
cc02e15220 widl: Add support for #pragma directives. 2013-11-04 17:41:11 +01:00
Alexandre Julliard
8d5b8b1346 makefiles: Define __WINESRC__ globally. 2013-10-07 10:48:04 +02:00
Jacek Caban
7e4462e28e widl: Generate names for imported nameless typedefs. 2013-08-29 19:56:18 +02:00
Jacek Caban
2510ec477b widl: Increase version number stored in custom data. 2013-08-29 19:56:18 +02:00
Jacek Caban
0277512350 widl: Include string info in tlb custom data. 2013-08-29 19:56:18 +02:00
Kai Tietz
f05853b28a widl: Add async_uuid attribute base support in parser. 2013-08-19 12:53:19 +02:00
Kai Tietz
da282872ff widl: Allow version-attribute on type and enum. 2013-08-19 12:53:18 +02:00
Kai Tietz
f58353ecb6 widl: Allow inputsync-attribute on functions. 2013-08-19 12:53:17 +02:00
Kai Tietz
94c94260ea widl: Allow hidden-attribute on type. 2013-08-19 12:53:16 +02:00
Kai Tietz
0d4f6bf258 widl: Allow hexadecimal argument for version-attribute. 2013-08-19 12:53:15 +02:00
Kai Tietz
60beb40cb7 widl: Handle default value for public vs hidden attribute. 2013-08-19 12:53:14 +02:00
Kai Tietz
d8318121a2 widl: Allow attributes before and after typedef-keyword. 2013-08-19 12:53:13 +02:00
Kai Tietz
499f05433a widl: Add RT's namespace keyword to scanner, and parser. 2013-08-19 12:53:12 +02:00
Kai Tietz
5ff7af708d widl: New option --rt for enabling rt's specific language extensions. 2013-08-19 11:30:30 +02:00
Alexandre Julliard
bda5a2ffb8 widl: Remove non-bison compatibility code. 2013-08-01 12:04:24 +02:00
Piotr Caban
e35a05b9a4 oleaut32: Name guids hash table segment in MSFT_SegDir struct. 2013-07-31 22:26:56 +02:00
Piotr Caban
f9e73f97a9 oleaut32: Name names hash table segment in MSFT_SegDir struct. 2013-07-29 15:00:59 +02:00
Alexandre Julliard
a93ee68f2e widl: Fix typo in man page. 2013-07-19 11:53:17 +02:00
Frédéric Delanoy
267422101a widl: Fix manpage formatting. 2013-07-17 20:30:50 +02:00
Alexandre Julliard
dcc97a186d Standardize the BUGS, AVAILABILITY and SEE ALSO sections across all man pages. 2013-07-16 20:48:05 +02:00
Alexandre Julliard
005565d90d makefiles: Make sure to install manpages for the install-lib and install-dev cases. 2013-07-02 19:39:30 +02:00
Alexandre Julliard
28ece74fd8 Use the official Microsoft definitions for Gaelic languages. 2013-06-19 20:09:51 +02:00
Alexandre Julliard
7ca08fee55 widl: Avoid short printf formats with int variables. 2013-06-17 13:34:40 +02:00
André Hentschel
478401dce7 widl: Remove SPARC and Alpha support. 2013-03-11 10:50:06 +01:00
Jacek Caban
ed50ce5efe widl: Allow shadowing imported types with typedef. 2013-02-26 18:18:31 +01:00
Piotr Caban
3d9454bc8f widl: Make it possible to set typelib resource id with id attribute. 2013-01-18 13:29:09 +01:00
André Hentschel
3ea316638d widl: Add ARM64 support. 2013-01-16 12:37:44 +01:00
Austin English
ecfb6539f6 widl: add_interface_typeinfo should not return a value. 2012-12-20 12:01:08 +01:00
Austin English
554a2ccb11 widl: write_array_element_type shouldn't return a value. 2012-12-20 12:01:02 +01:00
Alexandre Julliard
50835b4151 widl: Fix a typo in the man page. 2012-12-10 11:27:33 +01:00
Alexandre Julliard
756d33ddae widl: Print large enum constants in hex. 2012-11-23 18:06:07 +01:00
Jacek Caban
4d323d176c widl: Ignore -app_config option. 2012-11-07 13:55:48 +01:00
Jacek Caban
218b1951db widl: Define PROXY_DELEGATION in dlldata.c when needed. 2012-11-01 15:42:33 +01:00
Thomas Faber
52607ba66b widl: Use 'class' for coclass typedefs in C++. 2012-10-15 13:31:08 +02:00
Jacek Caban
430c3d0be2 widl: Fixed fwrite error handling. 2012-10-08 12:54:56 +02:00
Jacek Caban
da0f33370a widl: Alloc big enough buffer in dup_basename to handle registration suffix. 2012-10-08 12:54:55 +02:00
Jacek Caban
5cb75c525f widl: Fail with error on an attempt to inherit interface from itself. 2012-08-29 11:46:24 +02:00
Michael Stefaniuc
2c97f3fcb5 widl: Avoid FALSE:TRUE conditional expressions. 2012-08-15 12:15:13 +02:00
Nikolay Sivov
65f4184936 widl: Don't output method macro if name duplicates another method name. 2012-07-30 17:57:49 +02:00
Nikolay Sivov
0bc5e7a62a widl: Protect from duplicated method names in C-style vtable struct. 2012-07-30 17:57:49 +02:00
Nikolay Sivov
d54e9603b5 widl: Emit default argument values for cpp methods. 2012-07-26 13:40:44 +02:00
Jacek Caban
6b34eea6fc widl: Added an extension that uses inline functions instead of macros for C interface calls. 2012-07-26 12:17:25 +02:00
Jacek Caban
80d3055869 widl: Add IDL installation directory to include path. 2012-07-23 12:55:02 +02:00
Jacek Caban
42e77c849f widl: Added --help command line option. 2012-06-08 19:35:16 +02:00
Jacek Caban
76693d52c7 widl: Added support for nameless structs and unions. 2012-05-14 10:29:40 +02:00
Jacek Caban
718adc91fc widl: Make headers guards compatible with midl. 2012-03-08 19:22:45 +01:00
Jacek Caban
af2eba24b7 widl: Removed unused idfile_token. 2012-03-08 18:56:13 +01:00
Alexandre Julliard
42e583f1f6 widl: We no longer need to avoid windows.h in generated headers. 2012-01-20 15:59:02 +01:00
Alexandre Julliard
bf0c37d56a widl: Zero-initialize [out] structures and unions that contain pointers. 2011-12-13 18:59:15 +01:00
Andrew Talbot
7f27eb6a45 widl: Avoid right-shift of negative values. 2011-11-23 09:13:04 +01:00
Jacek Caban
c7602d51b3 widl: Define __REQUIRED_RPCNDR_H_VERSION__ in generated headers. 2011-09-22 19:51:49 +02:00
Alexandre Julliard
977e15b762 widl: Store the type format offset for function parameters in the variable object. 2011-09-19 12:56:25 +02:00
Alexandre Julliard
e2a92702ed widl: Pass variables around instead of types for function parameters. 2011-09-19 11:54:42 +02:00
Alexandre Julliard
c31948a775 widl: Make the function return value a variable. 2011-09-17 16:09:47 +02:00
Alexandre Julliard
05ff9dfeb1 widl: Include string formats in the element description for complex arrays. 2011-09-16 21:08:54 +02:00
Bernhard Loos
00ab883644 widl: Also create proxies/stubs for interfaces marked with oleautomation. 2011-09-06 15:42:28 +02:00
Alexandre Julliard
8e15db40a8 widl: Don't output stubs for interfaces included in a typelib. 2011-09-06 15:42:16 +02:00