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
fabfa59aea5c5b3201142382038beb3e76cb7567: 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