diff --git a/dev/dll/pch.h b/dev/dll/pch.h index 9f52cc7861..80a0a48172 100644 --- a/dev/dll/pch.h +++ b/dev/dll/pch.h @@ -71,3 +71,216 @@ #undef GetCurrentTime #include "CppWinRTIncludes.h" + +#ifndef BUILD_WINDOWS +// This function is a compile time optimization. These GUID calculations are very expensive (each takes about .5-1s to compile) +// and many appear in multiple compilation units so the work is duplicated across invocations of the compiler. I used the +// MSVC compiler option "/d1reportTime" to get a dump of all the work and then searched for "pinterface_guid" invocations to +// determine the set of things to put here. +void specialize_guids() +{ + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of >>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of >>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); + winrt::guid_of>(); +} +#endif