--- a/CMakeModules/FindwxWidgets.cmake
+++ b/CMakeModules/FindwxWidgets.cmake
@@ -220,7 +220,7 @@ endif()
 #=====================================================================
 # Determine whether unix or win32 paths should be used
 #=====================================================================
-if(WIN32 AND NOT CYGWIN AND NOT MSYS AND NOT CMAKE_HOST_UNIX )
+if(WIN32 AND NOT CYGWIN AND NOT MSYS AND NOT CMAKE_HOST_UNIX AND NOT MINGW)
   set(wxWidgets_FIND_STYLE "win32")
 else()
   set(wxWidgets_FIND_STYLE "unix")
@@ -231,7 +231,11 @@ endif()
 #=====================================================================
 if(wxWidgets_FIND_STYLE STREQUAL "win32")
   # Useful common wx libs needed by almost all components.
-  set(wxWidgets_COMMON_LIBRARIES png tiff jpeg zlib regex expat)
+  if(VCPKG_TOOLCHAIN)
+    set(wxWidgets_COMMON_LIBRARIES libpng16 tiff jpeg zlib libexpat)
+  else()
+    set(wxWidgets_COMMON_LIBRARIES png tiff jpeg zlib regex expat)
+  endif()

   # DEPRECATED: Use find_package(wxWidgets COMPONENTS mono) instead.
   if(NOT wxWidgets_FIND_COMPONENTS)
@@ -282,6 +286,7 @@ if(wxWidgets_FIND_STYLE STREQUAL "win32")
         NAMES
         wx${LIB}${_UCD}${_DBG} # for regex
         wx${LIB}${_DBG}
+        ${LIB}${_DBG}          # vcpkg libraries aren't specific to wx
         PATHS ${WX_LIB_DIR}
         NO_DEFAULT_PATH
         )
@@ -509,41 +514,111 @@ if(wxWidgets_FIND_STYLE STREQUAL "win32")
     else()
       set(WX_LIB_DIR_PREFIX vc)
     endif()
