[vcxproj] Explicitly specify intermediate and output directories
Avoids case-sensitivity issues, flattens the layout, no Win32 but x86 instead
Issue
MODIFY
dirs.proj
dirs.proj
<SolutionDir>$(MSBuildThisFileDirectory)</SolutionDir>
</PropertyGroup>
<ItemGroup>
- <ProjectFile Include="vcpkg\vcpkg.vcxproj"/>
<ProjectFile Include="vcpkglib\vcpkglib.vcxproj"/>
+ <ProjectFile Include="vcpkg\vcpkg.vcxproj"/>
<ProjectFile Include="vcpkgmetricsuploader\vcpkgmetricsuploader.vcxproj"/>
</ItemGroup>

MODIFY
vcpkg/vcpkg.vcxproj
vcpkg/vcpkg.vcxproj
<ImportGroup Label="Shared">
</ImportGroup>
<PropertyGroup Label="UserMacros" />
- <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <IntDir>$(SolutionDir)msbuild.x86.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x86.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)msbuild.x86.release\</OutDir>
+ <IntDir>$(SolutionDir)msbuild.x86.release\$(ProjectName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.release\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.release\</OutDir>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>

MODIFY
vcpkglib/vcpkglib.vcxproj
vcpkglib/vcpkglib.vcxproj
<ImportGroup Label="Shared">
</ImportGroup>
<PropertyGroup Label="UserMacros" />
- <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <IntDir>$(SolutionDir)msbuild.x86.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x86.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)msbuild.x86.release\</OutDir>
+ <IntDir>$(SolutionDir)msbuild.x86.release\$(ProjectName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.release\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.release\</OutDir>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

MODIFY
vcpkgmetricsuploader/vcpkgmetricsuploader.vcxproj
vcpkgmetricsuploader/vcpkgmetricsuploader.vcxproj
<ImportGroup Label="Shared">
</ImportGroup>
<PropertyGroup Label="UserMacros" />
- <PropertyGroup />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <IntDir>$(SolutionDir)msbuild.x86.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x86.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)msbuild.x86.release\</OutDir>
+ <IntDir>$(SolutionDir)msbuild.x86.release\$(ProjectName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.release\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.release\</OutDir>
+ </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>

MODIFY
vcpkgtest/vcpkgtest.vcxproj
vcpkgtest/vcpkgtest.vcxproj
<ImportGroup Label="Shared">
</ImportGroup>
<PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <IntDir>$(SolutionDir)msbuild.x86.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x86.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)msbuild.x86.release\</OutDir>
+ <IntDir>$(SolutionDir)msbuild.x86.release\$(ProjectName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.debug\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.debug\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <IntDir>$(SolutionDir)msbuild.x64.release\$(ProjectName)\</IntDir>
+ <OutDir>$(SolutionDir)msbuild.x64.release\</OutDir>
+ </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>

[vcxproj] Explicitly specify intermediate and output directories

Avoids case-sensitivity issues, flattens the layout, no Win32 but x86 instead
Issue #4586