From a84d9698a23e1fd03e1e3374521c3d891f60d135 Mon Sep 17 00:00:00 2001 From: Sihu Hwang <129564966+hwangsihu@users.noreply.github.com> Date: Wed, 4 Mar 2026 18:41:36 +0900 Subject: [PATCH 1/2] Add support for Visual Studio 2026 --- .github/workflows/cmake.yml | 3 ++ .github/workflows/windows.yml | 16 +++++++++ ACE/NEWS | 2 ++ ACE/ace/config-win32-msvc-145.h | 29 +++++++++++++++ ACE/ace/config-win32-msvc.h | 4 ++- .../MakeProjectCreator/config/acedefaults.mpb | 2 +- .../MakeProjectCreator/config/vs2026.features | 4 +++ .../MakeProjectCreator/config/vs2026nmake.mpb | 36 +++++++++++++++++++ 8 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 ACE/ace/config-win32-msvc-145.h create mode 100644 ACE/bin/MakeProjectCreator/config/vs2026.features create mode 100644 ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 19086ce344809..eab2a367f2624 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -27,6 +27,9 @@ jobs: - CC: vs2022 CXX: vs2022 os: windows-2022 + - CC: vs2026 + CXX: vs2026 + os: windows-2025-vs2026 runs-on: ${{ matrix.os }} name: ${{ matrix.os }} ${{ matrix.CXX }} env: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 4fd4cb59e7811..1f49b898594ce 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -84,6 +84,22 @@ jobs: vcpkgarch: x64-windows vcpkglibdir: lib vcpkgpackages: '"openssl", "xerces-c", "zlib"' + - name: VS2026Debug64 + vmimage: windows-2025-vs2026 + mpctype: vs2026 + BuildPlatform: x64 + BuildConfiguration: Debug + vcpkgarch: x64-windows + vcpkglibdir: debug/lib + vcpkgpackages: '"openssl", "xerces-c", "zlib"' + - name: VS2026Release64 + vmimage: windows-2025-vs2026 + mpctype: vs2026 + BuildPlatform: x64 + BuildConfiguration: Release + vcpkgarch: x64-windows + vcpkglibdir: lib + vcpkgpackages: '"openssl", "xerces-c", "zlib"' runs-on: ${{ matrix.vmimage }} name: ${{ matrix.name }} env: diff --git a/ACE/NEWS b/ACE/NEWS index f5345bcbc01ef..bb86f85a9c6b8 100644 --- a/ACE/NEWS +++ b/ACE/NEWS @@ -1,6 +1,8 @@ USER VISIBLE CHANGES BETWEEN ACE-8.0.5 and ACE-8.0.6 ==================================================== +. Added support for Visual Studio 2026 + . Support floating-point-based `std::chrono::duration` in `ACE_Time_Value` . Don't disable inlining in a debug build with Embarcadero C++ Builder compilers diff --git a/ACE/ace/config-win32-msvc-145.h b/ACE/ace/config-win32-msvc-145.h new file mode 100644 index 0000000000000..9d562fcb22285 --- /dev/null +++ b/ACE/ace/config-win32-msvc-145.h @@ -0,0 +1,29 @@ +/* -*- C++ -*- */ +//============================================================================= +/** + * @file config-win32-msvc-145.h + * + * @brief Microsoft Visual C++ 14.5 configuration file. + * + * This file is the ACE configuration file for Microsoft Visual C++ 14.5 (as released with Visual Studio 2026). + * + * @note Do not include this file directly, include config-win32.h instead. + */ +//============================================================================= + +#ifndef ACE_CONFIG_WIN32_MSVC_145_H +#define ACE_CONFIG_WIN32_MSVC_145_H +#include /**/ "ace/pre.h" + +#ifndef ACE_CONFIG_WIN32_H +#error Use config-win32.h in config.h instead of this header +#endif /* ACE_CONFIG_WIN32_H */ + +#ifndef ACE_WIN32_VC145 +# define ACE_WIN32_VC145 +#endif + +#include "ace/config-win32-msvc-143.h" + +#include /**/ "ace/post.h" +#endif /* ACE_CONFIG_WIN32_MSVC_145_H */ diff --git a/ACE/ace/config-win32-msvc.h b/ACE/ace/config-win32-msvc.h index 0c165282284d2..d9321572d52fd 100644 --- a/ACE/ace/config-win32-msvc.h +++ b/ACE/ace/config-win32-msvc.h @@ -33,7 +33,9 @@ # define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS) //FUZZ: disable check_for_msc_ver -#if (_MSC_VER >= 1930) +#if (_MSC_VER >= 1950) +# include "ace/config-win32-msvc-145.h" +#elif (_MSC_VER >= 1930) # include "ace/config-win32-msvc-143.h" #elif (_MSC_VER >= 1920) # include "ace/config-win32-msvc-142.h" diff --git a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb index 37828f37d3ad5..374eb30524b2c 100644 --- a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb +++ b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb @@ -60,7 +60,7 @@ feature(!threads) { } feature(ace_languagestandard2017) { - specific(vs2017,vs2019,vs2022) { + specific(vs2017,vs2019,vs2022,vs2026) { LanguageStandard = stdcpp17 } specific(cmake) { diff --git a/ACE/bin/MakeProjectCreator/config/vs2026.features b/ACE/bin/MakeProjectCreator/config/vs2026.features new file mode 100644 index 0000000000000..ef60921945659 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vs2026.features @@ -0,0 +1,4 @@ +ssl=0 +qos=1 +rwho=0 +sctp=0 diff --git a/ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb b/ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb new file mode 100644 index 0000000000000..362bb17460838 --- /dev/null +++ b/ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb @@ -0,0 +1,36 @@ +// -*- MPC -*- +feature (nmake_avoid_Wp64) { + specific(nmake) { + add_compile -= /Wp64 + } +} + +feature (nmake_avoid_Gm) { + specific(nmake) { + compile_flags -= /Gm + } +} + +feature(vc_avoid_hides_local_declaration) { + specific(nmake) { + DisableSpecificWarnings += 4456 + } +} + +feature(vc_avoid_hides_global_declaration) { + specific(nmake) { + DisableSpecificWarnings += 4459 + } +} + +feature(vc_avoid_hides_class_member) { + specific(nmake) { + DisableSpecificWarnings += 4458 + } +} + +feature(ace_languagestandard2017) { + specific(nmake) { + compile_flags += /std:c++17 + } +} From fcf88adfc4ac89d12f6dfa2297b6a9721f0e6bae Mon Sep 17 00:00:00 2001 From: Sihu Hwang <129564966+hwangsihu@users.noreply.github.com> Date: Fri, 6 Mar 2026 22:06:32 +0900 Subject: [PATCH 2/2] Remove C++17 language standard override for vs2026 --- ACE/bin/MakeProjectCreator/config/acedefaults.mpb | 2 +- ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb index 374eb30524b2c..37828f37d3ad5 100644 --- a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb +++ b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb @@ -60,7 +60,7 @@ feature(!threads) { } feature(ace_languagestandard2017) { - specific(vs2017,vs2019,vs2022,vs2026) { + specific(vs2017,vs2019,vs2022) { LanguageStandard = stdcpp17 } specific(cmake) { diff --git a/ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb b/ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb index 362bb17460838..a2de3923249a0 100644 --- a/ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb +++ b/ACE/bin/MakeProjectCreator/config/vs2026nmake.mpb @@ -28,9 +28,3 @@ feature(vc_avoid_hides_class_member) { DisableSpecificWarnings += 4458 } } - -feature(ace_languagestandard2017) { - specific(nmake) { - compile_flags += /std:c++17 - } -}