libmusicbrainz
libmusicbrainz copied to clipboard
libmusicbrainz Visual Studio support
Since I've tested these changes only in Visual Studio 2010, I've added comments about the risk posed by each (to compilation/operation in other environments).
- Tweaking src/CMakeLists.txt to add some project-wide defines for the musicbrainz5 project - low risk as this applies only to VS
- Adding a version of CQuery::WaitRequest() which works on Windows platforms - low risk as it (and its associated includes) are confined to _MSC_VER #ifdefs
- Reinstating the MB_API #define which used to exist in an older version of musicbrainz. This is a slightly modified version which only has any effect when _WIN32 or _WIN64 are defined. The original version also took effect when GCC_HASCLASSVISIBILITY was defined. Low risk.
- Annotating class declarations and MusicBrainz:: operator << function with MB_API to ensure they're exported from the musicbrainz5 DLL. Including defines.h where needed in a subset of these files to ensure that the MB_API macro is defined where it's used.
- Annotating C functions in .inc files with MB_API. Low risk.
- Replacing forward declaration of CMedium in MediumList.h with an include. Doing the same for RelationList.h, SecondaryTypeList.h and ISWCList.h. Small change, but medium risk as it affects all platforms.
I've made a comment on commit 7add92a, not sure if you'll be notified about that so I'm making another comment here.