+
+  if(VCPKG_TOOLCHAIN)
+    set(wxWidgets_FOUND TRUE)
+      find_path(wxWidgets_ROOT_DIR
+      NAMES include/wx/wx.h
+      PATHS
+      ENV wxWidgets_ROOT_DIR
+      DOC "wxWidgets base/installation directory"
+      )
+    if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+      set(wxWidgets_LIB_DIR ${wxWidgets_ROOT_DIR}/debug/lib)
+      set(wxWidgets_CONFIGURATION mswud)
+    else()
+      set(wxWidgets_LIB_DIR ${wxWidgets_ROOT_DIR}/lib)
+      set(wxWidgets_CONFIGURATION mswu)
+    endif()
+
+    set(wxWidgets_BIN_DIR ${wxWidgets_ROOT_DIR}/bin)
+    set(wxWidgets_INCLUDE_DIR ${wxWidgets_ROOT_DIR}/include)
+    file(GLOB DLL ${wxWidgets_BIN_DIR}/wxmsw*.dll)
+    if (DLL)
+      set(wxWidgets_DEFINITIONS WXUSINGDLL)
+      DBG_MSG_V("detected SHARED/DLL tree wxWidgets_LIB_DIR=${wxWidgets_LIB_DIR}")
+    endif ()
+    set(WX_ROOT_DIR ${wxWidgets_ROOT_DIR})
+    set(WX_LIB_DIR ${wxWidgets_LIB_DIR})  # needed by macro
+    set(WX_CONFIGURATION_LIST ${wxWidgets_CONFIGURATION})
+
+    # Set wxWidgets lib setup include directory.
+    if (EXISTS ${wxWidgets_INCLUDE_DIR}/wx/setup.h)
+      set(wxWidgets_INCLUDE_DIRS ${wxWidgets_INCLUDE_DIR})
+    else ()
+      DBG_MSG("wxWidgets_FOUND FALSE because ${wxWidgets_INCLUDE_DIR}/wx/setup.h does not exists.")
+      set(wxWidgets_FOUND FALSE)
+    endif ()
+
+    # Set wxWidgets main include directory.
+    if (EXISTS ${wxWidgets_ROOT_DIR}/include/wx/wx.h)
+      list(APPEND wxWidgets_INCLUDE_DIRS ${wxWidgets_ROOT_DIR}/include)
+    else ()
+      DBG_MSG("wxWidgets_FOUND FALSE because wxWidgets_ROOT_DIR=${wxWidgets_ROOT_DIR} has no ${wxWidgets_ROOT_DIR}/include/wx/wx.h")
+      set(wxWidgets_FOUND FALSE)
+    endif ()
+
+    DBG_MSG_V("WX_CONFIGURATION_LIST=${WX_CONFIGURATION_LIST}")
+
+
+    # Get configuration parameters from the name.
+    WX_GET_NAME_COMPONENTS(${wxWidgets_CONFIGURATION} UNV UCD DBG)
+
+
+    # Find wxWidgets libraries.
+    WX_FIND_LIBS("${UNV}" "${UCD}" "${DBG}")
+    if (WX_USE_REL_AND_DBG)
+      WX_FIND_LIBS("${UNV}" "${UCD}" "d")
+    endif ()
+
+    # Settings for requested libs (i.e., include dir, libraries, etc.).
+    WX_SET_LIBRARIES(wxWidgets_FIND_COMPONENTS "${DBG}")
+
+    # Add necessary definitions for unicode builds
+    if ("${UCD}" STREQUAL "u")
+      list(APPEND wxWidgets_DEFINITIONS UNICODE _UNICODE)
+    endif ()
+
+    # Add necessary definitions for debug builds
+    set(wxWidgets_DEFINITIONS_DEBUG _DEBUG __WXDEBUG__)
+
+  else()
     if(BUILD_SHARED_LIBS)
       find_path(wxWidgets_LIB_DIR
-        NAMES
-          msw/wx/setup.h
-          mswd/wx/setup.h
-          mswu/wx/setup.h
-          mswud/wx/setup.h
-          mswuniv/wx/setup.h
-          mswunivd/wx/setup.h
-          mswunivu/wx/setup.h
-          mswunivud/wx/setup.h
-        PATHS
-        ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_dll   # prefer shared
-        ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_lib
-        DOC "Path to wxWidgets libraries"
-        NO_DEFAULT_PATH
-        )
+      NAMES
+        msw/wx/setup.h
+        mswd/wx/setup.h
+        mswu/wx/setup.h
+        mswud/wx/setup.h
+        mswuniv/wx/setup.h
+        mswunivd/wx/setup.h
+        mswunivu/wx/setup.h
+        mswunivud/wx/setup.h
+      PATHS
+      ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_dll   # prefer shared
+      ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_lib
+      DOC "Path to wxWidgets libraries"
+      NO_DEFAULT_PATH
+      )
     else()
       find_path(wxWidgets_LIB_DIR
-        NAMES
-          msw/wx/setup.h
-          mswd/wx/setup.h
-          mswu/wx/setup.h
-          mswud/wx/setup.h
-          mswuniv/wx/setup.h
-          mswunivd/wx/setup.h
-          mswunivu/wx/setup.h
-          mswunivud/wx/setup.h
-        PATHS
-        ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_lib   # prefer static
-        ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_dll
-        DOC "Path to wxWidgets libraries"
-        NO_DEFAULT_PATH
-        )
+      NAMES
+        msw/wx/setup.h
+        mswd/wx/setup.h
+        mswu/wx/setup.h
+        mswud/wx/setup.h
+        mswuniv/wx/setup.h
+        mswunivd/wx/setup.h
+        mswunivu/wx/setup.h
+        mswunivud/wx/setup.h
+      PATHS
+      ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_lib   # prefer static
+      ${WX_ROOT_DIR}/lib/${WX_LIB_DIR_PREFIX}_dll
+      DOC "Path to wxWidgets libraries"
+      NO_DEFAULT_PATH
+      )
     endif()
+  endif()

     # If wxWidgets_LIB_DIR changed, clear all libraries.
     if(NOT WX_LIB_DIR STREQUAL wxWidgets_LIB_DIR)
@@ -842,7 +917,7 @@ else()
     # When using wx-config in MSYS, the include paths are UNIX style paths which may or may
     # not work correctly depending on you MSYS/MinGW configuration.  CMake expects native
     # paths internally.
-    if(wxWidgets_FOUND AND MSYS)
+    if(wxWidgets_FOUND AND (MSYS OR MINGW))
       find_program(_cygpath_exe cygpath ONLY_CMAKE_FIND_ROOT_PATH)
       DBG_MSG_V("_cygpath_exe:  ${_cygpath_exe}")
       if(_cygpath_exe)
--
