--- squirrel3/squirrel/CMakeLists.txt.orig	2016-03-17 14:09:06.000000000 -0400
+++ squirrel3/squirrel/CMakeLists.txt	2019-04-02 00:40:42.049942400 -0400
@@ -1,30 +1,37 @@
-set(SQUIRREL_SRC sqapi.cpp
-                 sqbaselib.cpp
-                 sqclass.cpp
-                 sqcompiler.cpp
-                 sqdebug.cpp
-                 sqfuncstate.cpp
-                 sqlexer.cpp
-                 sqmem.cpp
-                 sqobject.cpp
-                 sqstate.cpp
-                 sqtable.cpp
-                 sqvm.cpp)
-
-add_library(squirrel SHARED ${SQUIRREL_SRC})
-install(TARGETS squirrel RUNTIME DESTINATION ${INSTALL_BIN_DIR}
-                         LIBRARY DESTINATION ${INSTALL_LIB_DIR}
-                         ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
-
-if(NOT DEFINED DISABLE_STATIC)
-  add_library(squirrel_static STATIC ${SQUIRREL_SRC})
-  install(TARGETS squirrel_static ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
-endif()
-
-if(DEFINED LONG_OUTPUT_NAMES)
-  set_target_properties(squirrel PROPERTIES OUTPUT_NAME squirrel3)
-
-  if(NOT DEFINED DISABLE_STATIC)
-    set_target_properties(squirrel_static PROPERTIES OUTPUT_NAME squirrel3_static)
-  endif()
-endif()
+set(SQUIRREL_SRC sqapi.cpp
+                 sqbaselib.cpp
+                 sqclass.cpp
+                 sqcompiler.cpp
+                 sqdebug.cpp
+                 sqfuncstate.cpp
+                 sqlexer.cpp
+                 sqmem.cpp
+                 sqobject.cpp
+                 sqstate.cpp
+                 sqtable.cpp
+                 sqvm.cpp)
+
+add_library(squirrel SHARED ${SQUIRREL_SRC})
+install(TARGETS squirrel RUNTIME DESTINATION ${INSTALL_BIN_DIR}
+                         LIBRARY DESTINATION ${INSTALL_LIB_DIR}
+                         ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
+
+if(NOT DEFINED DISABLE_STATIC)
+  add_library(squirrel_static STATIC ${SQUIRREL_SRC})
+  install(TARGETS squirrel_static ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
+  if(MINGW)
+      set_target_properties(squirrel_static PROPERTIES OUTPUT_NAME squirrel)
+  endif()
+endif()
+
+if(DEFINED LONG_OUTPUT_NAMES)
+  set_target_properties(squirrel PROPERTIES OUTPUT_NAME squirrel3)
+
+  if(NOT DEFINED DISABLE_STATIC)
+    if(MINGW)
+      set_target_properties(squirrel_static PROPERTIES OUTPUT_NAME squirrel3)
+    else()
+      set_target_properties(squirrel_static PROPERTIES OUTPUT_NAME squirrel3_static)
+    endif(MINGW)
+  endif()
+endif()
--- squirrel3/sqstdlib/CMakeLists.txt.orig	2016-03-17 14:09:06.000000000 -0400
+++ squirrel3/sqstdlib/CMakeLists.txt	2019-04-02 00:52:45.409115900 -0400
@@ -16,12 +16,19 @@ install(TARGETS sqstdlib RUNTIME DESTINA
 if(NOT DEFINED DISABLE_STATIC)
   add_library(sqstdlib_static STATIC ${SQSTDLIB_SRC})
   install(TARGETS sqstdlib_static ARCHIVE DESTINATION ${INSTALL_LIB_DIR})
+  if(MINGW)
+      set_target_properties(sqstdlib_static PROPERTIES OUTPUT_NAME sqstdlib)
+  endif(MINGW)
 endif()
 
 if(DEFINED LONG_OUTPUT_NAMES)
   set_target_properties(sqstdlib PROPERTIES OUTPUT_NAME sqstdlib3)
 
   if(NOT DEFINED DISABLE_STATIC)
-    set_target_properties(sqstdlib_static PROPERTIES OUTPUT_NAME sqstdlib3_static)
+    if(MINGW)
+      set_target_properties(sqstdlib_static PROPERTIES OUTPUT_NAME sqstdlib)
+    else()
+      set_target_properties(sqstdlib_static PROPERTIES OUTPUT_NAME sqstdlib3_static)
+    endif(MINGW)
   endif()
 endif()
