Linux build fix
On linux, clang is unable to find the Cast() function used in the
templated destroy() function unless it has already been defined
before the template function. This forces us to make sure all
Cast() functions are available, but simply adding the vulkan objects'
header files in VkMemory.h would cause a circular dependency, which,
while it would be properly guarded by the preprocessor directives,
wouldn't guarantee any include order, due to the nature of circular
dependencies. So, to fix the issue, a new header file, called
VkDestroy.h was added, which can depend on all vulkan objects' header
files without creating a circular dependency.
Also fixed some warnings.
Change-Id: I1f343a8c476d6308d4555009848a234b0695661e
Reviewed-on: https://swiftshader-review.googlesource.com/c/21668
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Reactor/Reactor.vcxproj b/src/Reactor/Reactor.vcxproj
index 8b54ce5..b26b32f 100644
--- a/src/Reactor/Reactor.vcxproj
+++ b/src/Reactor/Reactor.vcxproj
@@ -124,6 +124,7 @@
<ExceptionHandling>false</ExceptionHandling>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
@@ -150,6 +151,7 @@
<TreatWarningAsError>true</TreatWarningAsError>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
@@ -180,6 +182,7 @@
<TreatWarningAsError>true</TreatWarningAsError>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
@@ -208,6 +211,7 @@
<FloatingPointExceptions>false</FloatingPointExceptions>
<TreatWarningAsError>true</TreatWarningAsError>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
@@ -240,6 +244,7 @@
<TreatWarningAsError>true</TreatWarningAsError>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
@@ -271,6 +276,7 @@
<FloatingPointExceptions>false</FloatingPointExceptions>
<TreatWarningAsError>true</TreatWarningAsError>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
diff --git a/src/Reactor/ReactorUnitTests.vcxproj b/src/Reactor/ReactorUnitTests.vcxproj
index 0471ba6..3a89929 100644
--- a/src/Reactor/ReactorUnitTests.vcxproj
+++ b/src/Reactor/ReactorUnitTests.vcxproj
@@ -104,6 +104,7 @@
<AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\subzero\src\;$(SolutionDir)third_party\subzero\unittest\;$(SolutionDir)third_party\llvm-subzero\include\;$(SolutionDir)third_party\llvm-subzero\build\Windows\include;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -121,6 +122,7 @@
<AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\subzero\src\;$(SolutionDir)third_party\subzero\unittest\;$(SolutionDir)third_party\llvm-subzero\include\;$(SolutionDir)third_party\llvm-subzero\build\Windows\include;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -140,6 +142,7 @@
<AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\subzero\src\;$(SolutionDir)third_party\subzero\unittest\;$(SolutionDir)third_party\llvm-subzero\include\;$(SolutionDir)third_party\llvm-subzero\build\Windows\include;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -161,6 +164,7 @@
<AdditionalIncludeDirectories>$(SolutionDir)third_party\googletest\googletest\include\;$(SolutionDir)third_party\googletest\googletest\;$(SolutionDir)third_party\subzero\src\;$(SolutionDir)third_party\subzero\unittest\;$(SolutionDir)third_party\llvm-subzero\include\;$(SolutionDir)third_party\llvm-subzero\build\Windows\include;SubmoduleCheck;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>gtest/gtest.h</ForcedIncludeFiles>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
diff --git a/src/Reactor/Subzero.vcxproj b/src/Reactor/Subzero.vcxproj
index 1ea0eab..29233b2 100644
--- a/src/Reactor/Subzero.vcxproj
+++ b/src/Reactor/Subzero.vcxproj
@@ -100,6 +100,7 @@
<ForcedIncludeFiles>src/IceTypes.h</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -119,6 +120,7 @@
<ForcedIncludeFiles>src/IceTypes.h</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -140,6 +142,7 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -167,6 +170,7 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
diff --git a/src/Reactor/SubzeroLLVMDependencies.vcxproj b/src/Reactor/SubzeroLLVMDependencies.vcxproj
index 96f16ec..8b951e3 100644
--- a/src/Reactor/SubzeroLLVMDependencies.vcxproj
+++ b/src/Reactor/SubzeroLLVMDependencies.vcxproj
@@ -94,6 +94,7 @@
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -106,6 +107,7 @@
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -120,6 +122,7 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -138,6 +141,7 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<TreatSpecificWarningsAsErrors>4018;5038;4838</TreatSpecificWarningsAsErrors>
+ <AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>