The goal of this MR is to allow the use of Wine’s logging functions by ObjC code (including from the main thread or other non-Wine threads).
winemac’s ObjC code has almost no logging; often the first task when working on an issue is to add temporary logging traces to the ObjC code. By making the full ERR/WARN/TRACE/FIXME and debug channel functionality available, we can add TRACEs to delegate methods, etc. and put them in the right channels.
Including Wine and Win32 headers in ObjC code does need a workaround for BOOL, which is both an ObjC and Win32 type. Part of the solution is to use the C99 ‘bool’ type wherever possible. Otherwise, BOOL is #defined to WINBOOL while Win32 headers are #included, and must be used in function signatures if a Win32 BOOL is needed.
Creating a debug_info for non-Wine threads was straightforward, though with the limitation that timestamp/pid/tid are not supported.
Note that previously macdrv_cocoa.h was included by both C and ObjC files, but macdrv.h was only included by C files. macdrv.h is now included by ObjC files as well, and merging the two header files can be done next.