Fix compiler detection being used as platform detection. #189
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, the compiler is being used to detect the target platform. The MSVC compiler forced a Windows platform, and Clang/GCC was used for OSX, Linux and ARM. Compiling with Clang on Windows was impossible as it would not detect the correct platform.
My pull request separates platform and compiler detection to make them independent of each other. The Windows platform is now detected based on the presence of
WIN32
(and its counterparts) rather than the MSVC compiler. This method also detects 32 and 64 bit Windows, unlike before which always assumed 64 bit. The addition of theOPTICK_WINDOWS
macro should be used instead ofOPTICK_MSVC
wherever the Windows platform is wanted instead of the compiler. The compiler detection has been separated from the platform detection which definesOPTICK_MSVC
orOPTICK_GCC
(the same macros as before) depending on the compiler.I have gone through the codebase changing out any uses of
OPTICK_MSVC
that refer to the Windows platform toOPTICK_WINDOWS
.I have successfully tested building the D3D12 and Vulkan samples on my Windows machine with MSVC. And have compiled a DLL using Clang on Windows.