aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/crashrpt/001-add-install-target-and-find-deps.patch809
-rw-r--r--ports/crashrpt/CONTROL16
-rw-r--r--ports/crashrpt/portfile.cmake53
-rw-r--r--ports/dbghelp/CONTROL4
-rw-r--r--ports/dbghelp/portfile.cmake27
-rw-r--r--scripts/ci.baseline.txt9
6 files changed, 918 insertions, 0 deletions
diff --git a/ports/crashrpt/001-add-install-target-and-find-deps.patch b/ports/crashrpt/001-add-install-target-and-find-deps.patch
new file mode 100644
index 000000000..2d983800d
--- /dev/null
+++ b/ports/crashrpt/001-add-install-target-and-find-deps.patch
@@ -0,0 +1,809 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 44d7df0..ed9e3d3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -17,6 +17,9 @@ set (CRASHRPT_VER 1403)
+ # Build options
+ option(CRASHRPT_BUILD_SHARED_LIBS "If set (default), CrashRpt modules are built as dynamic-link libraries, otherwise as static libs." ON)
+ option(CRASHRPT_LINK_CRT_AS_DLL "If set (default), CrashRpt modules link C run-time (CRT) as multi-threaded dynamic libraries, otherwise as multi-threaded static libs." ON)
++option(CRASHRPT_BUILD_PROBE "If set (default), CrashRpt builds the CrashRptProbe project." ON)
++option(CRASHRPT_BUILD_DEMOS "If set (default), CrashRpt builds the demo projects." ON)
++option(CRASHRPT_BUILD_TESTS "If set (default), CrashRpt builds the test projects." ON)
+
+ # Set output directory for executable files
+ if(CMAKE_CL_64)
+@@ -94,19 +97,65 @@ macro(fix_default_compiler_settings_)
+
+ endmacro()
+
++find_package(ZLIB REQUIRED)
++find_package(PNG REQUIRED)
++find_package(Ogg REQUIRED)
++find_package(JPEG REQUIRED)
++
++find_library(THEORA_LIBRARY theora)
++if(NOT THEORA_LIBRARY)
++ message(FATAL_ERROR "theora library not found")
++endif()
++
++find_path(THEORA_INCLUDE_DIR theora/theora.h)
++if(NOT THEORA_INCLUDE_DIR)
++ message(FATAL_ERROR "theora include dir not found")
++endif()
++
++find_library(TINYXML_LIBRARY NAMES tinyxml)
++if(NOT TINYXML_LIBRARY)
++ message(FATAL_ERROR "tinyxml library not found")
++endif()
++
++find_path(TINYXML_INCLUDE_DIR tinyxml.h)
++if(NOT TINYXML_INCLUDE_DIR)
++ message(FATAL_ERROR "tinyxml include dir not found")
++endif()
++
++find_path(WTL_INCLUDE_DIR wtl/atlapp.h)
++if(NOT WTL_INCLUDE_DIR)
++ message(FATAL_ERROR "WTL include dir not found")
++endif()
++
++find_library(DBGHELP_LIBRARY dbghelp)
++if(NOT DBGHELP_LIBRARY)
++ message(FATAL_ERROR "dbghelp library not found")
++endif()
++
++find_path(DBGHELP_INCLUDE_DIR dbghelp.h)
++if(NOT DBGHELP_INCLUDE_DIR)
++ message(FATAL_ERROR "dbghelp include dir not found")
++endif()
++
+ # Other CMakeLists are located in project subdirectories
+
++if(CRASHRPT_BUILD_DEMOS)
+ add_subdirectory("demos/ConsoleDemo")
+ add_subdirectory("demos/WTLDemo")
+ add_subdirectory("demos/MFCDemo")
++endif()
+
+ add_subdirectory("reporting/crashrpt")
+ add_subdirectory("reporting/crashsender")
+
++if(CRASHRPT_BUILD_PROBE)
+ add_subdirectory("processing/crashrptprobe")
+ add_subdirectory("processing/crprober")
++endif()
+
++if(CRASHRPT_BUILD_TESTS)
+ add_subdirectory("tests")
++endif()
+
+ # Set output directory for LIB files
+ if(CMAKE_CL_64)
+@@ -117,13 +166,13 @@ else(CMAKE_CL_64)
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/thirdparty/lib)
+ endif(CMAKE_CL_64)
+
+-add_subdirectory("thirdparty/tinyxml")
+-add_subdirectory("thirdparty/jpeg")
+-add_subdirectory("thirdparty/libpng")
++#add_subdirectory("thirdparty/tinyxml")
++#add_subdirectory("thirdparty/jpeg")
++#add_subdirectory("thirdparty/libpng")
+ add_subdirectory("thirdparty/minizip")
+-add_subdirectory("thirdparty/zlib")
+-add_subdirectory("thirdparty/libogg")
+-add_subdirectory("thirdparty/libtheora")
++#add_subdirectory("thirdparty/zlib")
++#add_subdirectory("thirdparty/libogg")
++#add_subdirectory("thirdparty/libtheora")
+
+
+
+diff --git a/demos/ConsoleDemo/CMakeLists.txt b/demos/ConsoleDemo/CMakeLists.txt
+index e47ef4c..4df7b12 100644
+--- a/demos/ConsoleDemo/CMakeLists.txt
++++ b/demos/ConsoleDemo/CMakeLists.txt
+@@ -12,12 +12,12 @@ fix_default_compiler_settings_()
+ # Add include dir
+ include_directories(${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/reporting/CrashRpt
+- ${CMAKE_SOURCE_DIR}/thirdparty/wtl
+- ${CMAKE_SOURCE_DIR}/thirdparty/zlib
++ ${WTL_INCLUDE_DIR}
++ ${ZLIB_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/thirdparty/minizip
+- ${CMAKE_SOURCE_DIR}/thirdparty/jpeg
+- ${CMAKE_SOURCE_DIR}/thirdparty/libpng
+- ${CMAKE_SOURCE_DIR}/thirdparty/tinyxml )
++ ${JPEG_INCLUDE_DIR}
++ ${PNG_INCLUDE_DIRS}
++ ${TINYXML_INCLUDE_DIR} )
+
+ # Add executable build target
+ add_executable(ConsoleDemo ${source_files} ${header_files})
+@@ -26,3 +26,7 @@ add_executable(ConsoleDemo ${source_files} ${header_files})
+ target_link_libraries(ConsoleDemo CrashRpt)
+
+ set_target_properties(ConsoleDemo PROPERTIES DEBUG_POSTFIX d )
++
++install(TARGETS ConsoleDemo
++ RUNTIME DESTINATION tools/crashrpt
++)
+diff --git a/demos/MFCDemo/CMakeLists.txt b/demos/MFCDemo/CMakeLists.txt
+index a250ecc..ade93cb 100644
+--- a/demos/MFCDemo/CMakeLists.txt
++++ b/demos/MFCDemo/CMakeLists.txt
+@@ -44,7 +44,7 @@ if(CMAKE_CL_64)
+ ADD_CUSTOM_COMMAND(
+ TARGET WTLDemo
+ POST_BUILD
+- COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
++ #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\\crashrpt_lang.ini\""
+@@ -53,9 +53,13 @@ else(CMAKE_CL_64)
+ ADD_CUSTOM_COMMAND(
+ TARGET WTLDemo
+ POST_BUILD
+- COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\""
++ #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\crashrpt_lang.ini\""
+ )
+-endif(CMAKE_CL_64)
+\ No newline at end of file
++endif(CMAKE_CL_64)
++
++install(TARGETS MFCDemo
++ RUNTIME DESTINATION tools/crashrpt
++)
+diff --git a/demos/WTLDemo/AboutDlg.h b/demos/WTLDemo/AboutDlg.h
+index 83eaac0..e96d1c2 100644
+--- a/demos/WTLDemo/AboutDlg.h
++++ b/demos/WTLDemo/AboutDlg.h
+@@ -33,7 +33,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #pragma once
+ #include "stdafx.h"
+ #include <shellapi.h>
+-#include <atlctrlx.h>
++#include <wtl/atlctrlx.h>
+ #include "CrashRpt.h"
+
+ class CAboutDlg : public CDialogImpl<CAboutDlg>
+diff --git a/demos/WTLDemo/CMakeLists.txt b/demos/WTLDemo/CMakeLists.txt
+index 40aaefb..42c0f5a 100644
+--- a/demos/WTLDemo/CMakeLists.txt
++++ b/demos/WTLDemo/CMakeLists.txt
+@@ -19,7 +19,7 @@ fix_default_compiler_settings_()
+
+ # Add include dir
+ include_directories(${CMAKE_SOURCE_DIR}/include
+- ${CMAKE_SOURCE_DIR}/thirdparty/wtl)
++ ${WTL_INCLUDE_DIR})
+
+ # Add executable build target
+ add_executable(WTLDemo WIN32 ${source_files} ${header_files})
+@@ -36,7 +36,7 @@ if(CMAKE_CL_64)
+ ADD_CUSTOM_COMMAND(
+ TARGET WTLDemo
+ POST_BUILD
+- COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
++ #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\\x64\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\\crashrpt_lang.ini\""
+@@ -45,9 +45,13 @@ else(CMAKE_CL_64)
+ ADD_CUSTOM_COMMAND(
+ TARGET WTLDemo
+ POST_BUILD
+- COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\""
++ #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\""
+ COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\crashrpt_lang.ini\""
+ )
+-endif(CMAKE_CL_64)
+\ No newline at end of file
++endif(CMAKE_CL_64)
++
++install(TARGETS WTLDemo
++ RUNTIME DESTINATION tools/crashrpt
++)
+diff --git a/demos/WTLDemo/DocumentDlg.h b/demos/WTLDemo/DocumentDlg.h
+index afce8fe..9b47728 100644
+--- a/demos/WTLDemo/DocumentDlg.h
++++ b/demos/WTLDemo/DocumentDlg.h
+@@ -33,7 +33,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #pragma once
+ #include "stdafx.h"
+ #include <shellapi.h>
+-#include <atlctrlx.h>
++#include <wtl/atlctrlx.h>
+ #include "CrashRpt.h"
+
+ class CDocumentDlg : public CDialogImpl<CDocumentDlg>
+diff --git a/demos/WTLDemo/WTLDemo.rc b/demos/WTLDemo/WTLDemo.rc
+index c651841..71f4b39 100644
+--- a/demos/WTLDemo/WTLDemo.rc
++++ b/demos/WTLDemo/WTLDemo.rc
+@@ -7,7 +7,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "atlres.h"
++#include "wtl/atlres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -32,7 +32,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""atlres.h""\r\n"
++ "#include ""wtl/atlres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/demos/WTLDemo/stdafx.h b/demos/WTLDemo/stdafx.h
+index a601446..658d9e5 100644
+--- a/demos/WTLDemo/stdafx.h
++++ b/demos/WTLDemo/stdafx.h
+@@ -16,10 +16,10 @@ be found in the Authors.txt file in the root of the source tree.
+ #pragma once
+
+ // Change these values to use different versions
+-#define WINVER 0x0500
++#define WINVER 0x0501
+ #define _WIN32_WINNT 0x0501
+-#define _WIN32_IE 0x0501
+-#define _RICHEDIT_VER 0x0200
++#define _WIN32_IE 0x0600
++#define _RICHEDIT_VER 0x0300
+
+ #include <atldef.h>
+ #if ( _ATL_VER < 0x0800 )
+@@ -52,18 +52,18 @@ namespace ATL
+ };
+ #endif // _WTL_SUPPORT_SDK_ATL3
+
+-#include <atlapp.h>
++#include <wtl/atlapp.h>
+
+ extern CAppModule _Module;
+
+ #include <atlwin.h>
+
+-#include <atlframe.h>
+-#include <atlctrls.h>
+-#include <atldlgs.h>
++#include <wtl/atlframe.h>
++#include <wtl/atlctrls.h>
++#include <wtl/atldlgs.h>
+
+ #define _WTL_USE_CSTRING
+-#include <atlmisc.h>
++#include <wtl/atlmisc.h>
+
+ #if _MSC_VER>=1400
+ #if defined _M_IX86
+diff --git a/processing/crashrptprobe/CMakeLists.txt b/processing/crashrptprobe/CMakeLists.txt
+index a6c692a..c513c6d 100644
+--- a/processing/crashrptprobe/CMakeLists.txt
++++ b/processing/crashrptprobe/CMakeLists.txt
+@@ -21,11 +21,11 @@ fix_default_compiler_settings_()
+ include_directories( ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/reporting/crashrpt
+ ${CMAKE_SOURCE_DIR}/reporting/crashsender
+- ${CMAKE_SOURCE_DIR}/thirdparty/wtl
+- ${CMAKE_SOURCE_DIR}/thirdparty/zlib
++ ${WTL_INCLUDE_DIR}
++ ${ZLIB_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/thirdparty/minizip
+- ${CMAKE_SOURCE_DIR}/thirdparty/tinyxml
+- ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/include)
++ ${TINYXML_INCLUDE_DIR}
++ ${DBGHELP_INCLUDE_DIR})
+
+ # Add library build target
+ if(CRASHRPT_BUILD_SHARED_LIBS)
+@@ -34,15 +34,15 @@ else(CRASHRPT_BUILD_SHARED_LIBS)
+ add_library(CrashRptProbe STATIC ${source_files} ${header_files})
+ endif(CRASHRPT_BUILD_SHARED_LIBS)
+
+-if(CMAKE_CL_64)
+- link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 )
+- target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64/dbghelp.lib)
+-else(CMAKE_CL_64)
+- link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib )
+- target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/dbghelp.lib)
+-endif(CMAKE_CL_64)
++#if(CMAKE_CL_64)
++# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 )
++# target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64/dbghelp.lib)
++#else(CMAKE_CL_64)
++# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib )
++# target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/dbghelp.lib)
++#endif(CMAKE_CL_64)
+
+-target_link_libraries(CrashRptProbe zlib minizip tinyxml Rpcrt4.lib shell32.lib gdi32.lib version.lib psapi.lib)
++target_link_libraries(CrashRptProbe ZLIB::ZLIB minizip ${TINYXML_LIBRARY} ${DBGHELP_LIBRARY} Rpcrt4.lib shell32.lib gdi32.lib version.lib psapi.lib)
+
+ if(CRASHRPT_BUILD_SHARED_LIBS)
+
+@@ -58,4 +58,11 @@ else(CRASHRPT_BUILD_SHARED_LIBS)
+
+ endif(CRASHRPT_BUILD_SHARED_LIBS)
+
++set_target_properties(CrashRptProbe PROPERTIES PUBLIC_HEADER ${CMAKE_SOURCE_DIR}/include/CrashRptProbe.h)
+
++INSTALL(TARGETS CrashRptProbe
++ PUBLIC_HEADER DESTINATION include/crashrpt
++ LIBRARY
++ ARCHIVE
++ RUNTIME
++)
+diff --git a/processing/crashrptprobe/CrashRptProbe.rc b/processing/crashrptprobe/CrashRptProbe.rc
+index a08f63e..e12b8e9 100644
+--- a/processing/crashrptprobe/CrashRptProbe.rc
++++ b/processing/crashrptprobe/CrashRptProbe.rc
+@@ -7,7 +7,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "atlres.h"
++#include "wtl/atlres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -32,7 +32,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""atlres.h""\r\n"
++ "#include ""wtl/atlres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/processing/crashrptprobe/stdafx.h b/processing/crashrptprobe/stdafx.h
+index 2b027b2..0b60659 100644
+--- a/processing/crashrptprobe/stdafx.h
++++ b/processing/crashrptprobe/stdafx.h
+@@ -70,13 +70,13 @@ namespace ATL
+ };
+ #endif // _WTL_SUPPORT_SDK_ATL3
+
+-#include <atlapp.h>
++#include <wtl/atlapp.h>
+ extern CAppModule _Module;
+ #include <atlwin.h>
+
+ // CString-related includes
+ #define _WTL_USE_CSTRING
+-#include <atlmisc.h>
++#include <wtl/atlmisc.h>
+
+ #if _MSC_VER<1400
+ #define WCSNCPY_S(strDest, sizeInBytes, strSource, count) wcsncpy(strDest, strSource, count)
+diff --git a/processing/crprober/CMakeLists.txt b/processing/crprober/CMakeLists.txt
+index 046ba57..255e200 100644
+--- a/processing/crprober/CMakeLists.txt
++++ b/processing/crprober/CMakeLists.txt
+@@ -18,4 +18,8 @@ add_executable(crprober ${source_files} ${header_files})
+ # Add input link libraries
+ target_link_libraries(crprober CrashRptProbe)
+
+-set_target_properties(crprober PROPERTIES DEBUG_POSTFIX d )
+\ No newline at end of file
++set_target_properties(crprober PROPERTIES DEBUG_POSTFIX d )
++
++install(TARGETS crprober
++ RUNTIME DESTINATION tools/crashrpt
++)
+diff --git a/reporting/crashrpt/CMakeLists.txt b/reporting/crashrpt/CMakeLists.txt
+index 42d40e2..c7e4fd6 100644
+--- a/reporting/crashrpt/CMakeLists.txt
++++ b/reporting/crashrpt/CMakeLists.txt
+@@ -18,7 +18,7 @@ add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE)
+ fix_default_compiler_settings_()
+
+ # Add include dir
+-include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/thirdparty/wtl)
++include_directories( ${CMAKE_SOURCE_DIR}/include ${WTL_INCLUDE_DIR})
+
+ # Add library build target
+ if(CRASHRPT_BUILD_SHARED_LIBS)
+@@ -55,3 +55,11 @@ else(CRASHRPT_BUILD_SHARED_LIBS)
+ RELEASE_POSTFIX LIB )
+ endif(CRASHRPT_BUILD_SHARED_LIBS)
+
++set_target_properties(CrashRpt PROPERTIES PUBLIC_HEADER ${CMAKE_SOURCE_DIR}/include/CrashRpt.h)
++
++INSTALL(TARGETS CrashRpt
++ PUBLIC_HEADER DESTINATION include/crashrpt
++ LIBRARY
++ ARCHIVE
++ RUNTIME
++)
+diff --git a/reporting/crashrpt/CrashRpt.rc b/reporting/crashrpt/CrashRpt.rc
+index 95e7502..a8c821b 100644
+--- a/reporting/crashrpt/CrashRpt.rc
++++ b/reporting/crashrpt/CrashRpt.rc
+@@ -7,7 +7,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "atlres.h"
++#include "wtl/atlres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -32,7 +32,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""atlres.h""\r\n"
++ "#include ""wtl/atlres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/reporting/crashrpt/StdAfx.h b/reporting/crashrpt/StdAfx.h
+index 77d8c36..13bbe50 100644
+--- a/reporting/crashrpt/StdAfx.h
++++ b/reporting/crashrpt/StdAfx.h
+@@ -19,7 +19,7 @@ be found in the Authors.txt file in the root of the source tree.
+ #define WINVER 0x0501
+ #define _WIN32_WINNT 0x0501
+ #define _WIN32_IE 0x0600
+-#define _RICHEDIT_VER 0x0200
++#define _RICHEDIT_VER 0x0300
+
+ #include <errno.h>
+ #include <atldef.h>
+@@ -54,12 +54,12 @@ namespace ATL
+ };
+ #endif // _WTL_SUPPORT_SDK_ATL3
+
+-#include <atlapp.h>
++#include <wtl/atlapp.h>
+ extern CAppModule _Module;
+ #include <atlwin.h>
+ // CString-related includes
+ #define _WTL_USE_CSTRING
+-#include <atlmisc.h>
++#include <wtl/atlmisc.h>
+ #include <new.h>
+ #include <map>
+ #include <set>
+diff --git a/reporting/crashsender/CMakeLists.txt b/reporting/crashsender/CMakeLists.txt
+index 9b444c5..aa4ab8a 100644
+--- a/reporting/crashsender/CMakeLists.txt
++++ b/reporting/crashsender/CMakeLists.txt
+@@ -22,27 +22,27 @@ fix_default_compiler_settings_()
+ # Add include dir
+ include_directories( ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/reporting/CrashRpt
+- ${CMAKE_SOURCE_DIR}/thirdparty/wtl
+- ${CMAKE_SOURCE_DIR}/thirdparty/zlib
++ ${WTL_INCLUDE_DIR}
+ ${CMAKE_SOURCE_DIR}/thirdparty/minizip
+- ${CMAKE_SOURCE_DIR}/thirdparty/jpeg
+- ${CMAKE_SOURCE_DIR}/thirdparty/libpng
+- ${CMAKE_SOURCE_DIR}/thirdparty/tinyxml
+- ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/include
+- ${CMAKE_SOURCE_DIR}/thirdparty/libogg/include
+- ${CMAKE_SOURCE_DIR}/thirdparty/libtheora/include)
+-
+-if(NOT CMAKE_CL_64)
+- link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib )
+-else(NOT CMAKE_CL_64)
+- link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 )
+-endif(NOT CMAKE_CL_64)
++ ${ZLIB_INCLUDE_DIRS}
++ ${JPEG_INCLUDE_DIR}
++ ${PNG_INCLUDE_DIRS}
++ ${TINYXML_INCLUDE_DIR}
++ ${DBGHELP_INCLUDE_DIR}
++ ${OGG_INCLUDE_DIRS}
++ ${THEORA_INCLUDE_DIR})
++
++#if(NOT CMAKE_CL_64)
++# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib )
++#else(NOT CMAKE_CL_64)
++# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 )
++#endif(NOT CMAKE_CL_64)
+
+ # Add executable build target
+ add_executable(CrashSender WIN32 ${source_files} ${header_files})
+
+ # Add input link libraries
+-target_link_libraries(CrashSender zlib minizip libjpeg libpng tinyxml libogg libtheora WS2_32.lib Dnsapi.lib wininet.lib Rpcrt4.lib Gdi32.lib shell32.lib Comdlg32.lib version.lib psapi.lib)
++target_link_libraries(CrashSender ZLIB::ZLIB minizip ${JPEG_LIBRARIES} PNG::PNG ${TINYXML_LIBRARY} Ogg::ogg ${THEORA_LIBRARY} WS2_32.lib Dnsapi.lib wininet.lib Rpcrt4.lib Gdi32.lib shell32.lib Comdlg32.lib version.lib psapi.lib)
+
+ # Add compiler flags (/MP for multi-processor compilation, /Os to favor small code)
+ set_target_properties(CrashRpt PROPERTIES COMPILE_FLAGS "/Os")
+@@ -52,4 +52,12 @@ set_target_properties(CrashRpt PROPERTIES COMPILE_FLAGS "/Os")
+
+ set_target_properties(CrashSender PROPERTIES
+ DEBUG_POSTFIX ${CRASHRPT_VER}d
+- RELEASE_POSTFIX ${CRASHRPT_VER} )
+\ No newline at end of file
++ RELEASE_POSTFIX ${CRASHRPT_VER} )
++
++install(TARGETS CrashSender
++ RUNTIME DESTINATION tools/crashrpt
++)
++
++file(GLOB LANG_FILES "${CMAKE_SOURCE_DIR}/lang_files/crashrpt_lang_*.ini")
++install(FILES ${LANG_FILES} DESTINATION tools/crashrpt)
++install(FILES "${CMAKE_SOURCE_DIR}/lang_files/crashrpt_lang_EN.ini" DESTINATION tools/crashrpt RENAME crashrpt_lang.ini)
+diff --git a/reporting/crashsender/CrashSender.rc b/reporting/crashsender/CrashSender.rc
+index 0502962..e10e269 100644
+--- a/reporting/crashsender/CrashSender.rc
++++ b/reporting/crashsender/CrashSender.rc
+@@ -7,7 +7,7 @@
+ //
+ // Generated from the TEXTINCLUDE 2 resource.
+ //
+-#include "atlres.h"
++#include "wtl/atlres.h"
+
+ /////////////////////////////////////////////////////////////////////////////
+ #undef APSTUDIO_READONLY_SYMBOLS
+@@ -243,7 +243,7 @@ END
+
+ 2 TEXTINCLUDE
+ BEGIN
+- "#include ""atlres.h""\r\n"
++ "#include ""wtl/atlres.h""\r\n"
+ "\0"
+ END
+
+diff --git a/reporting/crashsender/ErrorReportSender.cpp b/reporting/crashsender/ErrorReportSender.cpp
+index ac9603c..64cf2b5 100644
+--- a/reporting/crashsender/ErrorReportSender.cpp
++++ b/reporting/crashsender/ErrorReportSender.cpp
+@@ -722,9 +722,9 @@ BOOL CErrorReportSender::CreateMiniDump()
+ CompiledApiVer.Reserved = 0;
+ LPAPI_VERSION pActualApiVer = lpImagehlpApiVersionEx(&CompiledApiVer);
+ pActualApiVer;
+- ATLASSERT(CompiledApiVer.MajorVersion==pActualApiVer->MajorVersion);
+- ATLASSERT(CompiledApiVer.MinorVersion==pActualApiVer->MinorVersion);
+- ATLASSERT(CompiledApiVer.Revision==pActualApiVer->Revision);
++ //ATLASSERT(CompiledApiVer.MajorVersion==pActualApiVer->MajorVersion);
++ //ATLASSERT(CompiledApiVer.MinorVersion==pActualApiVer->MinorVersion);
++ //ATLASSERT(CompiledApiVer.Revision==pActualApiVer->Revision);
+ }
+
+ // Write minidump to the file
+@@ -1086,7 +1086,7 @@ BOOL CErrorReportSender::CreateCrashDescriptionXML(CErrorReportInfo& eri)
+ goto cleanup;
+ }
+
+- doc.useMicrosoftBOM = true;
++ //doc.useMicrosoftBOM = true;
+ bool bSave = doc.SaveFile(f);
+ if(!bSave)
+ {
+diff --git a/reporting/crashsender/FilePreviewCtrl.cpp b/reporting/crashsender/FilePreviewCtrl.cpp
+index e71aafc..5650291 100644
+--- a/reporting/crashsender/FilePreviewCtrl.cpp
++++ b/reporting/crashsender/FilePreviewCtrl.cpp
+@@ -365,7 +365,7 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName)
+ if (!png_ptr)
+ goto cleanup;
+
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ goto cleanup;
+
+ info_ptr = png_create_info_struct(png_ptr);
+@@ -389,7 +389,7 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName)
+ width = png_get_image_width(png_ptr, info_ptr);
+ height = png_get_image_height(png_ptr, info_ptr);
+
+- if(info_ptr->channels==3)
++ if (png_get_channels(png_ptr, info_ptr) == 3)
+ {
+ png_set_strip_16(png_ptr);
+ png_set_packing(png_ptr);
+@@ -408,14 +408,14 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName)
+ pBMI = (BITMAPINFO*)new BYTE[sizeof(BITMAPINFO)+256*4];
+ memset(pBMI, 0, sizeof(BITMAPINFO)+256*4);
+ pBMI->bmiHeader.biSize = sizeof(BITMAPINFO);
+- pBMI->bmiHeader.biBitCount = 8*info_ptr->channels;
++ pBMI->bmiHeader.biBitCount = 8 * png_get_channels(png_ptr, info_ptr);
+ pBMI->bmiHeader.biWidth = width;
+ pBMI->bmiHeader.biHeight = height;
+ pBMI->bmiHeader.biPlanes = 1;
+ pBMI->bmiHeader.biCompression = BI_RGB;
+ pBMI->bmiHeader.biSizeImage = rowbytes*height;
+
+- if( info_ptr->channels == 1 )
++ if (png_get_channels(png_ptr, info_ptr) == 1)
+ {
+ RGBQUAD* palette = pBMI->bmiColors;
+
+@@ -431,7 +431,7 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName)
+
+ for(y=height-1; y>=0; y--)
+ {
+- png_read_rows(png_ptr, &row, png_bytepp_NULL, 1);
++ png_read_rows(png_ptr, &row, NULL, 1);
+
+ {
+ CAutoLock lock(&m_csLock);
+diff --git a/reporting/crashsender/ScreenCap.cpp b/reporting/crashsender/ScreenCap.cpp
+index c183c19..8f5643d 100644
+--- a/reporting/crashsender/ScreenCap.cpp
++++ b/reporting/crashsender/ScreenCap.cpp
+@@ -11,6 +11,7 @@ be found in the Authors.txt file in the root of the source tree.
+ #include "stdafx.h"
+ #include "ScreenCap.h"
+ #include "Utility.h"
++#include "zlib.h"
+
+ // Disable warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable
+ #pragma warning(disable:4611)
+diff --git a/reporting/crashsender/stdafx.h b/reporting/crashsender/stdafx.h
+index f087ff4..4494d3a 100644
+--- a/reporting/crashsender/stdafx.h
++++ b/reporting/crashsender/stdafx.h
+@@ -19,7 +19,7 @@ be found in the Authors.txt file in the root of the source tree.
+ #define WINVER 0x0501
+ #define _WIN32_WINNT 0x0501
+ #define _WIN32_IE 0x0600
+-#define _RICHEDIT_VER 0x0200
++#define _RICHEDIT_VER 0x0300
+
+ typedef __int64 off_t, _off_t;
+ #define _OFF_T_DEFINED
+@@ -61,19 +61,19 @@ namespace ATL
+ };
+ #endif // _WTL_SUPPORT_SDK_ATL3
+
+-#include <atlapp.h>
++#include <wtl/atlapp.h>
+
+ extern CAppModule _Module;
+
+ #include <atlwin.h>
+
+-#include <atlframe.h>
+-#include <atlctrls.h>
+-#include <atldlgs.h>
+-#include <atlctrlx.h>
++#include <wtl/atlframe.h>
++#include <wtl/atlctrls.h>
++#include <wtl/atldlgs.h>
++#include <wtl/atlctrlx.h>
+
+ #define _WTL_USE_CSTRING
+-#include <atlmisc.h>
++#include <wtl/atlmisc.h>
+
+ #include <string>
+ #include <vector>
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index f7bfede..9358bef 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -32,7 +32,7 @@ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG")
+ # Add include dir
+ include_directories( ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/reporting/CrashRpt
+- ${CMAKE_SOURCE_DIR}/thirdparty/wtl )
++ ${WTL_INCLUDE_DIR} )
+
+ # Add executable build target
+ add_executable(Tests ${source_files} ${header_files})
+@@ -42,3 +42,10 @@ target_link_libraries(Tests CrashRpt CrashRptProbe)
+
+ set_target_properties(Tests PROPERTIES DEBUG_POSTFIX d )
+ #set_target_properties(Tests PROPERTIES COMPILE_FLAGS "/Zi" LINK_FLAGS "/DEBUG")
++
++install(TARGETS Tests
++ RUNTIME DESTINATION tools/crashrpt
++)
++
++install(FILES "${CMAKE_SOURCE_DIR}/demos/WTLDemo/dummy.ini" DESTINATION tools/crashrpt)
++install(FILES "${CMAKE_SOURCE_DIR}/demos/WTLDemo/dummy.log" DESTINATION tools/crashrpt)
+diff --git a/tests/stdafx.h b/tests/stdafx.h
+index f12675b..0ec2117 100644
+--- a/tests/stdafx.h
++++ b/tests/stdafx.h
+@@ -19,7 +19,7 @@ be found in the Authors.txt file in the root of the source tree.
+ #define WINVER 0x0501
+ #define _WIN32_WINNT 0x0501
+ #define _WIN32_IE 0x0600
+-#define _RICHEDIT_VER 0x0200
++#define _RICHEDIT_VER 0x0300
+
+ #include <errno.h>
+ #include <winsock2.h>
+@@ -58,15 +58,15 @@ namespace ATL
+ };
+ #endif // _WTL_SUPPORT_SDK_ATL3
+
+-#include <atlapp.h>
++#include <wtl/atlapp.h>
+
+ extern CAppModule _Module;
+
+ #include <atlwin.h>
+
+-#include <atlframe.h>
+-#include <atlctrls.h>
+-#include <atldlgs.h>
++#include <wtl/atlframe.h>
++#include <wtl/atlctrls.h>
++#include <wtl/atldlgs.h>
+ #include <set>
+ #include <map>
+ #include <string>
+@@ -75,7 +75,7 @@ extern CAppModule _Module;
+ #include <conio.h>
+
+ #define _WTL_USE_CSTRING
+-#include <atlmisc.h>
++#include <wtl/atlmisc.h>
+
+ #if _MSC_VER<1400
+ #define _TCSCPY_S(strDestination, numberOfElements, strSource) _tcscpy(strDestination, strSource)
+diff --git a/thirdparty/libpng/CMakeLists.txt b/thirdparty/libpng/CMakeLists.txt
+index b358c4e..e0f7a33 100644
+--- a/thirdparty/libpng/CMakeLists.txt
++++ b/thirdparty/libpng/CMakeLists.txt
+@@ -7,7 +7,7 @@ aux_source_directory( . source_files )
+ add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE /wd4244 /wd4267)
+
+ # Add include dir
+-include_directories( ${CMAKE_SOURCE_DIR}/thirdparty/zlib )
++include_directories( ${ZLIB_INCLUDE_DIRS} )
+
+ fix_default_compiler_settings_()
+
+@@ -15,6 +15,6 @@ fix_default_compiler_settings_()
+ add_library(libpng STATIC ${source_files})
+
+ # Add linker input libraries
+-target_link_libraries(libpng zlib)
++target_link_libraries(libpng ZLIB::ZLIB)
+
+ set_target_properties(libpng PROPERTIES DEBUG_POSTFIX d )
+\ No newline at end of file
+diff --git a/thirdparty/libtheora/CMakeLists.txt b/thirdparty/libtheora/CMakeLists.txt
+index 896fb47..f3cf5eb 100644
+--- a/thirdparty/libtheora/CMakeLists.txt
++++ b/thirdparty/libtheora/CMakeLists.txt
+@@ -8,7 +8,7 @@ aux_source_directory( ./lib/x86_vc x86_source_files )
+ add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE /wd4244 /wd4700 /wd4214 /wd4554 /wd4018 /wd4100 /wd4132 /wd4389 /wd4127 /wd4701 /wd4245 /wd4267 /wd4334)
+
+ # Add include dir
+-include_directories( ${CMAKE_SOURCE_DIR}/thirdparty/libogg/include
++include_directories( ${OGG_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/thirdparty/libtheora/include)
+
+ fix_default_compiler_settings_()
+diff --git a/thirdparty/minizip/CMakeLists.txt b/thirdparty/minizip/CMakeLists.txt
+index 5f4d0af..2b015c9 100644
+--- a/thirdparty/minizip/CMakeLists.txt
++++ b/thirdparty/minizip/CMakeLists.txt
+@@ -7,7 +7,7 @@ aux_source_directory( . source_files )
+ add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE /wd4127 /wd4131 /wd4100 /wd4189 /wd4244)
+
+ # Add include dir
+-include_directories( ${CMAKE_SOURCE_DIR}/thirdparty/zlib )
++include_directories( ${ZLIB_INCLUDE_DIRS} )
+
+ fix_default_compiler_settings_()
+
+@@ -15,6 +15,6 @@ fix_default_compiler_settings_()
+ add_library(minizip STATIC ${source_files})
+
+ # Add linker input libraries
+-target_link_libraries(minizip zlib)
++target_link_libraries(minizip ZLIB::ZLIB)
+
+ set_target_properties(minizip PROPERTIES DEBUG_POSTFIX d )
+\ No newline at end of file
diff --git a/ports/crashrpt/CONTROL b/ports/crashrpt/CONTROL
new file mode 100644
index 000000000..4b15e9d23
--- /dev/null
+++ b/ports/crashrpt/CONTROL
@@ -0,0 +1,16 @@
+Source: crashrpt
+Version: 1.4.3
+Description: A crash reporting system for Windows applications
+Homepage: http://crashrpt.sourceforge.net/
+Build-Depends: dbghelp, libjpeg-turbo, libogg, libpng, libtheora, tinyxml, wtl, zlib
+Default-Features:
+
+Feature: probe
+Description: The CrashRptProbe library
+
+Feature: tests
+Description: Test application for crashrpt
+Build-Depends: crashrpt[core,probe]
+
+Feature: demos
+Description: Demo applications for CrashRptProbe
diff --git a/ports/crashrpt/portfile.cmake b/ports/crashrpt/portfile.cmake
new file mode 100644
index 000000000..f52f8e19a
--- /dev/null
+++ b/ports/crashrpt/portfile.cmake
@@ -0,0 +1,53 @@
+vcpkg_fail_port_install(ON_TARGET "OSX" "Linux" "UWP")
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
+ set(ARCH_DIR "")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
+ set(ARCH_DIR "x64/")
+else()
+ vcpkg_fail_port_install(MESSAGE "${PORT} only supports x86 and x64 architectures" ALWAYS)
+endif()
+
+vcpkg_from_git(
+ OUT_SOURCE_PATH SOURCE_PATH
+ URL https://git.code.sf.net/p/crashrpt/code
+ REF 4616504670be5a425a525376648d912a72ce18f2
+ PATCHES
+ 001-add-install-target-and-find-deps.patch
+)
+
+# Remove vendored dependencies to ensure they are not picked up by the build
+# Vendored minizip is still used since it contains modifications needed for CrashRpt
+foreach(DEPENDENCY dbghelp jpeg libogg libpng libtheora tinyxml wtl zlib)
+ if(EXISTS ${SOURCE_PATH}/thirdparty/${DEPENDENCY})
+ file(REMOVE_RECURSE ${SOURCE_PATH}/thirdparty/${DEPENDENCY})
+ endif()
+endforeach()
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CRASHRPT_BUILD_SHARED_LIBS)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" CRASHRPT_LINK_CRT_AS_DLL)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ probe CRASHRPT_BUILD_PROBE
+ tests CRASHRPT_BUILD_TESTS
+ demos CRASHRPT_BUILD_DEMOS
+)
+
+# PREFER_NINJA is not used below since CrashSender fails to build with errors like this one:
+# C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.23.28105\ATLMFC\include\atlconv.h(788): error C2440: 'return': cannot convert from 'LPCTSTR' to 'LPCOLESTR'
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ # PREFER_NINJA
+ OPTIONS
+ -DCRASHRPT_BUILD_SHARED_LIBS=${CRASHRPT_BUILD_SHARED_LIBS}
+ -DCRASHRPT_LINK_CRT_AS_DLL=${CRASHRPT_LINK_CRT_AS_DLL}
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/dbghelp/CONTROL b/ports/dbghelp/CONTROL
new file mode 100644
index 000000000..e92599d57
--- /dev/null
+++ b/ports/dbghelp/CONTROL
@@ -0,0 +1,4 @@
+Source: dbghelp
+Version: 0.0
+Description: Windows Debug Help Library
+Supports: windows \ No newline at end of file
diff --git a/ports/dbghelp/portfile.cmake b/ports/dbghelp/portfile.cmake
new file mode 100644
index 000000000..832bec6d7
--- /dev/null
+++ b/ports/dbghelp/portfile.cmake
@@ -0,0 +1,27 @@
+vcpkg_fail_port_install(ON_TARGET "OSX" "Linux")
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+vcpkg_get_windows_sdk(WINDOWS_SDK)
+
+if (WINDOWS_SDK VERSION_GREATER "10")
+ set(LIBFILEPATH "$ENV{WindowsSdkDir}Debuggers\\lib\\${TRIPLET_SYSTEM_ARCH}\\dbghelp.lib")
+ message("LIBFILEPATH: ${LIBFILEPATH}")
+ set(DLLFILEPATH "$ENV{WindowsSdkDir}Debuggers\\${TRIPLET_SYSTEM_ARCH}\\dbghelp.dll")
+ message("DLLFILEPATH: ${DLLFILEPATH}")
+ set(HEADERPATH "$ENV{WindowsSdkDir}Debuggers\\inc\\dbghelp.h")
+ message("HEADERPATH: ${HEADERPATH}")
+else()
+ message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}")
+endif()
+
+if (NOT EXISTS "${LIBFILEPATH}" OR NOT EXISTS "${DLLFILEPATH}" OR NOT EXISTS "${HEADERPATH}")
+ message(FATAL_ERROR "Cannot find debugging tools in Windows SDK ${WINDOWS_SDK}. Please reinstall the Windows SDK and select \"Debugging Tools\".")
+endif()
+
+file(INSTALL ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+file(INSTALL ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+file(INSTALL ${DLLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+file(INSTALL ${DLLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(INSTALL ${HEADERPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license")
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt
index 9c3347625..a6cc7c886 100644
--- a/scripts/ci.baseline.txt
+++ b/scripts/ci.baseline.txt
@@ -276,6 +276,15 @@ cudnn:arm-uwp=fail
cudnn:x64-uwp=fail
cudnn:x64-windows-static=fail
cudnn:x86-windows=fail
+# Since pipeline cannot automatically install dbghelp dependency, skip this detection
+dbghelp:arm-uwp=skip
+dbghelp:arm64-windows=skip
+dbghelp:x64-linux=fail
+dbghelp:x64-osx=fail
+dbghelp:x64-uwp=skip
+dbghelp:x64-windows-static=skip
+dbghelp:x64-windows=skip
+dbghelp:x86-windows=skip
dbow2:x64-osx=fail
dcmtk:arm-uwp=fail
dcmtk:arm64-windows=fail