Permalink
Browse files

Clean windows build and unify output paths (#1599)

* Remove Setup and Azure projects from solution

* The Azure projects are not well-maintained; they need retargetting / rethinking
* The Setup project requires WiX installed, and this does not seem valuable to most people building VW

* Remove Azure dependency from C# Binding unit tests

* Enable command-line msbuild for vcpkg-dependent projects

* This depends on VcpkgIntegration environment variable / project
   property set to the .targets file from msbuild integration:
      (VcPkgRoot)/scripts/buildsystems/msbuild/vcpkg.targets.

   If it is not present, the behaviour will be as before this change,
   demanding VS-level integration.

* Simplify and rename vs static library project

* Rename vw_dynamic => vw_core
* Manually simplify the project and reconcile the outputs to
   $(SolutionDir)\out\<target\int>\...
* Update dependent projects

* Simplify vw executable project

* Enabled multi-threaded compilation
* Also adds $(ProjectName) to int-path to avoid collisions

* Fix "malformed xml in xmldoc comment" warning

* Simplify libvw project file

* Fix typo in vw exe project

* Simplify c_test project

* Simplify unit_test.vcxproj and unify output/intermediate paths

* Add xcopy step to place boost unit test dll

* Remove VisualLeakDetector-based projects

They do not currently build, and require an installed component to work
properly.

* Simplify vw clr project and unify outputs

* Remove unused deploy_vw project from build

* Remove unused DebugLeakCheck configuration

* Simplify C# projects and unify outputs

* Update for PR comments

* Update unittest project to pull the right package under x86

None of these change the behaviour of the build after the previous set
of changes, just removes non-building projects:
* Delete superfluous vcsproj files (for VLD integration)
* Remove VLD package reference
  • Loading branch information...
lokitoth authored and JohnLangford committed Sep 22, 2018
1 parent 3335c68 commit 285620eae372fdb7aeb081c044301acf36f53483
Showing with 753 additions and 4,292 deletions.
  1. +20 −130 c_test/c_test.vcxproj
  2. +0 −1 cluster/cluster.vcxproj
  3. +0 −155 cs/cli/cs_vld.vcxproj
  4. +0 −30 cs/cli/cs_vld.vcxproj.filters
  5. +0 −1 cs/cli/packages.config
  6. +0 −50 cs/cli/vld_clr.cpp
  7. +0 −37 cs/cli/vld_clr.h
  8. +2 −2 cs/cli/vowpalwabbit.h
  9. +13 −150 cs/cli/vw_clr.vcxproj
  10. +3 −13 cs/common/vw_common.csproj
  11. +4 −16 cs/cs/cs.csproj
  12. +2 −2 cs/cs_console/cs_console.csproj
  13. +3 −4 cs/cs_json/cs_json.csproj
  14. +3 −4 cs/cs_parallel/cs_parallel.csproj
  15. +2 −2 cs/cs_unittest_nofriend/cs_unittest_nofriend.csproj
  16. +0 −36 cs/leaktest/Properties/AssemblyInfo.cs
  17. +0 −38 cs/leaktest/TestLeak.cs
  18. +0 −1,555 cs/leaktest/TestWrapped.cs
  19. +0 −119 cs/leaktest/TestWrappedBase.cs
  20. +0 −135 cs/leaktest/cs_leaktest.csproj
  21. +6 −41 cs/test/cs_test.csproj
  22. +2 −12 cs/testcommon/cs_testcommon.csproj
  23. +2 −12 cs/testhelp/cs_testhelp.csproj
  24. +571 −571 cs/unittest/TestAzure.cs
  25. +2 −6 cs/unittest/cs_unittest.csproj
  26. +0 −297 deploy_vw/deploy_vw.vcxproj
  27. +1 −1 python/windows27/python27.vcxproj
  28. +1 −1 python/windows35/python35.vcxproj
  29. +1 −1 python/windows36/python36.vcxproj
  30. +1 −0 reinforcement_learning/examples/basic_usage_cpp/basic_usage_cpp.vcxproj
  31. +1 −0 reinforcement_learning/examples/override_interface/override_interface.vcxproj
  32. +1 −0 reinforcement_learning/examples/rl_sim_cpp/rl_sim_cpp.vcxproj
  33. +1 −0 reinforcement_learning/examples/test_cpp/test_cpp.vcxproj
  34. +2 −1 reinforcement_learning/rlclientlib/rlclientlib.vcxproj
  35. +1 −0 reinforcement_learning/unit_test/unit_test.vcxproj
  36. +17 −50 test/unit_test/unit_test.vcxproj
  37. +0 −89 vowpalwabbit/cs_vld/cs_vld.vcxproj
  38. +23 −129 vowpalwabbit/libvw.vcxproj
  39. +0 −1 vowpalwabbit/packages.config
  40. +6 −259 vowpalwabbit/vw.sln
  41. +21 −118 vowpalwabbit/vw.vcxproj
  42. +41 −223 vowpalwabbit/{vw_dynamic.vcxproj → vw_core.vcxproj}
@@ -1,14 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DebugLeakCheck|Win32">
<Configuration>DebugLeakCheck</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DebugLeakCheck|x64">
<Configuration>DebugLeakCheck</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
@@ -35,38 +27,13 @@
<RunCodeAnalysis>true</RunCodeAnalysis>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|x64'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
@@ -79,99 +46,35 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LibraryPath>$(SolutionDir)dll\$(Platform)\$(ConfigurationName);$(LibraryPath)</LibraryPath>
<OutDir>$(ProjectDir)Bin\$(Platform)\$(Configuration)\</OutDir>

<PropertyGroup>
<OutDir>$(SolutionDir)out\target\$(Configuration)\$(PlatformShortName)\</OutDir>
<IntDir>$(SolutionDir)out\int\$(Configuration)\$(PlatformShortName)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|x64'">
<LibraryPath>$(SolutionDir)dll\$(Platform)\$(ConfigurationName);$(LibraryPath)</LibraryPath>
<OutDir>$(ProjectDir)Bin\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(ProjectDir)Bin\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|Win32'">
<OutDir>$(ProjectDir)Bin\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(ProjectDir)Bin\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(ProjectDir)Bin\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>$(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y/d $(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.* $(TargetDir)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>$(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y/d $(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.* $(TargetDir)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>$(SolutionDir)dll\$(Platform)\$(ConfigurationName)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y/d $(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.* $(TargetDir)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugLeakCheck|x64'">

<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>$(SolutionDir)dll\$(Platform)\$(ConfigurationName)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>$(SolutionDir)out\target\$(Configuration)\$(PlatformShortName)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y/d $(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.* $(TargetDir)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
@@ -183,33 +86,20 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>$(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>$(SolutionDir)out\target\$(Configuration)\$(PlatformShortName)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y/d $(SolutionDir)dll\$(PlatformShortName)\$(ConfigurationName)\libvw.* $(TargetDir)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>$(SolutionDir)dll\$(Platform)\$(Configuration)\libvw.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y/d $(SolutionDir)dll\$(PlatformName)\$(ConfigurationName)\libvw.* $(TargetDir)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>

<ItemGroup>
<ClCompile Include="sample.c" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\vowpalwabbit\vw_core.vcxproj">
<Project>{1e205806-7f80-47dd-a38d-fc08083f3593}</Project>
</ProjectReference>
</ItemGroup>

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
@@ -263,7 +263,6 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Import Project="packages\VisualLeakDetector.2.4.2.4\build\native\VisualLeakDetector.targets" Condition="Exists('packages\VisualLeakDetector.2.4.2.4\build\native\VisualLeakDetector.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
Oops, something went wrong.

0 comments on commit 285620e

Please sign in to comment.