* [src] Generate a define for each framework for every platform.
Take our list of frameworks per platform, and generate a list of conditional
compiler constants that states that a framework exists for a particular
platform.
Basically generate a list of `-d:HAS_<FRAMEWORK>` for each platform.
This makes it possible to do this:
#if HAS_COREMEDIA
using CoreMedia;
#endif
instead of this:
#if (PLATFORM1 || PLATFORM2) && !PLATFORM3 || PLATFORM4 || BUT_MAYBE_IF_ITS_FRIDAY
using CoreMedia;
#endif
Which makes it much easier when adding new platforms (say Mac Catalyst), or
when a framework is added to an already existing platform.
I've included a few examples of how it would end up looking. Changing all the
code to use these new defines is not the goal (nor is it that these defines
should always be used: sometimes they make most sense, sometimes they don't).
* Use the new defines when building OpenTK-1.0.dll as well.
This includes:
* 32-bit version of Xamarin.Mac.dll and OpenTK.dll
* XamMac.dll and XamMac.CFNetwork.dll
* 32-bit versions of the runtime libraries (libxammac.a and friends).
* 32-bit version of the partial static library for Xamarin.Mac.
* Classic support in the generator.
We still ship a few Classic files so that Visual Studio for Mac continue to detect that Xamarin.Mac is installed (otherwise VSfM won't open Classic projects, which makes it impossible to use the migration wizard).
This makes our build slightly faster.
Partial fix for #6300.
This commit 7623ca9ec8
removed /nologo from the general SYSTEM_CSC declaration because
it was not usable that way in every case where csc was used. This
commit removes the spam fest output from src build.
* Remove more usage of mcs across the build and tests
* Fix -o[ut] mcs/csc argument difference
* Fix OpenTK.[dll.mdb|pdb]
* Complete some MCS|CSC renames
* Fix SYSTEM_CSC not to have a default option since it's not usable that way in every case (and most of them already deal with that option)
* Do not rename a variable used by mono itself
* Un-renamed two other variables
* Fix copying pdb
* Generate debug symbols for *.BindingAttributes.dll and copy .mdb for the old XamMac binary version
* Newer csc-compiled XamMac.BindingAttributes.dll have .pdb while the old, mcs-compiled binary cached, version has a .mdb
* Fix msc -> mcs typo.
You were the preprocessor we wished C# had natively
Removing PMCS requires these changes:
* Remove XamCore from src/
* Remove XamCore from tools/
* Remove XamCore from runtime/
* nint/nuint enum conversion
* _compat_ enum conversion
* NSAction conversion
* Hand fix single API incorrectly converted by PMCS to unbreak compatibility
- Due to a bug in PMCS, the nuint was incorrectly converted in this API.
- However, as that ship as sailed, we must "fix" it until XAMCORE_4_0
* Update readme
* Bump macios-binaries