winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 595bb4707c61ef68e30f4a6c0443c6862d17429c
parent 0d041f645ac5cf2d9aca72a0509fe6d3884285a1
Author: yao-msft <50888816+yao-msft@users.noreply.github.com>
Date:   Fri, 20 Dec 2019 09:44:37 -0800

Create vcxproj for yaml-cpp and add manifest helper lib with tests (#14)

* Create VS proj file for yaml-cpp code

Diffstat:
Mazure-pipelines.yml | 3++-
Mcgmanifest.json | 25+++++++++++++++++--------
Msrc/AppInstallerCLI/AppInstallerCLI.vcxproj | 6++++++
Msrc/AppInstallerClient.sln | 40++++++++++++++++++++++++++++++++++++++++
Asrc/PackageManifestHelper/InstallerSwitches.cpp | 15+++++++++++++++
Asrc/PackageManifestHelper/InstallerSwitches.h | 20++++++++++++++++++++
Asrc/PackageManifestHelper/Manifest.cpp | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PackageManifestHelper/Manifest.h | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PackageManifestHelper/ManifestInstaller.cpp | 29+++++++++++++++++++++++++++++
Asrc/PackageManifestHelper/ManifestInstaller.h | 38++++++++++++++++++++++++++++++++++++++
Asrc/PackageManifestHelper/ManifestLocalization.cpp | 19+++++++++++++++++++
Asrc/PackageManifestHelper/ManifestLocalization.h | 24++++++++++++++++++++++++
Asrc/PackageManifestHelper/PackageManifestHelper.vcxproj | 138+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PackageManifestHelper/PackageManifestHelper.vcxproj.filters | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/PackageManifestHelper/framework.h | 6++++++
Asrc/PackageManifestHelper/pch.cpp | 6++++++
Asrc/PackageManifestHelper/pch.h | 17+++++++++++++++++
Asrc/RepositoryLibTests/PackageManifestHelper.cpp | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/RepositoryLibTests/RepositoryLibTests.vcxproj | 21+++++++++++++++++----
Msrc/RepositoryLibTests/RepositoryLibTests.vcxproj.filters | 14++++++++++++++
Asrc/RepositoryLibTests/TestData/BadManifest-MissingName.yml | 45+++++++++++++++++++++++++++++++++++++++++++++
Asrc/RepositoryLibTests/TestData/GoodManifest.yml | 46++++++++++++++++++++++++++++++++++++++++++++++
Msrc/RepositoryLibTests/pch.h | 3+++
Asrc/YamlCppLib/YamlCppLib.vcxproj | 205+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/YamlCppLib/YamlCppLib.vcxproj.filters | 279+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/YamlCppLib/readme.md | 17+++++++++++++++++
26 files changed, 1299 insertions(+), 13 deletions(-)

diff --git a/azure-pipelines.yml b/azure-pipelines.yml @@ -33,7 +33,8 @@ steps: - task: CmdLine@2 inputs: - script: 'RepositoryLibTests.exe -s -r junit -o TEST-RepositoryLib-$(_artifact).xml' + script: | + RepositoryLibTests.exe -s -r junit -o TEST-RepositoryLib-$(_artifact).xml workingDirectory: 'src\Release\' - task: PublishTestResults@2 diff --git a/cgmanifest.json b/cgmanifest.json @@ -1,14 +1,23 @@ { "Registrations":[ - { - "component": { - "type": "git", - "git": { - "repositoryUrl": "https://github.com/catchorg/Catch2.git", - "commitHash": "e1c9d5569dc4135babb9c81891d70a8ba8ed938c" - } - } + { + "component": { + "type": "git", + "git": { + "repositoryUrl": "https://github.com/catchorg/Catch2.git", + "commitHash": "e1c9d5569dc4135babb9c81891d70a8ba8ed938c" + } } + }, + { + "component": { + "type": "git", + "git": { + "repositoryUrl": "https://github.com/jbeder/yaml-cpp.git", + "commitHash": "9a3624205e8774953ef18f57067b3426c1c5ada6" + } + } + } ], "Version": 1 } diff --git a/src/AppInstallerCLI/AppInstallerCLI.vcxproj b/src/AppInstallerCLI/AppInstallerCLI.vcxproj @@ -167,9 +167,15 @@ <Project>{1c6e0108-2860-4b17-9f7e-fa5c6c1f3d3d}</Project> <Private>false</Private> </ProjectReference> + <ProjectReference Include="..\PackageManifestHelper\PackageManifestHelper.vcxproj"> + <Project>{f8f75341-9455-4d5b-824a-47a7818ee864}</Project> + </ProjectReference> <ProjectReference Include="..\RepositoryLib\RepositoryLib.vcxproj"> <Project>{5eb88068-5fb9-4e69-89b2-72dbc5e068f9}</Project> </ProjectReference> + <ProjectReference Include="..\YamlCppLib\YamlCppLib.vcxproj"> + <Project>{8bb94bb8-374f-4294-bca1-c7811514a6b7}</Project> + </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/src/AppInstallerClient.sln b/src/AppInstallerClient.sln @@ -25,6 +25,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{63D9DA93 EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RepositoryLibTests", "RepositoryLibTests\RepositoryLibTests.vcxproj", "{89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "YamlCppLib", "YamlCppLib\YamlCppLib.vcxproj", "{8BB94BB8-374F-4294-BCA1-C7811514A6B7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackageManifestHelper", "PackageManifestHelper\PackageManifestHelper.vcxproj", "{F8F75341-9455-4D5B-824A-47A7818EE864}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution Telemetry\Telemetry.vcxitems*{1c6e0108-2860-4b17-9f7e-fa5c6c1f3d3d}*SharedItemsImports = 4 @@ -144,6 +148,42 @@ Global {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x64.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.Build.0 = Release|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM.ActiveCfg = Debug|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM.Build.0 = Debug|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM64.Build.0 = Debug|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x64.ActiveCfg = Debug|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x64.Build.0 = Debug|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x86.ActiveCfg = Debug|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|x86.Build.0 = Debug|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|Any CPU.ActiveCfg = Release|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM.ActiveCfg = Release|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM.Build.0 = Release|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM64.ActiveCfg = Release|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|ARM64.Build.0 = Release|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x64.ActiveCfg = Release|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x64.Build.0 = Release|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.ActiveCfg = Release|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.Build.0 = Release|Win32 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|ARM.ActiveCfg = Debug|ARM + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|ARM.Build.0 = Debug|ARM + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|ARM64.Build.0 = Debug|ARM64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|x64.ActiveCfg = Debug|x64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|x64.Build.0 = Debug|x64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|x86.ActiveCfg = Debug|Win32 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Debug|x86.Build.0 = Debug|Win32 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|Any CPU.ActiveCfg = Release|Win32 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|ARM.ActiveCfg = Release|ARM + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|ARM.Build.0 = Release|ARM + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|ARM64.ActiveCfg = Release|ARM64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|ARM64.Build.0 = Release|ARM64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|x64.ActiveCfg = Release|x64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|x64.Build.0 = Release|x64 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|x86.ActiveCfg = Release|Win32 + {F8F75341-9455-4D5B-824A-47A7818EE864}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/PackageManifestHelper/InstallerSwitches.cpp b/src/PackageManifestHelper/InstallerSwitches.cpp @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include "pch.h" +#include "InstallerSwitches.h" + +namespace AppInstaller::Manifest +{ + void InstallerSwitches::PopulateSwitchesFields(YAML::Node switchesNode) + { + this->Default = switchesNode["Default"] ? switchesNode["Default"].as<std::string>() : ""; + this->Silent = switchesNode["Silent"] ? switchesNode["Silent"].as<std::string>() : ""; + this->Verbose = switchesNode["Verbose"] ? switchesNode["Verbose"].as<std::string>() : ""; + } +} diff --git a/src/PackageManifestHelper/InstallerSwitches.h b/src/PackageManifestHelper/InstallerSwitches.h @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#pragma once +#include <string> +namespace AppInstaller::Manifest +{ + class InstallerSwitches + { + public: + std::string Default; + + std::string Silent; + + std::string Verbose; + + void PopulateSwitchesFields(YAML::Node switchesNode); + }; +}+ \ No newline at end of file diff --git a/src/PackageManifestHelper/Manifest.cpp b/src/PackageManifestHelper/Manifest.cpp @@ -0,0 +1,92 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include "pch.h" +#include "framework.h" +#include "Manifest.h" + +namespace AppInstaller::Manifest +{ + void Manifest::PopulateManifestFields(const YAML::Node& rootNode) + { + // Required fields + this->Id = rootNode["Id"].as<std::string>(); + this->Name = rootNode["Name"].as<std::string>(); + this->Version = rootNode["Version"].as<std::string>(); + + // Optional fields. + this->ShortId = rootNode["ShortId"] ? rootNode["ShortId"].as<std::string>() : ""; + this->CompanyName = rootNode["CompanyName"] ? rootNode["CompanyName"].as<std::string>() : ""; + this->Authors = rootNode["Authors"] ? rootNode["Authors"].as<std::string>() : ""; + this->Channel = rootNode["Channel"] ? rootNode["Channel"].as<std::string>() : ""; + this->Author = rootNode["Author"] ? rootNode["Author"].as<std::string>() : ""; + this->License = rootNode["License"] ? rootNode["License"].as<std::string>() : ""; + this->MinOSVersion = rootNode["MinOSVersion"] ? rootNode["MinOSVersion"].as<std::string>() : ""; + this->Tags = rootNode["Tags"] ? rootNode["Tags"].as<std::string>() : ""; + this->Commands = rootNode["Commands"] ? rootNode["Commands"].as<std::string>() : ""; + this->Protocols = rootNode["Protocols"] ? rootNode["Protocols"].as<std::string>() : ""; + this->FileExtensions = rootNode["FileExtensions"] ? rootNode["FileExtensions"].as<std::string>() : ""; + this->InstallerType = rootNode["InstallerType"] ? rootNode["InstallerType"].as<std::string>() : ""; + this->Description = rootNode["Description"] ? rootNode["Description"].as<std::string>() : ""; + this->Homepage = rootNode["Homepage"] ? rootNode["Homepage"].as<std::string>() : ""; + this->LicenseUrl = rootNode["LicenseUrl"] ? rootNode["LicenseUrl"].as<std::string>() : ""; + + YAML::Node installersNode = rootNode["Installers"]; + for (std::size_t i = 0; i < installersNode.size(); i++) { + YAML::Node installerNode = installersNode[i]; + ManifestInstaller installer; + installer.PopulateInstallerFields(installerNode); + this->Installers.emplace_back(std::move(installer)); + } + + if (rootNode["Localization"]) + { + YAML::Node localizationsNode = rootNode["Localization"]; + for (std::size_t i = 0; i < localizationsNode.size(); i++) { + YAML::Node localizationNode = localizationsNode[i]; + ManifestLocalization localization; + localization.PopulateLocalizationFields(localizationNode); + this->Localization.emplace_back(std::move(localization)); + } + } + + if (rootNode["Switches"]) + { + YAML::Node switchesNode = rootNode["Switches"]; + InstallerSwitches switches; + switches.PopulateSwitchesFields(switchesNode); + this->Switches.emplace(std::move(switches)); + } + } + + Manifest Manifest::CreatePackageManifestFromFile(const std::string& inputFile) + { + YAML::Node rootNode = YAML::LoadFile(inputFile); + + Manifest manifest; + manifest.PopulateManifestFields(rootNode); + + return manifest; + } + + Manifest Manifest::CreatePackageManifest(const std::string& input) + { + Manifest manifest; + + try + { + YAML::Node rootNode = YAML::Load(input); + manifest.PopulateManifestFields(rootNode); + } + catch (std::exception & e) + { + // Log theinput string when read manifest failure + throw; + } + + return manifest; + } + + +} + diff --git a/src/PackageManifestHelper/Manifest.h b/src/PackageManifestHelper/Manifest.h @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#pragma once +#include <string> +#include <vector> +#include <optional> +#include "ManifestInstaller.h" +#include "ManifestLocalization.h" + +namespace AppInstaller::Manifest +{ + class Manifest + { + public: + // Required + std::string Id; + + // Required + std::string Name; + + // Required + std::string Version; + + // Name subject to change + std::string ShortId; + + std::string CompanyName; + + // Comma separated Values + std::string Authors; + + std::string Channel; + + std::string Author; + + std::string License; + + std::string MinOSVersion; + + // Comma separated values + std::string Tags; + + // Comma separated values + std::string Commands; + + // Comma separated values + std::string Protocols; + + // Comma separated values + std::string FileExtensions; + + std::vector<ManifestInstaller> Installers; + + std::vector<ManifestLocalization> Localization; + + std::string InstallerType; + + std::optional<InstallerSwitches> Switches; + + std::string Description; + + std::string Homepage; + + std::string LicenseUrl; + + void PopulateManifestFields(const YAML::Node& rootNode); + + static Manifest CreatePackageManifestFromFile(const std::string& inputFile); + + static Manifest CreatePackageManifest(const std::string& input); + }; +}+ \ No newline at end of file diff --git a/src/PackageManifestHelper/ManifestInstaller.cpp b/src/PackageManifestHelper/ManifestInstaller.cpp @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include "pch.h" +#include "ManifestInstaller.h" + +namespace AppInstaller::Manifest +{ + void ManifestInstaller::PopulateInstallerFields(YAML::Node installerNode) + { + // Required fields + this->Arch = installerNode["Arch"].as<std::string>(); + this->Url = installerNode["Url"].as<std::string>(); + this->Sha256 = installerNode["Sha256"].as<std::string>(); + + // Optional fields. + this->Language = installerNode["Language"] ? installerNode["Language"].as<std::string>() : ""; + this->Scope = installerNode["Scope"] ? installerNode["Scope"].as<std::string>() : ""; + this->InstallerType = installerNode["InstallerType"] ? installerNode["InstallerType"].as<std::string>() : ""; + + if (installerNode["Switches"]) + { + YAML::Node switchesNode = installerNode["Switches"]; + InstallerSwitches switches; + switches.PopulateSwitchesFields(switchesNode); + this->Switches.emplace(std::move(switches)); + } + } +} diff --git a/src/PackageManifestHelper/ManifestInstaller.h b/src/PackageManifestHelper/ManifestInstaller.h @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#pragma once +#include <string> +#include <optional> +#include "InstallerSwitches.h" + +namespace AppInstaller::Manifest +{ + class ManifestInstaller + { + public: + // Required. Values: x86, x64, arm, arm64, all. + std::string Arch; + + // Required + std::string Url; + + // Required + std::string Sha256; + + // Empty means default + std::string Language; + + // Name TBD + std::string Scope; + + // If present, has more presedence than root + std::string InstallerType; + + // If present, has more presedence than root + std::optional<InstallerSwitches> Switches; + + void PopulateInstallerFields(YAML::Node installerNode); + }; +}+ \ No newline at end of file diff --git a/src/PackageManifestHelper/ManifestLocalization.cpp b/src/PackageManifestHelper/ManifestLocalization.cpp @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include "pch.h" +#include "ManifestLocalization.h" + +namespace AppInstaller::Manifest +{ + void ManifestLocalization::PopulateLocalizationFields(YAML::Node localizationNode) + { + // Required + this->Language = localizationNode["Language"].as<std::string>(); + + // Optional + this->Description = localizationNode["Description"] ? localizationNode["Description"].as<std::string>() : ""; + this->Homepage = localizationNode["Homepage"] ? localizationNode["Homepage"].as<std::string>() : ""; + this->LicenseUrl = localizationNode["LicenseUrl"] ? localizationNode["LicenseUrl"].as<std::string>() : ""; + } +} diff --git a/src/PackageManifestHelper/ManifestLocalization.h b/src/PackageManifestHelper/ManifestLocalization.h @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#pragma once +#include <string> + +namespace AppInstaller::Manifest +{ + class ManifestLocalization + { + public: + // Required + std::string Language; + + std::string Description; + + std::string Homepage; + + std::string LicenseUrl; + + void PopulateLocalizationFields(YAML::Node localizationNode); + }; +}+ \ No newline at end of file diff --git a/src/PackageManifestHelper/PackageManifestHelper.vcxproj b/src/PackageManifestHelper/PackageManifestHelper.vcxproj @@ -0,0 +1,137 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Label="Globals"> + <VCProjectVersion>15.0</VCProjectVersion> + <ProjectGuid>{F8F75341-9455-4D5B-824A-47A7818EE864}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>PackageManifestHelper</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM64"> + <Configuration>Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM64"> + <Configuration>Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <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 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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <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|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> + <UseDebugLibraries>true</UseDebugLibraries> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <LanguageStandard>stdcpp17</LanguageStandard> + <AdditionalIncludeDirectories>..\YamlCppLib\yaml-cpp\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <LanguageStandard>stdcpp17</LanguageStandard> + <AdditionalIncludeDirectories>..\YamlCppLib\yaml-cpp\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="framework.h" /> + <ClInclude Include="InstallerSwitches.h" /> + <ClInclude Include="Manifest.h" /> + <ClInclude Include="ManifestInstaller.h" /> + <ClInclude Include="ManifestLocalization.h" /> + <ClInclude Include="pch.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="InstallerSwitches.cpp" /> + <ClCompile Include="Manifest.cpp" /> + <ClCompile Include="ManifestInstaller.cpp" /> + <ClCompile Include="ManifestLocalization.cpp" /> + <ClCompile Include="pch.cpp"> + <PrecompiledHeader Condition="'$(Configuration)'=='Debug'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)'=='Release'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>+ \ No newline at end of file diff --git a/src/PackageManifestHelper/PackageManifestHelper.vcxproj.filters b/src/PackageManifestHelper/PackageManifestHelper.vcxproj.filters @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="framework.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="pch.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="Manifest.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ManifestInstaller.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="InstallerSwitches.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="ManifestLocalization.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="pch.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="Manifest.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ManifestInstaller.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="InstallerSwitches.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ManifestLocalization.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>+ \ No newline at end of file diff --git a/src/PackageManifestHelper/framework.h b/src/PackageManifestHelper/framework.h @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#pragma once + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers diff --git a/src/PackageManifestHelper/pch.cpp b/src/PackageManifestHelper/pch.cpp @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include "pch.h" + +// When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/src/PackageManifestHelper/pch.h b/src/PackageManifestHelper/pch.h @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// pch.h: This is a precompiled header file. +// Files listed below are compiled only once, improving build performance for future builds. +// This also affects IntelliSense performance, including code completion and many code browsing features. +// However, files listed here are ALL re-compiled if any one of them is updated between builds. +// Do not add files here that you will be updating frequently as this negates the performance advantage. + +#ifndef PCH_H +#define PCH_H + +// add headers that you want to pre-compile here +#include "framework.h" +#include "yaml-cpp\yaml.h" + +#endif //PCH_H diff --git a/src/RepositoryLibTests/PackageManifestHelper.cpp b/src/RepositoryLibTests/PackageManifestHelper.cpp @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#include "Manifest.h" + +using namespace AppInstaller::Manifest; + +TEST_CASE("ReadGoodManifestAndVerifyContents", "[PackageManifestHelper]") +{ + Manifest manifest = Manifest::CreatePackageManifestFromFile("GoodManifest.yml"); + + REQUIRE(manifest.Id == "microsoft.msixsdk"); + REQUIRE(manifest.Name == "MSIX SDK"); + REQUIRE(manifest.ShortId == "msixsdk"); + REQUIRE(manifest.Version == "1.7.32"); + REQUIRE(manifest.CompanyName == "Microsoft"); + REQUIRE(manifest.Channel == "release"); + REQUIRE(manifest.Author == "Microsoft"); + REQUIRE(manifest.License == "MIT License"); + REQUIRE(manifest.LicenseUrl == "https://github.com/microsoft/msix-packaging/blob/master/LICENSE"); + REQUIRE(manifest.MinOSVersion == "0.0.0.0"); + REQUIRE(manifest.Description == "The MSIX SDK project is an effort to enable developers"); + REQUIRE(manifest.Homepage == "https://github.com/microsoft/msix-packaging"); + REQUIRE(manifest.Tags == "msix,appx"); + REQUIRE(manifest.Commands == "makemsix,makeappx"); + REQUIRE(manifest.Protocols == "protocol1,protocol2"); + REQUIRE(manifest.FileExtensions == "appx,appxbundle,msix,msixbundle"); + REQUIRE(manifest.InstallerType == "Zip"); + + // default switches + REQUIRE(manifest.Switches.has_value()); + InstallerSwitches switches = manifest.Switches.value(); + REQUIRE(switches.Verbose == "/verbose"); + REQUIRE(switches.Silent == "/silence"); + REQUIRE(switches.Default == "/default"); + + // installers + REQUIRE(manifest.Installers.size() == 2); + ManifestInstaller installer1 = manifest.Installers.at(0); + REQUIRE(installer1.Arch == "x86"); + REQUIRE(installer1.Url == "https://rubengustorage.blob.core.windows.net/publiccontainer/msixsdkx86.zip"); + REQUIRE(installer1.Sha256 == "69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82"); + REQUIRE(installer1.Language == "en-US"); + REQUIRE(installer1.InstallerType == "Zip"); + REQUIRE(installer1.Scope == "user"); + + REQUIRE(installer1.Switches.has_value()); + InstallerSwitches installer1Switches = installer1.Switches.value(); + REQUIRE(installer1Switches.Verbose == "/v"); + REQUIRE(installer1Switches.Silent == "/s"); + REQUIRE(installer1Switches.Default == "/d"); + + ManifestInstaller installer2 = manifest.Installers.at(1); + REQUIRE(installer2.Arch == "x64"); + REQUIRE(installer2.Url == "https://rubengustorage.blob.core.windows.net/publiccontainer/msixsdkx64.zip"); + REQUIRE(installer2.Sha256 == "69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF0000"); + REQUIRE(installer2.Language == "en-US"); + REQUIRE(installer2.InstallerType == "Zip"); + REQUIRE(installer2.Scope == "user"); + + REQUIRE_FALSE(installer2.Switches.has_value()); + + // Localization + REQUIRE(manifest.Localization.size() == 1); + ManifestLocalization localization1 = manifest.Localization.at(0); + REQUIRE(localization1.Language == "es-MX"); + REQUIRE(localization1.Description == "El proyecto MSIX SDK es habilita desarrolladores de diferentes"); + REQUIRE(localization1.Homepage == "https://github.com/microsoft/msix-packaging/es-MX"); + REQUIRE(localization1.LicenseUrl == "https://github.com/microsoft/msix-packaging/blob/master/LICENSE-es-MX"); +} + +TEST_CASE("ReadBadManifestAndVerifyThrow", "[PackageManifestHelper]") +{ + REQUIRE_THROWS_WITH(Manifest::CreatePackageManifestFromFile("BadManifest-MissingName.yml"), "invalid node; first invalid key: \"Name\""); +} diff --git a/src/RepositoryLibTests/RepositoryLibTests.vcxproj b/src/RepositoryLibTests/RepositoryLibTests.vcxproj @@ -75,7 +75,7 @@ <ClCompile> <Optimization>Disabled</Optimization> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)..\PackageManifestHelper;$(MSBuildThisFileDirectory)..\YamlCppLib\yaml-cpp\include</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -86,7 +86,7 @@ <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> <ClCompile> <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)..\PackageManifestHelper;$(MSBuildThisFileDirectory)..\YamlCppLib\yaml-cpp\include</AdditionalIncludeDirectories> </ClCompile> <Link> <AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">winsqlite3.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -98,8 +98,8 @@ <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)..\PackageManifestHelper;$(MSBuildThisFileDirectory)..\YamlCppLib\yaml-cpp\include</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(MSBuildThisFileDirectory)..\RepositoryLib;%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)..\PackageManifestHelper;$(MSBuildThisFileDirectory)..\YamlCppLib\yaml-cpp\include</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Console</SubSystem> @@ -114,6 +114,7 @@ <ClInclude Include="pch.h" /> </ItemGroup> <ItemGroup> + <ClCompile Include="PackageManifestHelper.cpp" /> <ClCompile Include="main.cpp"> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader> @@ -126,13 +127,25 @@ <ClCompile Include="SQLiteWrapper.cpp" /> </ItemGroup> <ItemGroup> + <CopyFileToFolders Include="TestData\GoodManifest.yml"> + <DeploymentContent>true</DeploymentContent> + </CopyFileToFolders> + <CopyFileToFolders Include="TestData\BadManifest-MissingName.yml"> + <DeploymentContent>true</DeploymentContent> + </CopyFileToFolders> <None Include="packages.config" /> <None Include="PropertySheet.props" /> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\PackageManifestHelper\PackageManifestHelper.vcxproj"> + <Project>{f8f75341-9455-4d5b-824a-47a7818ee864}</Project> + </ProjectReference> <ProjectReference Include="..\RepositoryLib\RepositoryLib.vcxproj"> <Project>{5eb88068-5fb9-4e69-89b2-72dbc5e068f9}</Project> </ProjectReference> + <ProjectReference Include="..\YamlCppLib\YamlCppLib.vcxproj"> + <Project>{8bb94bb8-374f-4294-bca1-c7811514a6b7}</Project> + </ProjectReference> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> diff --git a/src/RepositoryLibTests/RepositoryLibTests.vcxproj.filters b/src/RepositoryLibTests/RepositoryLibTests.vcxproj.filters @@ -13,6 +13,9 @@ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> </Filter> + <Filter Include="TestData"> + <UniqueIdentifier>{d5cac203-3846-4b39-a1cd-8de9303757b4}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <ClInclude Include="pch.h"> @@ -29,9 +32,20 @@ <ClCompile Include="SQLiteWrapper.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="PackageManifestHelper.cpp"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <None Include="PropertySheet.props" /> <None Include="packages.config" /> </ItemGroup> + <ItemGroup> + <CopyFileToFolders Include="TestData\BadManifest-MissingName.yml"> + <Filter>TestData</Filter> + </CopyFileToFolders> + <CopyFileToFolders Include="TestData\GoodManifest.yml"> + <Filter>TestData</Filter> + </CopyFileToFolders> + </ItemGroup> </Project> \ No newline at end of file diff --git a/src/RepositoryLibTests/TestData/BadManifest-MissingName.yml b/src/RepositoryLibTests/TestData/BadManifest-MissingName.yml @@ -0,0 +1,44 @@ +Id: microsoft.msixsdk +ShortId: msixsdk +Version: 1.7.32 +CompanyName: Microsoft +Channel: release +Author: Microsoft +License: MIT License +LicenseUrl: https://github.com/microsoft/msix-packaging/blob/master/LICENSE +MinOSVersion: 0.0.0.0 +Description: The MSIX SDK project is an effort to enable developers +Homepage: https://github.com/microsoft/msix-packaging +Tags: "msix,appx" +Commands: "makemsix,makeappx" +Protocols: "protocol1,protocol2" +FileExtensions: "appx,appxbundle,msix,msixbundle" +# InstallerType and Switches CAN have a "default" value +# on the root. An installer can override them. +InstallerType: Zip +Switches: + Verbose: /verbose + Default: /default + Silent: /silence +Installers: + - Arch: x86 + Url: https://rubengustorage.blob.core.windows.net/publiccontainer/msixsdkx86.zip + Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 + Language: en-US + InstallerType: Zip + Scope: user + Switches: + Verbose: /v + Default: /d + Silent: /s + - Arch: x64 + Url: https://rubengustorage.blob.core.windows.net/publiccontainer/msixsdkx64.zip + Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF0000 + Language: en-US + InstallerType: Zip + Scope: user +Localization: + - Language: es-MX + Description: El proyecto MSIX SDK es habilita desarrolladores de diferentes + Homepage: https://github.com/microsoft/msix-packaging/es-MX + LicenseUrl: https://github.com/microsoft/msix-packaging/blob/master/LICENSE-es-MX+ \ No newline at end of file diff --git a/src/RepositoryLibTests/TestData/GoodManifest.yml b/src/RepositoryLibTests/TestData/GoodManifest.yml @@ -0,0 +1,45 @@ +Id: microsoft.msixsdk +Name: MSIX SDK +ShortId: msixsdk +Version: 1.7.32 +CompanyName: Microsoft +Channel: release +Author: Microsoft +License: MIT License +LicenseUrl: https://github.com/microsoft/msix-packaging/blob/master/LICENSE +MinOSVersion: 0.0.0.0 +Description: The MSIX SDK project is an effort to enable developers +Homepage: https://github.com/microsoft/msix-packaging +Tags: "msix,appx" +Commands: "makemsix,makeappx" +Protocols: "protocol1,protocol2" +FileExtensions: "appx,appxbundle,msix,msixbundle" +# InstallerType and Switches CAN have a "default" value +# on the root. An installer can override them. +InstallerType: Zip +Switches: + Verbose: /verbose + Default: /default + Silent: /silence +Installers: + - Arch: x86 + Url: https://rubengustorage.blob.core.windows.net/publiccontainer/msixsdkx86.zip + Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 + Language: en-US + InstallerType: Zip + Scope: user + Switches: + Verbose: /v + Default: /d + Silent: /s + - Arch: x64 + Url: https://rubengustorage.blob.core.windows.net/publiccontainer/msixsdkx64.zip + Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF0000 + Language: en-US + InstallerType: Zip + Scope: user +Localization: + - Language: es-MX + Description: El proyecto MSIX SDK es habilita desarrolladores de diferentes + Homepage: https://github.com/microsoft/msix-packaging/es-MX + LicenseUrl: https://github.com/microsoft/msix-packaging/blob/master/LICENSE-es-MX+ \ No newline at end of file diff --git a/src/RepositoryLibTests/pch.h b/src/RepositoryLibTests/pch.h @@ -11,3 +11,5 @@ #include <iostream> #include <sstream> #include <utility> + +#include <yaml-cpp/yaml.h>+ \ No newline at end of file diff --git a/src/YamlCppLib/YamlCppLib.vcxproj b/src/YamlCppLib/YamlCppLib.vcxproj @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Label="Globals"> + <VCProjectVersion>15.0</VCProjectVersion> + <ProjectGuid>{8BB94BB8-374F-4294-BCA1-C7811514A6B7}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + </PropertyGroup> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM64"> + <Configuration>Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM64"> + <Configuration>Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> + <UseDebugLibraries>true</UseDebugLibraries> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <AdditionalIncludeDirectories>yaml-cpp\include</AdditionalIncludeDirectories> + <LanguageStandard>stdcpp17</LanguageStandard> + </ClCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="yaml-cpp\src\binary.cpp" /> + <ClCompile Include="yaml-cpp\src\convert.cpp" /> + <ClCompile Include="yaml-cpp\src\directives.cpp" /> + <ClCompile Include="yaml-cpp\src\emit.cpp" /> + <ClCompile Include="yaml-cpp\src\emitfromevents.cpp" /> + <ClCompile Include="yaml-cpp\src\emitter.cpp" /> + <ClCompile Include="yaml-cpp\src\emitterstate.cpp" /> + <ClCompile Include="yaml-cpp\src\emitterutils.cpp" /> + <ClCompile Include="yaml-cpp\src\exceptions.cpp" /> + <ClCompile Include="yaml-cpp\src\exp.cpp" /> + <ClCompile Include="yaml-cpp\src\memory.cpp" /> + <ClCompile Include="yaml-cpp\src\node.cpp" /> + <ClCompile Include="yaml-cpp\src\nodebuilder.cpp" /> + <ClCompile Include="yaml-cpp\src\nodeevents.cpp" /> + <ClCompile Include="yaml-cpp\src\node_data.cpp" /> + <ClCompile Include="yaml-cpp\src\null.cpp" /> + <ClCompile Include="yaml-cpp\src\ostream_wrapper.cpp" /> + <ClCompile Include="yaml-cpp\src\parse.cpp" /> + <ClCompile Include="yaml-cpp\src\parser.cpp" /> + <ClCompile Include="yaml-cpp\src\regex_yaml.cpp" /> + <ClCompile Include="yaml-cpp\src\scanner.cpp" /> + <ClCompile Include="yaml-cpp\src\scanscalar.cpp" /> + <ClCompile Include="yaml-cpp\src\scantag.cpp" /> + <ClCompile Include="yaml-cpp\src\scantoken.cpp" /> + <ClCompile Include="yaml-cpp\src\simplekey.cpp" /> + <ClCompile Include="yaml-cpp\src\singledocparser.cpp" /> + <ClCompile Include="yaml-cpp\src\stream.cpp" /> + <ClCompile Include="yaml-cpp\src\tag.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="yaml-cpp\include\yaml-cpp\anchor.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\binary.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\dll.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitfromevents.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitter.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitterdef.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emittermanip.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitterstyle.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\eventhandler.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\exceptions.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\mark.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\convert.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\bool_type.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\impl.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\iterator.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\iterator_fwd.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\memory.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node_data.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node_iterator.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node_ref.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\emit.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\impl.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\iterator.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\node.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\parse.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\ptr.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\type.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\null.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\ostream_wrapper.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\parser.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\stlemitter.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\traits.h" /> + <ClInclude Include="yaml-cpp\include\yaml-cpp\yaml.h" /> + <ClInclude Include="yaml-cpp\src\collectionstack.h" /> + <ClInclude Include="yaml-cpp\src\directives.h" /> + <ClInclude Include="yaml-cpp\src\emitterstate.h" /> + <ClInclude Include="yaml-cpp\src\emitterutils.h" /> + <ClInclude Include="yaml-cpp\src\exp.h" /> + <ClInclude Include="yaml-cpp\src\indentation.h" /> + <ClInclude Include="yaml-cpp\src\nodebuilder.h" /> + <ClInclude Include="yaml-cpp\src\nodeevents.h" /> + <ClInclude Include="yaml-cpp\src\ptr_vector.h" /> + <ClInclude Include="yaml-cpp\src\regeximpl.h" /> + <ClInclude Include="yaml-cpp\src\regex_yaml.h" /> + <ClInclude Include="yaml-cpp\src\scanner.h" /> + <ClInclude Include="yaml-cpp\src\scanscalar.h" /> + <ClInclude Include="yaml-cpp\src\scantag.h" /> + <ClInclude Include="yaml-cpp\src\setting.h" /> + <ClInclude Include="yaml-cpp\src\singledocparser.h" /> + <ClInclude Include="yaml-cpp\src\stream.h" /> + <ClInclude Include="yaml-cpp\src\streamcharsource.h" /> + <ClInclude Include="yaml-cpp\src\stringsource.h" /> + <ClInclude Include="yaml-cpp\src\tag.h" /> + <ClInclude Include="yaml-cpp\src\token.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>+ \ No newline at end of file diff --git a/src/YamlCppLib/YamlCppLib.vcxproj.filters b/src/YamlCppLib/YamlCppLib.vcxproj.filters @@ -0,0 +1,278 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Header Files\include"> + <UniqueIdentifier>{e74f390a-3249-481b-8826-edf6de1257f4}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\include\yaml-cpp"> + <UniqueIdentifier>{8ac0294a-ed28-4f8a-bf04-c5c69cdc9184}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\include\yaml-cpp\node"> + <UniqueIdentifier>{29ab51c1-68a6-46e1-aba9-008f7903870d}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\include\yaml-cpp\node\detail"> + <UniqueIdentifier>{1363dc93-b870-4fe9-8915-53c9dc9fd1a4}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="yaml-cpp\src\binary.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\convert.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\directives.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\emit.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\emitfromevents.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\emitter.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\emitterstate.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\emitterutils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\exceptions.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\exp.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\memory.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\node.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\nodebuilder.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\nodeevents.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\node_data.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\null.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\ostream_wrapper.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\parse.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\parser.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\regex_yaml.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\scanner.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\scanscalar.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\scantag.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\scantoken.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\simplekey.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\singledocparser.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\stream.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="yaml-cpp\src\tag.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="yaml-cpp\src\collectionstack.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\directives.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\emitterstate.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\emitterutils.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\exp.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\indentation.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\nodebuilder.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\nodeevents.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\ptr_vector.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\regeximpl.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\regex_yaml.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\scanner.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\scanscalar.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\scantag.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\setting.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\singledocparser.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\stream.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\streamcharsource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\stringsource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\tag.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\src\token.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\convert.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\emit.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\impl.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\iterator.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\node.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\parse.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\ptr.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\type.h"> + <Filter>Header Files\include\yaml-cpp\node</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\bool_type.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\impl.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\iterator_fwd.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\iterator.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\memory.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node_data.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node_iterator.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\node\detail\node_ref.h"> + <Filter>Header Files\include\yaml-cpp\node\detail</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\anchor.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\binary.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\dll.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitfromevents.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitter.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitterdef.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emitterstyle.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\emittermanip.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\eventhandler.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\exceptions.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\mark.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\null.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\ostream_wrapper.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\parser.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\stlemitter.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\traits.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + <ClInclude Include="yaml-cpp\include\yaml-cpp\yaml.h"> + <Filter>Header Files\include\yaml-cpp</Filter> + </ClInclude> + </ItemGroup> +</Project>+ \ No newline at end of file diff --git a/src/YamlCppLib/readme.md b/src/YamlCppLib/readme.md @@ -0,0 +1,17 @@ +## YamlCppLib + +Do not change code under yaml-cpp directory. yaml-cpp directory contains yaml-cpp source code version [0.6.3](https://github.com/jbeder/yaml-cpp/tree/yaml-cpp-0.6.3). +It is created using git subtree command: + + git subtree add --prefix=src/YamlCppLib/yaml-cpp https://github.com/jbeder/yaml-cpp.git yaml-cpp-0.6.3 --squash + +The YamlCppLib.vcxproj and YamlCppLib.vcxproj.filters are created to make yaml-cpp code compiled as part of the AppInstallerClient solution. + +#### Steps used to create the VS project files. + +1. VS Create project from existing code wizard to pint to yaml-cpp directory. Use static library template. +2. Removed code not needed by AppInstallerClient project. Basically keeping only files under src and include. +3. Modify the created vcxproj file to follow settings from other project files in the AppInstallerClient solution. +4. Configure the additional include path to include the yaml-cpp\include directory. + +