aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/buildsystems/msbuild/vcpkg-general.xml154
-rw-r--r--scripts/buildsystems/msbuild/vcpkg.props47
-rw-r--r--scripts/buildsystems/msbuild/vcpkg.targets112
3 files changed, 134 insertions, 179 deletions
diff --git a/scripts/buildsystems/msbuild/vcpkg-general.xml b/scripts/buildsystems/msbuild/vcpkg-general.xml
index 2638597a6..0fbe3c6ab 100644
--- a/scripts/buildsystems/msbuild/vcpkg-general.xml
+++ b/scripts/buildsystems/msbuild/vcpkg-general.xml
@@ -1,77 +1,77 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Rule
- Name="VcpkgOptions"
- DisplayName="Vcpkg"
- PageTemplate="generic"
- Description="Vcpkg"
- xmlns="http://schemas.microsoft.com/build/2009/properties">
- <Rule.Categories>
- <Category Name="General" DisplayName="General" Description="General" />
- </Rule.Categories>
- <Rule.DataSource>
- <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="true" />
- </Rule.DataSource>
- <BoolProperty Name="VcpkgEnabled"
- DisplayName="Use Vcpkg"
- Description="Use Vcpkg for includes and libraries."
- Category="General"
- Default="true">
- </BoolProperty>
- <BoolProperty Name="VcpkgEnableManifest"
- DisplayName="Use Vcpkg Manifest"
- Description="Use the vcpkg manifest file to define your dependencies."
- Category="General"
- Default="false">
- </BoolProperty>
- <BoolProperty Name="VcpkgManifestInstall"
- DisplayName="Install vcpkg dependencies"
- Description="Install dependencies from the vcpkg manifest."
- Category="General"
- Default="true">
- </BoolProperty>
- <BoolProperty Name="VcpkgUseStatic"
- DisplayName="Use static libraries"
- Description="Vcpkg can build static libraries (e.g. x64-windows-static). This options changes the default triplet to use these static libraries by appending -static to $(VcpkgTriplet). This will not be shown in the evaluation of the Triplet within the UI."
- Category="General"
- Default="false">
- </BoolProperty>
- <BoolProperty Name="VcpkgAutoLink"
- DisplayName="Use AutoLink"
- Description="Enables automatic linking with libraries build using Vcpkg. Does not work with lld-link.exe."
- Category="General"
- Default="true">
- </BoolProperty>
- <StringProperty Name="VcpkgTriplet"
- DisplayName="Triplet"
- Description="Specifies the triplet used by Vcpkg"
- Category="General"
- Subtype="Text">
- </StringProperty>
- <StringProperty Name="VcpkgRoot"
- DisplayName="Vcpkg Root"
- Description="Root path where Vcpkg is located. Be careful with changing this one. It is, for example, unable to update this property page from the new location without restarting visual studio."
- Category="General"
- Subtype="folder"
- Visible="false">
- </StringProperty>
- <StringProperty Name="VcpkgManifestRoot"
- DisplayName="Vcpkg Manifest Root"
- Description="The path to the directory which contains the manifest file, and the vcpkg_installed directory."
- Category="General"
- Subtype="folder"
- Visible="false">
- </StringProperty>
- <StringProperty Name="VcpkgCurrentInstalledDir"
- DisplayName="Package install directory"
- Description="Defines the direct path to the installed Vcpkg packages. Only change this if you know what you are doing!"
- Category="General"
- Subtype="folder"
- Visible="false">
- </StringProperty>
- <EnumProperty Name="VcpkgConfiguration" DisplayName="Vcpkg Configuration" Description="Specifies if release or debug libraries build with vcpkg should be used." Category="General">
- <EnumValue Name="Release" Switch="Release" DisplayName="Release" Description="Uses release libraries">
- </EnumValue>
- <EnumValue Name="Debug" Switch="Debug" DisplayName="Debug" Description="Uses debug libraries">
- </EnumValue>
- </EnumProperty>
-</Rule>
+<?xml version="1.0" encoding="utf-8"?>
+<Rule Name="VcpkgOptions" DisplayName="vcpkg" PageTemplate="generic" Description="Vcpkg"
+ xmlns="http://schemas.microsoft.com/build/2009/properties">
+
+ <Rule.Categories>
+ <Category Name="General" DisplayName="General" Description="General Vcpkg Configuration" />
+ <Category Name="Conditional" DisplayName="Target and Configuration Specific" Description="Conditional Vcpkg Configuration" />
+ </Rule.Categories>
+
+ <Rule.DataSource>
+ <!-- Note: HasConfigurationCondition must be either "true" or ommitted. Otherwise, the vcpkg property sheet will not be displayed. -->
+ <!-- Note: Remove all instances of 'Label="Vcpkg"' from this file if the vcpkg property sheet does not display any values. -->
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="true" />
+ </Rule.DataSource>
+
+ <BoolProperty Name="VcpkgEnabled" DisplayName="Use Vcpkg" Category="General" Default="true"
+ Description="Use Vcpkg for includes and libraries.">
+ <BoolProperty.DataSource>
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="false" />
+ </BoolProperty.DataSource>
+ </BoolProperty>
+
+ <BoolProperty Name="VcpkgEnableManifest" DisplayName="Use Vcpkg Manifest" Category="General" Default="false"
+ Description="Use the vcpkg manifest file to define your dependencies.">
+ <BoolProperty.DataSource>
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="false" />
+ </BoolProperty.DataSource>
+ </BoolProperty>
+
+ <BoolProperty Name="VcpkgManifestInstall" DisplayName="Install Vcpkg Dependencies" Category="General" Default="true"
+ Description="Install dependencies from the vcpkg manifest.">
+ <BoolProperty.DataSource>
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="false" />
+ </BoolProperty.DataSource>
+ </BoolProperty>
+
+ <BoolProperty Name="VcpkgAutoLink" DisplayName="Use AutoLink" Category="General" Default="true"
+ Description="Enables automatic linking with libraries build using Vcpkg. Does not work with lld-link.exe.">
+ <BoolProperty.DataSource>
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="false" />
+ </BoolProperty.DataSource>
+ </BoolProperty>
+
+ <StringProperty Name="VcpkgRoot" DisplayName="Vcpkg Root" Category="General" Subtype="folder" Visible="false"
+ Description="Root path where Vcpkg is located. Be careful with changing this one. It is, for example, unable to update this property page from the new location without restarting visual studio.">
+ <StringProperty.DataSource>
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="false" />
+ </StringProperty.DataSource>
+ </StringProperty>
+
+ <StringProperty Name="VcpkgManifestRoot" DisplayName="Vcpkg Manifest Root" Category="General" Subtype="folder" Visible="false"
+ Description="The path to the directory which contains the manifest file, and the vcpkg_installed directory.">
+ <StringProperty.DataSource>
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="false" />
+ </StringProperty.DataSource>
+ </StringProperty>
+
+ <StringProperty Name="VcpkgCurrentInstalledDir" DisplayName="Package install directory" Category="General" Subtype="folder" Visible="false"
+ Description="Defines the direct path to the installed Vcpkg packages.">
+ <StringProperty.DataSource>
+ <DataSource Persistence="ProjectFile" Label="Vcpkg" HasConfigurationCondition="false" />
+ </StringProperty.DataSource>
+ </StringProperty>
+
+ <BoolProperty Name="VcpkgUseStatic" DisplayName="Use Static Libraries" Category="Conditional" Default="false"
+ Description="Vcpkg can build static libraries (e.g. x64-windows-static). This options changes the default triplet to use these static libraries by appending -static to $(VcpkgTriplet). This will not be shown in the evaluation of the Triplet within the UI." />
+
+ <StringProperty Name="VcpkgTriplet" DisplayName="Triplet" Category="Conditional" Subtype="Text"
+ Description="Specifies the triplet used by Vcpkg. Does not include the '-static' suffix that may be added by the 'Use static libraries' flag." />
+
+ <EnumProperty Name="VcpkgConfiguration" DisplayName="Vcpkg Configuration" Category="Conditional"
+ Description="Specifies if release or debug libraries build with vcpkg should be used.">
+ <EnumValue Name="Release" Description="Uses release libraries" />
+ <EnumValue Name="Debug" Description="Uses debug libraries" />
+ </EnumProperty>
+
+</Rule>
diff --git a/scripts/buildsystems/msbuild/vcpkg.props b/scripts/buildsystems/msbuild/vcpkg.props
index f9db4fc58..f9f5511f0 100644
--- a/scripts/buildsystems/msbuild/vcpkg.props
+++ b/scripts/buildsystems/msbuild/vcpkg.props
@@ -1,41 +1,34 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <VcpkgHasProps>true</VcpkgHasProps>
- <VcpkgEnabled Condition="'$(VcpkgEnabled)' == ''">true</VcpkgEnabled>
- <VcpkgAutoLink Condition="'$(VcpkgAutoLink)' == ''">true</VcpkgAutoLink>
- <VcpkgUseStatic Condition="'$(VcpkgUseStatic)' == ''">false</VcpkgUseStatic>
- <VcpkgRoot Condition="'$(VcpkgRoot)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), .vcpkg-root))</VcpkgRoot>
- <VcpkgConfiguration Condition="'$(VcpkgConfiguration)' == ''">$(Configuration)</VcpkgConfiguration>
- <VcpkgPageSchema Condition="'$(VcpkgPageSchema)' == ''">$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg-general.xml</VcpkgPageSchema>
- </PropertyGroup>
+ <!-- Do not define derived properties here. This file may be imported once and some of the properties below may be overridden afterwards -->
<!-- Set default OS Target-->
- <PropertyGroup Condition="'$(ApplicationType)|$(ApplicationTypeRevision)' == 'Windows Store|10.0'">
- <VcpkgOSTarget Condition="'$(VcpkgOSTarget)' == ''">uwp</VcpkgOSTarget>
- </PropertyGroup>
- <PropertyGroup>
- <VcpkgOSTarget Condition="'$(VcpkgOSTarget)' == ''">windows</VcpkgOSTarget>
+ <PropertyGroup Condition="'$(VcpkgOSTarget)' == ''">
+ <VcpkgOSTarget>windows</VcpkgOSTarget>
+ <VcpkgOSTarget Condition="'$(ApplicationType)|$(ApplicationTypeRevision)' == 'Windows Store|10.0'">uwp</VcpkgOSTarget>
</PropertyGroup>
<!-- Set default Platform Target. $(PlatformTarget) is not available at the top of the .vcxproj file. -->
- <PropertyGroup Condition="'$(Platform)' == 'Win32'">
- <VcpkgPlatformTarget Condition="'$(VcpkgPlatformTarget)' == ''">x86</VcpkgPlatformTarget>
- </PropertyGroup>
- <PropertyGroup>
- <VcpkgPlatformTarget Condition="'$(VcpkgPlatformTarget)' == ''">$(Platform)</VcpkgPlatformTarget>
+ <PropertyGroup Condition="'$(VcpkgPlatformTarget)' == ''">
+ <VcpkgPlatformTarget>$(Platform)</VcpkgPlatformTarget>
+ <VcpkgPlatformTarget Condition="'$(Platform)' == 'Win32'">x86</VcpkgPlatformTarget>
</PropertyGroup>
- <!-- Manifest files -->
<PropertyGroup>
+ <VcpkgPropsImported>true</VcpkgPropsImported>
+ <VcpkgEnabled Condition="'$(VcpkgEnabled)' == ''">true</VcpkgEnabled>
+ <VcpkgConfiguration Condition="'$(VcpkgConfiguration)' == ''">$(Configuration)</VcpkgConfiguration>
+ <VcpkgUseStatic Condition="'$(VcpkgUseStatic)' == ''">false</VcpkgUseStatic>
+ <VcpkgRoot Condition="'$(VcpkgRoot)' == ''">$([System.IO.Path]::Combine($(MSBuildThisFileDirectory), '..\..\..'))</VcpkgRoot>
+
+ <VcpkgAutoLink Condition="'$(VcpkgAutoLink)' == ''">true</VcpkgAutoLink>
+ <!-- Deactivate Autolinking if lld is used as a linker. (Until a better way to solve the problem is found!).
+ Tried to add /lib as a parameter to the linker call but was unable to find a way to pass it as the first parameter. -->
+ <VcpkgAutoLink Condition="'$(UseLldLink)' == 'true'">false</VcpkgAutoLink>
+
+ <!-- Manifest files -->
<VcpkgEnableManifest Condition="'$(VcpkgEnableManifest)' == ''">false</VcpkgEnableManifest>
<VcpkgManifestInstall Condition="'$(VcpkgManifestInstall)' == ''">true</VcpkgManifestInstall>
- <VcpkgManifestRoot>$([MSbuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), vcpkg.json))</VcpkgManifestRoot>
+ <VcpkgManifestRoot Condition="'$(VcpkgManifestRoot)' != ''">$([MSbuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), vcpkg.json))</VcpkgManifestRoot>
</PropertyGroup>
- <!-- Set other defaults-->
- <PropertyGroup>
- <VcpkgUserTriplet Condition="'$(VcpkgUserTriplet)' == ''">$(VcpkgPlatformTarget)-$(VcpkgOSTarget)</VcpkgUserTriplet>
- <VcpkgTriplet Condition="'$(VcpkgTriplet)' == ''">$(VcpkgUserTriplet)</VcpkgTriplet>
- <VcpkgPageSchema>$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg-general.xml</VcpkgPageSchema>
- </PropertyGroup>
</Project>
diff --git a/scripts/buildsystems/msbuild/vcpkg.targets b/scripts/buildsystems/msbuild/vcpkg.targets
index 5013d764a..488fd070c 100644
--- a/scripts/buildsystems/msbuild/vcpkg.targets
+++ b/scripts/buildsystems/msbuild/vcpkg.targets
@@ -1,77 +1,35 @@
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="VcpkgRoot;VcpkgCurrentInstalledDir">
- <!-- Setting reasonable defaults if vcpkg.props was not loaded-->
- <PropertyGroup Condition="'$(VcpkgHasProps)'!='true'" >
- <VcpkgEnabled Condition="'$(VcpkgEnabled)' == ''">true</VcpkgEnabled>
- <VcpkgAutoLink Condition="'$(VcpkgAutoLink)' == ''">true</VcpkgAutoLink>
- <VcpkgUseStatic Condition="'$(VcpkgUseStatic)' == ''">false</VcpkgUseStatic>
- <VcpkgRoot Condition="'$(VcpkgRoot)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), .vcpkg-root))</VcpkgRoot>
- <VcpkgConfiguration Condition="'$(VcpkgConfiguration)' == ''">$(Configuration)</VcpkgConfiguration>
- <VcpkgPageSchema Condition="'$(VcpkgPageSchema)' == ''">$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg-general.xml</VcpkgPageSchema>
- <VcpkgEnableManifest Condition="'$(VcpkgEnableManifest)' == ''">false</VcpkgEnableManifest>
- <VcpkgManifestInstall Condition="'$(VcpkgManifestInstall)' == ''">true</VcpkgManifestInstall>
- <VcpkgManifestRoot>$([MSbuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), vcpkg.json))</VcpkgManifestRoot>
- </PropertyGroup>
-
- <!-- Set default OS Target-->
- <PropertyGroup Condition="'$(ApplicationType)|$(ApplicationTypeRevision)' == 'Windows Store|10.0' And '$(VcpkgHasProps)'!='true'">
- <VcpkgOSTarget Condition="'$(VcpkgOSTarget)' == ''">uwp</VcpkgOSTarget>
- </PropertyGroup>
- <PropertyGroup Condition="'$(VcpkgHasProps)'!='true'" >
- <VcpkgOSTarget Condition="'$(VcpkgOSTarget)' == ''">windows</VcpkgOSTarget>
- </PropertyGroup>
-
- <!-- Set default Platform Target-->
- <PropertyGroup Condition="'$(Platform)' == 'Win32'">
- <VcpkgPlatformTarget Condition="'$(VcpkgPlatformTarget)' == ''">x86</VcpkgPlatformTarget>
- </PropertyGroup>
- <PropertyGroup>
- <VcpkgPlatformTarget Condition="'$(VcpkgPlatformTarget)' == ''">$(Platform)</VcpkgPlatformTarget>
- </PropertyGroup>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="VcpkgConfigSubdir;VcpkgCurrentInstalledDir;VcpkgInstalledDir;VcpkgNormalizedConfiguration">
- <!-- Set other defaults-->
- <PropertyGroup Condition="'$(VcpkgHasProps)'!='true'" >
- <VcpkgUserTriplet Condition="'$(VcpkgUserTriplet)' == ''">$(VcpkgPlatformTarget)-$(VcpkgOSTarget)</VcpkgUserTriplet>
- <VcpkgTriplet Condition="'$(VcpkgTriplet)' == ''">$(VcpkgUserTriplet)</VcpkgTriplet>
- <VcpkgCurrentInstalledDir Condition="'$(VcpkgCurrentInstalledDir)' == ''">$(VcpkgRoot)\installed\$(VcpkgTriplet)\</VcpkgCurrentInstalledDir>
- </PropertyGroup>
+ <!-- Import default properties if not done yet. This does not overwrite any previously defined properties. -->
+ <Import Condition="'$(VcpkgPropsImported)' != 'true'" Project="vcpkg.props" />
- <!--Import property page for vcpkg -->
- <ItemGroup Condition="'$(VcpkgPageSchema)' != '' ">
- <PropertyPageSchema Include="$(VcpkgPageSchema)">
- <Context>Project</Context>
- </PropertyPageSchema>
- </ItemGroup>
-
- <!-- Update properties if manifests are enabled or disabled -->
- <PropertyGroup Condition="'$(VcpkgEnableManifest)' == 'true'">
- <VcpkgInstalledDir>$(VcpkgManifestRoot)\vcpkg_installed\</VcpkgInstalledDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(VcpkgEnableManifest)' != 'true'">
- <VcpkgInstalledDir>$(VcpkgRoot)\installed\</VcpkgInstalledDir>
- </PropertyGroup>
+ <!-- Define properties derived from those defined in vcpkg.props, in the project file or specified on the command line. -->
+ <PropertyGroup Condition="'$(VcpkgEnabled)' == 'true'">
+ <!-- Triplet defining platform, OS, and linkage -->
+ <VcpkgLinkage />
+ <VcpkgLinkage Condition="'$(VcpkgUseStatic)' == 'true'">-static</VcpkgLinkage>
+ <VcpkgTriplet Condition="'$(VcpkgTriplet)' == ''">$(VcpkgPlatformTarget)-$(VcpkgOSTarget)$(VcpkgLinkage)</VcpkgTriplet>
- <!-- Update properties if using static libs-->
- <PropertyGroup Condition="'$(VcpkgUseStatic)' == 'true'">
- <VcpkgTriplet>$(VcpkgUserTriplet)-static</VcpkgTriplet>
- </PropertyGroup>
+ <!-- Note: Overwrite VcpkgPageSchema with a non-existing path to disable the VcPkg property sheet in your projects -->
+ <VcpkgPageSchema Condition="'$(VcpkgPageSchema)' == ''">$([System.IO.Path]::Combine($(VcpkgRoot), 'scripts\buildsystems\msbuild\vcpkg-general.xml'))</VcpkgPageSchema>
- <PropertyGroup Condition="'$(VcpkgCurrentInstalledDir)' == ''">
- <VcpkgCurrentInstalledDir>$(VcpkgInstalledDir)$(VcpkgTriplet)</VcpkgCurrentInstalledDir>
- </PropertyGroup>
-
- <PropertyGroup Condition="'$(VcpkgEnabled)' == 'true'">
+ <VcpkgInstalledDir>$([System.IO.Path]::Combine($(VcpkgRoot), 'installed'))</VcpkgInstalledDir>
+ <VcpkgInstalledDir Condition="'$(VcpkgEnableManifest)' == 'true'">$([System.IO.Path]::Combine($(VcpkgManifestRoot), 'vcpkg_installed'))</VcpkgInstalledDir>
+ <VcpkgCurrentInstalledDir Condition="'$(VcpkgCurrentInstalledDir)' == ''">$([System.IO.Path]::Combine($(VcpkgInstalledDir), $(VcpkgTriplet)))</VcpkgCurrentInstalledDir>
+ <VcpkgCurrentInstalledDir Condition="!$(VcpkgCurrentInstalledDir.EndsWith('\'))">$(VcpkgCurrentInstalledDir)\</VcpkgCurrentInstalledDir>
<VcpkgNormalizedConfiguration Condition="$(VcpkgConfiguration.StartsWith('Debug'))">Debug</VcpkgNormalizedConfiguration>
<VcpkgNormalizedConfiguration Condition="$(VcpkgConfiguration.StartsWith('Release')) or '$(VcpkgConfiguration)' == 'RelWithDebInfo' or '$(VcpkgConfiguration)' == 'MinSizeRel'">Release</VcpkgNormalizedConfiguration>
<VcpkgConfigSubdir Condition="'$(VcpkgNormalizedConfiguration)' == 'Debug'">debug\</VcpkgConfigSubdir>
- <VcpkgRoot Condition="!$(VcpkgRoot.EndsWith('\'))">$(VcpkgRoot)\</VcpkgRoot>
- <VcpkgCurrentInstalledDir Condition="!$(VcpkgCurrentInstalledDir.EndsWith('\'))">$(VcpkgCurrentInstalledDir)\</VcpkgCurrentInstalledDir>
- <VcpkgManifestRoot Condition="'$(VcpkgManifestRoot)' != '' and !$(VcpkgManifestRoot.EndsWith('\'))">$(VcpkgManifestRoot)\</VcpkgManifestRoot>
<VcpkgApplocalDeps Condition="'$(VcpkgApplocalDeps)' == ''">true</VcpkgApplocalDeps>
- <!-- Deactivate Autolinking if lld is used as a linker. (Until a better way to solve the problem is found!).
- Tried to add /lib as a parameter to the linker call but was unable to find a way to pass it as the first parameter. -->
- <VcpkgAutoLink Condition="'$(UseLldLink)' == 'true'">false</VcpkgAutoLink>
</PropertyGroup>
+ <!-- Import property page 'Vcpkg' -->
+ <ItemGroup Condition="'$(VcpkgPageSchema)' != '' and exists('$(VcpkgPageSchema)')">
+ <PropertyPageSchema Include="$(VcpkgPageSchema)">
+ <Context>Project</Context>
+ </PropertyPageSchema>
+ </ItemGroup>
+
<ItemDefinitionGroup Condition="'$(VcpkgEnabled)' == 'true'">
<Link>
<AdditionalDependencies Condition="'$(VcpkgAutoLink)' != 'false'">%(AdditionalDependencies);$(VcpkgCurrentInstalledDir)$(VcpkgConfigSubdir)lib\*.lib</AdditionalDependencies>
@@ -85,28 +43,32 @@
</ResourceCompile>
</ItemDefinitionGroup>
- <Target Name="VcpkgCheckManifestRoot" Condition="'$(VcpkgEnabled)' == 'true'" BeforeTargets="VcpkgInstallManifestDependencies">
- <Error Text="The Vcpkg manifest was enabled, but we couldn't find a manifest file (vcpkg.json) in any directories above $(MSBuildProjectDirectory). Please add a manifest, disable manifests in your properties page, or pass /p:VcpkgEnableManifest=false." Condition="'$(VcpkgEnableManifest)' == 'true' and '$(VcpkgManifestRoot)' == ''" />
- <Message Text="The Vcpkg manifest was disabled, but we found a manifest file in $(VcpkgManifestRoot). You may want to enable vcpkg manifests in your properties page or pass /p:VcpkgEnableManifest=true to the msbuild invocation." Importance="High" Condition="'$(VcpkgEnableManifest)' != 'true' and '$(VcpkgManifestRoot)' != ''" />
+ <Target Name="VcpkgCheckManifestRoot" BeforeTargets="VcpkgInstallManifestDependencies" Condition="'$(VcpkgEnabled)' == 'true'">
+ <Error Text="The Vcpkg manifest was enabled, but we couldn't find a manifest file (vcpkg.json) in any directories above $(MSBuildProjectDirectory). Please add a manifest, disable manifests in your properties page, or pass /p:VcpkgEnableManifest=false."
+ Condition="'$(VcpkgEnableManifest)' == 'true' and '$(VcpkgManifestRoot)' == ''" />
+ <Message Text="The Vcpkg manifest was disabled, but we found a manifest file in $(VcpkgManifestRoot). You may want to enable vcpkg manifests in your properties page or pass /p:VcpkgEnableManifest=true to the msbuild invocation."
+ Importance="High" Condition="'$(VcpkgEnableManifest)' != 'true' and '$(VcpkgManifestRoot)' != ''" />
</Target>
<Target Name="VcpkgTripletSelection" BeforeTargets="ClCompile">
- <Message Text="Using triplet &quot;$(VcpkgTriplet)&quot; from &quot;$(VcpkgCurrentInstalledDir)&quot;" Importance="Normal" Condition="'$(VcpkgEnabled)' == 'true'"/>
- <Message Text="Not using Vcpkg because VcpkgEnabled is &quot;$(VcpkgEnabled)&quot;" Importance="Normal" Condition="'$(VcpkgEnabled)' != 'true'"/>
+ <Message Text="Using triplet &quot;$(VcpkgTriplet)&quot; from &quot;$(VcpkgCurrentInstalledDir)&quot;"
+ Importance="Normal" Condition="'$(VcpkgEnabled)' == 'true'"/>
+ <Message Text="Not using Vcpkg because VcpkgEnabled is &quot;$(VcpkgEnabled)&quot;"
+ Importance="Normal" Condition="'$(VcpkgEnabled)' != 'true'"/>
<Message Text="Vcpkg is unable to link because we cannot decide between Release and Debug libraries. Please define the property VcpkgConfiguration to be 'Release' or 'Debug' (currently '$(VcpkgConfiguration)')."
Importance="High" Condition="'$(VcpkgEnabled)' == 'true' and '$(VcpkgNormalizedConfiguration)' == ''"/>
</Target>
- <Target Name="VcpkgInstallManifestDependencies" Condition="'$(VcpkgEnabled)' == 'true' and '$(VcpkgEnableManifest)' == 'true' and '$(VcpkgManifestInstall)' == 'true'" BeforeTargets="ClCompile">
+ <Target Name="VcpkgInstallManifestDependencies" BeforeTargets="ClCompile"
+ Condition="'$(VcpkgEnabled)' == 'true' and '$(VcpkgEnableManifest)' == 'true' and '$(VcpkgManifestInstall)' == 'true'">
<Message Text="Installing vcpkg dependencies" Importance="High" />
- <Exec Command="%22$(VcpkgRoot)vcpkg.exe%22 install --x-wait-for-lock --triplet %22$(VcpkgTriplet)%22 --vcpkg-root %22$(VcpkgRoot)\%22 %22--x-manifest-root=$(VcpkgManifestRoot)\%22 %22--x-install-root=$(VcpkgInstalledDir)\%22" StandardOutputImportance="High" />
+ <Exec Command="%22$([System.IO.Path]::Combine($(VcpkgRoot), 'vcpkg.exe'))%22 install --x-wait-for-lock --triplet %22$(VcpkgTriplet)%22 --vcpkg-root %22$(VcpkgRoot)\%22 %22--x-manifest-root=$(VcpkgManifestRoot)\%22 %22--x-install-root=$(VcpkgInstalledDir)\%22"
+ StandardOutputImportance="High" />
</Target>
- <Target Name="AppLocalFromInstalled" AfterTargets="CopyFilesToOutputDirectory" BeforeTargets="CopyLocalFilesOutputGroup;RegisterOutput" Condition="'$(VcpkgEnabled)' == 'true' and '$(VcpkgApplocalDeps)' == 'true'">
+ <Target Name="AppLocalFromInstalled" AfterTargets="CopyFilesToOutputDirectory" BeforeTargets="CopyLocalFilesOutputGroup;RegisterOutput"
+ Condition="'$(VcpkgEnabled)' == 'true' and '$(VcpkgApplocalDeps)' == 'true'">
<Message Text="[vcpkg] Starting VcpkgApplocalDeps" Importance="low" />
- <WriteLinesToFile
- File="$(TLogLocation)$(ProjectName).write.1u.tlog"
- Lines="^$(TargetPath);$([System.IO.Path]::Combine($(ProjectDir),$(IntDir)))vcpkg.applocal.log" Encoding="Unicode"/>
<PropertyGroup>
<_VcpkgAppLocalPowerShellCommonArguments>-ExecutionPolicy Bypass -noprofile -File "$(MSBuildThisFileDirectory)applocal.ps1" "$(TargetPath)" "$(VcpkgCurrentInstalledDir)$(VcpkgConfigSubdir)bin" "$(TLogLocation)$(ProjectName).write.1u.tlog" "$(IntDir)vcpkg.applocal.log"</_VcpkgAppLocalPowerShellCommonArguments>
</PropertyGroup>