summaryrefslogtreecommitdiffhomepage
path: root/ovr_sdk_win_23.0.0/.msvc/common.props
diff options
context:
space:
mode:
Diffstat (limited to 'ovr_sdk_win_23.0.0/.msvc/common.props')
-rw-r--r--ovr_sdk_win_23.0.0/.msvc/common.props151
1 files changed, 151 insertions, 0 deletions
diff --git a/ovr_sdk_win_23.0.0/.msvc/common.props b/ovr_sdk_win_23.0.0/.msvc/common.props
new file mode 100644
index 0000000..2f9f8a3
--- /dev/null
+++ b/ovr_sdk_win_23.0.0/.msvc/common.props
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!--
+ Shared common variables which may be referenced in other parts of the build.
+ - OutRoot defines a common folder to place binary artifacts in.
+ - ObjRoot defines a common folder to place intermediate build artifacts in.
+ - BuildConfig is a string which can uniquely identify the build configuration. The string is a
+ superset of the $(Configuration)|$(Platform) tuple usually seen in VC++ builds, because it
+ also encodes the specific compiler and toolset version used.
+ As an example, msvc-v141-Debug-x64 is for the VS2017 toolchain, version 141, Debug
+ configuration, targeting x86-64.
+ clang-7.0.0-Release_LTO-x64, conversely, would be the clang toolchain, version 7.0.0,
+ Release_LTO configuration, targeting x86-64.
+ - GenDir is similar to OutDir or IntDir, which are well known folders used by MSBuild
+ for placing outputs and intermediates into, but is used by us for a location where
+ generated source can go, such as build time generated headers.
+ - VSDIR can be used for switching paths based on whether they correspond to VS2017 or
+ VS2015. This is mostly useful for importing the correct version of a project file
+ from an _dependency.props file that is used by both VS2015 and VS2017 projects. These
+ should only be legacy projects - new projects in ovrsource should use VS2017 unless
+ otherwise required.
+ -->
+ <PropertyGroup Label="UserMacros">
+ <OutRoot>$(ovrsource_root).build/bin</OutRoot>
+ <ObjRoot>$(ovrsource_root).build/obj</ObjRoot>
+ <BuildConfig>msvc-$(PlatformToolset)-$(Platform)-$(Configuration)</BuildConfig>
+ <!-- GenDir must have backslashes so the value can be referenced from .bat files -->
+ <GenDir>$(ovrsource_root).build\gen\$(BuildConfig)\$(ProjectName)\</GenDir>
+ <VSDIR Condition="'$(PlatformToolset)' == 'v141'">VS2017</VSDIR>
+ <VSDIR Condition="'$(PlatformToolset)' == 'v140'">VS2015</VSDIR>
+ </PropertyGroup>
+ <!--
+ These are 'well known' properties which define where MSBuild chooses to place outputs
+ and intermediates. IntDir is separated by $(ProjectName) to allow different projects
+ to selectively compile the same source, without trampling on each others intermediates.
+ -->
+ <PropertyGroup>
+ <OutDir>$(OutRoot)/$(BuildConfig)/</OutDir>
+ <IntDir>$(ObjRoot)/$(BuildConfig)/$(ProjectName)/</IntDir>
+ </PropertyGroup>
+ <!--
+ Base compilation settings which define defaults for all projects, debug and release builds.
+ - All builds have $(GenDir) inserted to the include path, to handle generated artifacts.
+ - OldStyle debug information embeds symbols into objects files and libs, so separate pdbs
+ are not needed nor produced until link time. This also generates better debug information
+ for optimized builds.
+ - SyncCThrow instructs the compiler to assume extern "C" code may throw C++ exceptions,
+ because sometimes a raw C interface may be backed by C++ code.
+ - FunctionLevelLinking is required to enable certain optimizations and incurs no penalty on
+ generated code.
+ - MinimalRebuild disables attempts by MSBuild to intelligently not rebuild source files which
+ had transitive headers changed, because it has been known to be buggy and under-rebuild at
+ times.
+ - MultiProcessorCompilation enables additional parallelization of the build process.
+ - SDLCheck enables additional compilation time warnings, and adds runtime security checks
+ around buffers to detect overruns from exploitation or accidents. Performance sensitive code
+ should selectively disable this, after appropriate measurement.
+ See https://msdn.microsoft.com/en-us/library/jj161081.aspx for more information.
+ - StringPooling instructs the compiler to coalesce all identical C string literals to a single
+ runtime instance. On older compilers, this was used to workaround codegen bugs, but is
+ essentially a free optimization.
+ -->
+ <ItemDefinitionGroup>
+ <ClCompile>
+ <AdditionalIncludeDirectories>$(GenDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ <ExceptionHandling>SyncCThrow</ExceptionHandling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MinimalRebuild>false</MinimalRebuild>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <SDLCheck>true</SDLCheck>
+ <StringPooling>true</StringPooling>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <!--
+ Debug builds additionally:
+ - Disable optimizations.
+ - Define _DEBUG.
+ - Use the debug static CRT.
+ -->
+ <ItemDefinitionGroup Condition="$(Configuration.Contains('Debug'))">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <!--
+ Release builds:
+ - Optimize for speed (/O2).
+ - Enable intrinsic functions. This allows the compiler to replace certain functions with
+ optimized assembly equivalents, instead of automatically compiled source implementations.
+ - Define NDEBUG.
+ - Use the release static CRT.
+ - Do not use Whole Program Optimization (different from profile guided optimization). This is
+ also known as Link Time Code Generation (LTCG), and LTO with clang. LTCG incurs significant
+ compilation and link time cost, and should only be used when it provides measureable
+ benefit. Additionally, at least one bug was experienced with older compilers and mixing LTCG
+ and non-LTCG code, so this is disabled by default.
+ The linker additionally adds some optimizations:
+ - COMDAT folding allows the linker to coalesce identical function bodies into a single
+ instance. This is especially useful for template function definitions which do not vary
+ based on the template arguments. FunctionLevelLinking is required for this optimization.
+ - OptimizeReferences allows the linker to discard code and data it decides are unused.
+ -->
+ <ItemDefinitionGroup Condition="$(Configuration.Contains('Release'))">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <!--
+ Support DLL CRT for projects which need or want it. Shipping code should use static CRT to
+ avoid system dependencies. We standardize the way to use the dll CRT to avoid integration
+ issues later.
+ -->
+ <ItemDefinitionGroup Condition="$(Configuration.Contains('Debug')) And $(Configuration.Contains('DllCrt'))">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="$(Configuration.Contains('Release')) And $(Configuration.Contains('DllCrt'))">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDll</RuntimeLibrary>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <!--
+ To support our sometimes deeply nested projects, we have to do transforms on the paths we pass
+ to cl.exe and link.exe, because these tools are still today restricted by MAX_PATH for inputs.
+ PathHacks.targets inserts a pre-build MSBuild target which attempts to shorten paths to be
+ under the limit by resolving relative paths to absolute ones.
+ -->
+ <Import Project="$(MSBuildThisFileDirectory)/PathHacks.targets" Condition="Exists('$(MSBuildThisFileDirectory)/PathHacks.targets')" />
+ <!-- Guard variable to prevent including this property sheet twice. -->
+ <PropertyGroup>
+ <__ovrsource_common>true</__ovrsource_common>
+ </PropertyGroup>
+ <ImportGroup Label="PropertySheets">
+ <!-- Internal build settings -->
+ <Import Project="$(MSBuildThisFileDirectory)/common_internal.props" Condition="Exists('$(MSBuildThisFileDirectory)/common_internal.props')" />
+ <!-- Recursively crawl directories above the project to find directory-level common.props overrides. -->
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), common.props))\common.props" Condition="Exists('$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), common.props))\common.props')" />
+ </ImportGroup>
+</Project>