From bc2448afbb294aa4e195b62504e405b80713d634 Mon Sep 17 00:00:00 2001 From: tobias Date: Fri, 21 Jan 2022 15:06:27 +0100 Subject: [PATCH 1/4] Add support for Visual Studio 2022 with Platform Toolset v143. --- scripts/nuget/pugixml.nuspec | 2 +- scripts/nuget_build.ps1 | 6 +- scripts/pugixml_vs2022.vcxproj | 172 +++++++++++++++++++++++++ scripts/pugixml_vs2022_static.vcxproj | 176 ++++++++++++++++++++++++++ 4 files changed, 354 insertions(+), 2 deletions(-) create mode 100644 scripts/pugixml_vs2022.vcxproj create mode 100644 scripts/pugixml_vs2022_static.vcxproj diff --git a/scripts/nuget/pugixml.nuspec b/scripts/nuget/pugixml.nuspec index d76b34c..2b383a1 100644 --- a/scripts/nuget/pugixml.nuspec +++ b/scripts/nuget/pugixml.nuspec @@ -11,7 +11,7 @@ https://pugixml.org/ pugixml is a C++ XML processing library, which consists of a DOM-like interface with rich traversal/modification capabilities, an extremely fast XML parser which constructs the DOM tree from an XML file/buffer, and an XPath 1.0 implementation for complex data-driven tree queries. Full Unicode support is also available, with Unicode interface variants and conversions between different Unicode encodings (which happen automatically during parsing/saving). pugixml is used by a lot of projects, both open-source and proprietary, for performance and easy-to-use interface. -This package contains builds for VS2013, VS2015, VS2017 and VS2019, for both statically linked and DLL CRT; you can switch the CRT linkage in Project -> Properties -> Referenced Packages -> pugixml. +This package contains builds for VS2013, VS2015, VS2017, VS2019 and VS2022, for both statically linked and DLL CRT; you can switch the CRT linkage in Project -> Properties -> Referenced Packages -> pugixml. Light-weight, simple and fast XML parser for C++ with XPath support https://pugixml.org/docs/manual.html#changes Copyright (c) 2006-2020 Arseny Kapoulkine diff --git a/scripts/nuget_build.ps1 b/scripts/nuget_build.ps1 index 7368f3b..30cbebe 100644 --- a/scripts/nuget_build.ps1 +++ b/scripts/nuget_build.ps1 @@ -35,7 +35,11 @@ Force-Copy "../src/pugiconfig.hpp" "nuget/build/native/include/pugiconfig.hpp" Force-Copy "../src/pugixml.hpp" "nuget/build/native/include/pugixml.hpp" Force-Copy "../src/pugixml.cpp" "nuget/build/native/include/pugixml.cpp" -if ($args[0] -eq 2019){ +if ($args[0] -eq 2022){ + Build-Version "vs2022" "v143" "dynamic" + Build-Version "vs2022" "v143" "static" + +} elseif ($args[0] -eq 2019){ Build-Version "vs2019" "v142" "dynamic" Build-Version "vs2019" "v142" "static" diff --git a/scripts/pugixml_vs2022.vcxproj b/scripts/pugixml_vs2022.vcxproj new file mode 100644 index 0000000..a10dafe --- /dev/null +++ b/scripts/pugixml_vs2022.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {07CF01C0-B887-499D-AD9C-799CB6A9FE64} + Win32Proj + pugixml + 10.0 + + + + StaticLibrary + true + v143 + Unicode + + + StaticLibrary + false + v143 + false + Unicode + + + StaticLibrary + true + v143 + Unicode + + + StaticLibrary + false + v143 + false + Unicode + + + + + + + + + + + + + + + + + + + + + vs2019\$(Platform)_$(Configuration)\ + vs2019\$(Platform)_$(Configuration)\ + pugixml + + + vs2019\$(Platform)_$(Configuration)\ + vs2019\$(Platform)_$(Configuration)\ + pugixml + + + vs2019\$(Platform)_$(Configuration)\ + vs2019\$(Platform)_$(Configuration)\ + pugixml + + + vs2019\$(Platform)_$(Configuration)\ + vs2019\$(Platform)_$(Configuration)\ + pugixml + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + false + + + Windows + true + + + + + + + Level3 + Disabled + _DEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + false + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + + + Windows + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + + + Windows + true + true + true + + + + + + + + + + + + + diff --git a/scripts/pugixml_vs2022_static.vcxproj b/scripts/pugixml_vs2022_static.vcxproj new file mode 100644 index 0000000..96920a3 --- /dev/null +++ b/scripts/pugixml_vs2022_static.vcxproj @@ -0,0 +1,176 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {07CF01C0-B887-499D-AD9C-799CB6A9FE64} + Win32Proj + pugixml + 10.0 + + + + StaticLibrary + true + v143 + Unicode + + + StaticLibrary + false + v143 + false + Unicode + + + StaticLibrary + true + v143 + Unicode + + + StaticLibrary + false + v143 + false + Unicode + + + + + + + + + + + + + + + + + + + + + vs2019\$(Platform)_$(Configuration)Static\ + vs2019\$(Platform)_$(Configuration)Static\ + pugixml + + + vs2019\$(Platform)_$(Configuration)Static\ + vs2019\$(Platform)_$(Configuration)Static\ + pugixml + + + vs2019\$(Platform)_$(Configuration)Static\ + vs2019\$(Platform)_$(Configuration)Static\ + pugixml + + + vs2019\$(Platform)_$(Configuration)Static\ + vs2019\$(Platform)_$(Configuration)Static\ + pugixml + + + + + + Level3 + Disabled + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + false + MultiThreadedDebug + + + Windows + true + + + + + + + Level3 + Disabled + _DEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + false + MultiThreadedDebug + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + MultiThreaded + + + Windows + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_LIB;%(PreprocessorDefinitions) + $(IntDir)$(TargetName).pdb + OldStyle + MultiThreaded + + + Windows + true + true + true + + + + + + + + + + + + + From 16a4f382ac5bcebf2a55a1a5df316861df750de8 Mon Sep 17 00:00:00 2001 From: tobias Date: Fri, 21 Jan 2022 15:30:45 +0100 Subject: [PATCH 2/4] Add missing appveyor test config for Visual Studio 2022. --- tests/autotest-appveyor.ps1 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/autotest-appveyor.ps1 b/tests/autotest-appveyor.ps1 index dfed8c5..24736ef 100644 --- a/tests/autotest-appveyor.ps1 +++ b/tests/autotest-appveyor.ps1 @@ -18,15 +18,18 @@ foreach ($vs in $args) { Write-Output "# Setting up VS$vs $arch" - if ($vs -eq 15) - { + if ($vs -eq 15) { $vsdevcmdarch = if ($arch -eq "x64") { "amd64" } else { "x86" } Invoke-CmdScript "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" "-arch=$vsdevcmdarch" } - elseif ($vs -eq 19){ + elseif ($vs -eq 19) { $vsdevcmdarch = if ($arch -eq "x64") { "amd64" } else { "x86" } Invoke-CmdScript "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" "-arch=$vsdevcmdarch" } + elseif ($vs -eq 22) { + $vsdevcmdarch = if ($arch -eq "x64") { "amd64" } else { "x86" } + Invoke-CmdScript "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" "-arch=$vsdevcmdarch" + } else { Invoke-CmdScript "C:\Program Files (x86)\Microsoft Visual Studio $vs.0\VC\vcvarsall.bat" $arch From bd90579718cb66ea78e6770b6ddb1a20c609548a Mon Sep 17 00:00:00 2001 From: tobias Date: Fri, 21 Jan 2022 15:44:39 +0100 Subject: [PATCH 3/4] Add missing build script and test script entries for appveyor. --- appveyor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 2a596b6..2f2c0e6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,5 @@ image: + - Visual Studio 2022 - Visual Studio 2019 - Visual Studio 2017 - Visual Studio 2015 @@ -10,11 +11,13 @@ build_script: - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { .\scripts\nuget_build.ps1 2015} - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2017") { .\scripts\nuget_build.ps1 2017} - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2019") { .\scripts\nuget_build.ps1 2019} + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2022") { .\scripts\nuget_build.ps1 2022} test_script: - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { .\tests\autotest-appveyor.ps1 9 10 11 12 14 } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2017") { .\tests\autotest-appveyor.ps1 15 } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2019") { .\tests\autotest-appveyor.ps1 19 } + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2022") { .\tests\autotest-appveyor.ps1 22 } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { & C:\cygwin\bin\bash.exe -c "PATH=/usr/bin:/usr/local/bin:$PATH; make config=coverage test && bash <(curl -s https://codecov.io/bash) -f pugixml.cpp.gcov 2>&1" } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { & C:\cygwin\bin\bash.exe -c "PATH=/usr/bin:/usr/local/bin:$PATH; make config=coverage defines=PUGIXML_WCHAR_MODE test && bash <(curl -s https://codecov.io/bash) -f pugixml.cpp.gcov 2>&1" } From 64de196ba9f250d734625b4ca3a6c2afd19ba2b6 Mon Sep 17 00:00:00 2001 From: tobias Date: Fri, 21 Jan 2022 15:56:25 +0100 Subject: [PATCH 4/4] Fix path. --- scripts/pugixml_vs2022.vcxproj | 16 ++++++++-------- scripts/pugixml_vs2022_static.vcxproj | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/scripts/pugixml_vs2022.vcxproj b/scripts/pugixml_vs2022.vcxproj index a10dafe..efb1350 100644 --- a/scripts/pugixml_vs2022.vcxproj +++ b/scripts/pugixml_vs2022.vcxproj @@ -70,23 +70,23 @@ - vs2019\$(Platform)_$(Configuration)\ - vs2019\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ pugixml - vs2019\$(Platform)_$(Configuration)\ - vs2019\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ pugixml - vs2019\$(Platform)_$(Configuration)\ - vs2019\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ pugixml - vs2019\$(Platform)_$(Configuration)\ - vs2019\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ + vs2022\$(Platform)_$(Configuration)\ pugixml diff --git a/scripts/pugixml_vs2022_static.vcxproj b/scripts/pugixml_vs2022_static.vcxproj index 96920a3..065a9dc 100644 --- a/scripts/pugixml_vs2022_static.vcxproj +++ b/scripts/pugixml_vs2022_static.vcxproj @@ -70,23 +70,23 @@ - vs2019\$(Platform)_$(Configuration)Static\ - vs2019\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ pugixml - vs2019\$(Platform)_$(Configuration)Static\ - vs2019\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ pugixml - vs2019\$(Platform)_$(Configuration)Static\ - vs2019\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ pugixml - vs2019\$(Platform)_$(Configuration)Static\ - vs2019\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ + vs2022\$(Platform)_$(Configuration)Static\ pugixml