winget configuration files for installing Visual Studio Community 2022

A first step into streamlining the dependency installation process
using winget / DevHome

You can apply winget configurations with DevHome or from commandline
by running

winget configure -f path-to-configuration.yaml

The *.vsconfig files can also be manually imported into Visual Studio
Installer to install missing components into an existing installation

Two variants are provided in this commit, one set including the
components needed to cross-compile for ARM64 (uses around 1GB)

The version of the Windows SDK chosen is the one that matches the SDK
from the recommended packages, to avoid installing two different SDKs
when using the configuration that includes the recommended packages

The *.vsconfig files don't include the implied packages/the ones
required by the workload. For a list of the components and their
corresponding friendly names, see
https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-community

Change-Id: Ie44ee3dd39c3e61fb2d7c597b71a4a81e0e6b8d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173336
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
This commit is contained in:
Christian Lohmaier 2024-09-13 13:56:04 +02:00
parent 4c17c2303d
commit ea6f4bb93e
5 changed files with 94 additions and 0 deletions

View file

@ -0,0 +1,15 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.Net.Component.4.8.SDK",
"Microsoft.VisualStudio.Component.Git",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.Llvm.Clang",
"Microsoft.VisualStudio.Component.VC.Redist.MSM",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.Windows11SDK.22621"
],
"extensions": []
}

View file

@ -0,0 +1,18 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.Net.Component.4.8.SDK",
"Microsoft.VisualStudio.Component.Git",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.Llvm.Clang",
"Microsoft.VisualStudio.Component.VC.Redist.MSM",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",
"Microsoft.VisualStudio.Component.Windows11SDK.22621"
],
"extensions": []
}

View file

@ -0,0 +1,30 @@
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
# This configuration is for a typical end-user installation of Visual Studio Community 2022 with the
# required components to build LibreOffice, excluding the components to cross-compile for ARM64
# It includes recommended packages as if you had selected the "Desktop development with C++"
# workload in the in the UI driven installer.
# (the allowPrerelease directive refers to the DSC module)
properties:
resources:
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: VisualStudio
directives:
description: Install Visual Studio 2022 Community
allowPrerelease: true
settings:
id: Microsoft.VisualStudio.2022.Community
source: winget
- resource: Microsoft.VisualStudio.DSC/VSComponents
id: LibreOffice Components including recommended packages
dependsOn:
- VisualStudio
directives:
description: Install components required to build LibreOffice, including recommended ones
settings:
productId: Microsoft.VisualStudio.Product.Community
channelId: VisualStudio.17.Release
vsConfigFile: '${WinGetConfigRoot}\2022.vsconfig'
IncludeRecommended: true
configurationVersion: 0.2.0

View file

@ -0,0 +1,30 @@
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
# This configuration is for a minimal installation of Visual Studio meant for CI use or setups with
# remote access with no need for convenience features of the IDE. It installs the dependencies
# without additional recommended packages. If you want to use the IDE to edit code, you probably
# want to use the regular configuration.dsc.yaml (or launch Visual Studio Installer afterwards, pick
# modify and then unselect and reselect the "Desktop Development with C++" workload)
# (the allowPrerelease directive refers to the DSC module)
properties:
resources:
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: VisualStudio
directives:
description: Install Visual Studio 2022 Community
allowPrerelease: true
settings:
id: Microsoft.VisualStudio.2022.Community
source: winget
- resource: Microsoft.VisualStudio.DSC/VSComponents
id: minimal LibreOffice Components
dependsOn:
- VisualStudio
directives:
description: Install components required to build LibreOffice
settings:
productId: Microsoft.VisualStudio.Product.Community
channelId: VisualStudio.17.Release
vsConfigFile: '${WinGetConfigRoot}\2022_cross.vsconfig'
configurationVersion: 0.2.0

1
.vsconfig Symbolic link
View file

@ -0,0 +1 @@
.configurations/2022.vsconfig