-
Notifications
You must be signed in to change notification settings - Fork 20
U/sgriffin/vc2026 #167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
U/sgriffin/vc2026 #167
Changes from all commits
c39ab11
397ed25
7a8ec30
f8efc98
2405bc0
f90d65c
8e457ff
8c7b20d
bba20d7
14f70be
0f6a5a4
a0109fb
4186348
eda8175
3c74dae
096a611
8862bc8
8746341
d7186a2
b41fde2
a5125bb
9700f1f
2b40870
5154baa
de2788f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -13,13 +13,25 @@ permissions: | |||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| jobs: | ||||||||||||||||||||||||||||
| build: | ||||||||||||||||||||||||||||
| runs-on: windows-latest | ||||||||||||||||||||||||||||
| # Use VS 2026 preview runner (GA May 4, 2026, then switch to windows-2025) | ||||||||||||||||||||||||||||
| runs-on: windows-2025-vs2026 | ||||||||||||||||||||||||||||
stephenegriffin marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||
| permissions: | ||||||||||||||||||||||||||||
| security-events: write | ||||||||||||||||||||||||||||
| strategy: | ||||||||||||||||||||||||||||
| fail-fast: false | ||||||||||||||||||||||||||||
| matrix: | ||||||||||||||||||||||||||||
| configuration: [ 'Release', 'Debug', 'Release_Unicode', 'Debug_Unicode' ] | ||||||||||||||||||||||||||||
| platform: [ 'Win32', 'x64' ] | ||||||||||||||||||||||||||||
| platform: [ 'Win32', 'x64', 'ARM64', 'ARM64EC' ] | ||||||||||||||||||||||||||||
| exclude: | ||||||||||||||||||||||||||||
| # ARM64/ARM64EC only need Unicode builds | ||||||||||||||||||||||||||||
| - platform: ARM64 | ||||||||||||||||||||||||||||
| configuration: Release | ||||||||||||||||||||||||||||
| - platform: ARM64 | ||||||||||||||||||||||||||||
| configuration: Debug | ||||||||||||||||||||||||||||
| - platform: ARM64EC | ||||||||||||||||||||||||||||
| configuration: Release | ||||||||||||||||||||||||||||
| - platform: ARM64EC | ||||||||||||||||||||||||||||
| configuration: Debug | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||
| - name: Harden Runner | ||||||||||||||||||||||||||||
|
|
@@ -32,11 +44,17 @@ jobs: | |||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||
| submodules: 'recursive' | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| - name: Install Windows 11 SDK (10.0.22621.0) | ||||||||||||||||||||||||||||
| shell: pwsh | ||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||
| & "${{ github.workspace }}\scripts\install-winsdk.ps1" | ||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
| - name: "Build" | ||||||||||||||||||||||||||||
| shell: pwsh | ||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||
stephenegriffin marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||
| $path = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath | ||||||||||||||||||||||||||||
| & $path\MSBuild\Current\Bin\amd64\msbuild.exe /m /p:Configuration="${{matrix.configuration}}" /p:Platform="${{matrix.platform}}" mapistub.sln | ||||||||||||||||||||||||||||
| $vsPath = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath | ||||||||||||||||||||||||||||
| $msbuildPath = Join-Path $vsPath "MSBuild\Current\Bin\amd64\msbuild.exe" | ||||||||||||||||||||||||||||
|
Comment on lines
+55
to
+56
|
||||||||||||||||||||||||||||
| $vsPath = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath | |
| $msbuildPath = Join-Path $vsPath "MSBuild\Current\Bin\amd64\msbuild.exe" | |
| $vswherePath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" | |
| if (-not (Test-Path $vswherePath)) { | |
| Write-Error "vswhere.exe not found at expected path: $vswherePath" | |
| exit 1 | |
| } | |
| $vsPath = & $vswherePath -latest -requires Microsoft.Component.MSBuild -property installationPath | |
| $msbuildPath = Join-Path $vsPath "MSBuild\Current\Bin\amd64\msbuild.exe" | |
| if (-not (Test-Path $msbuildPath)) { | |
| Write-Error "MSBuild not found at expected path: $msbuildPath (Visual Studio installation path: $vsPath)" | |
| exit 1 | |
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
| <Project> | ||
| <PropertyGroup> | ||
| <!-- VS 2026 Toolset --> | ||
stephenegriffin marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| <PlatformToolset>v145</PlatformToolset> | ||
stephenegriffin marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| <!-- Windows 11 SDK (pinned for reproducible builds) --> | ||
| <WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion> | ||
|
|
||
| <!-- Security Features (PropertyGroup level) --> | ||
| <!-- Note: Spectre mitigated libs may not be available for ARM64/ARM64EC --> | ||
| <SpectreMitigation Condition="'$(Platform)' != 'ARM64' AND '$(Platform)' != 'ARM64EC'">Spectre</SpectreMitigation> | ||
| <SpectreMitigation Condition="'$(Platform)' == 'ARM64' OR '$(Platform)' == 'ARM64EC'">false</SpectreMitigation> | ||
| <ControlFlowGuard>Guard</ControlFlowGuard> | ||
| <GuardEHContMetadata>true</GuardEHContMetadata> | ||
stephenegriffin marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| </PropertyGroup> | ||
|
|
||
| <!-- Compiler Settings - Quality & Security Baseline --> | ||
| <!-- CET (Control-flow Enforcement Technology) enabled by default, disabled for ARM64/ARM64EC below --> | ||
| <ItemDefinitionGroup> | ||
| <ClCompile> | ||
| <WarningLevel>Level4</WarningLevel> | ||
| <TreatWarningAsError>true</TreatWarningAsError> | ||
| <SDLCheck>true</SDLCheck> | ||
| <LanguageStandard>stdcpplatest</LanguageStandard> | ||
| </ClCompile> | ||
| <Link> | ||
| <CETCompat>true</CETCompat> | ||
| </Link> | ||
| </ItemDefinitionGroup> | ||
|
|
||
| <!-- Disable CET for ARM64/ARM64EC (not supported) --> | ||
| <ItemDefinitionGroup Condition="'$(Platform)' == 'ARM64' OR '$(Platform)' == 'ARM64EC'"> | ||
| <Link> | ||
| <CETCompat>false</CETCompat> | ||
| </Link> | ||
| </ItemDefinitionGroup> | ||
| </Project> | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -35,9 +35,9 @@ The project includes all necessary MAPI headers in the `include` directory, so n | |||||||||||||||
|
|
||||||||||||||||
| You now have a file, `MAPIStubLibrary.lib`, which you can link in to your project. | ||||||||||||||||
|
|
||||||||||||||||
| ## Building with Node.js/node-gyp | ||||||||||||||||
| ## Building with Node.js scripts | ||||||||||||||||
|
|
||||||||||||||||
| Alternatively, you can build using Node.js and node-gyp (this creates a static library): | ||||||||||||||||
| The npm scripts now use MSBuild by default (and keep node-gyp scripts under `gyp:*`): | ||||||||||||||||
|
|
||||||||||||||||
|
Comment on lines
+40
to
41
|
||||||||||||||||
| The npm scripts now use MSBuild by default (and keep node-gyp scripts under `gyp:*`): | |
| The npm scripts now use MSBuild by default (and keep node-gyp scripts under `gyp:*`). | |
| **Prerequisites (in addition to Node.js):** | |
| - Visual Studio 2019 or later **or** Visual Studio Build Tools with MSBuild and the C++ toolset installed (for example, the "Desktop development with C++" workload). | |
| - Windows 10 SDK **10.0.22621.0** installed (the MSBuild-based scripts are pinned to this SDK version). |
Uh oh!
There was an error while loading. Please reload this page.