diff --git a/Doc/changelog.docu b/Doc/changelog.docu
index b95f1239..a8e8c135 100644
--- a/Doc/changelog.docu
+++ b/Doc/changelog.docu
@@ -29,6 +29,7 @@
Build System
- Some fixes for min gw (Thanks to Xan for the patch)
+- Several changes to support mingw on windows again. (Thanks to Christian Feurer for the patches).
Infrastructure
diff --git a/cmake/ACGCommon.cmake b/cmake/ACGCommon.cmake
index 3eb69f5b..a4419084 100644
--- a/cmake/ACGCommon.cmake
+++ b/cmake/ACGCommon.cmake
@@ -619,7 +619,7 @@ function (acg_add_library _target _libtype)
if (${_libtype} STREQUAL SHAREDANDSTATIC)
set (_type SHARED)
- if (NOT WIN32)
+ if (NOT WIN32 OR MINGW)
set (_and_static 1)
else ()
set (_and_static 0)
@@ -649,7 +649,7 @@ function (acg_add_library _target _libtype)
endif ()
endif ()
- if (WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
+ if ( (WIN32 AND MSVC) OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
if (${_type} STREQUAL SHARED)
add_custom_command (TARGET ${_target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E
@@ -688,7 +688,7 @@ function (acg_add_library _target _libtype)
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/$)
endif ()
- endif(WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
+ endif( (WIN32 AND MSVC) OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
if (_and_static)
add_custom_command (TARGET ${_target}Static POST_BUILD
diff --git a/src/OpenMesh/Core/CMakeLists.txt b/src/OpenMesh/Core/CMakeLists.txt
index f74c41db..9c8c1670 100644
--- a/src/OpenMesh/Core/CMakeLists.txt
+++ b/src/OpenMesh/Core/CMakeLists.txt
@@ -35,7 +35,7 @@ if ( NOT ${PROJECT_NAME} MATCHES "OpenMesh")
endif()
-if (WIN32)
+if (WIN32 AND NOT MINGW)
if ( OPENMESH_BUILD_SHARED )
add_definitions( -DOPENMESHDLL -DBUILDOPENMESHDLL)
diff --git a/src/OpenMesh/Tools/CMakeLists.txt b/src/OpenMesh/Tools/CMakeLists.txt
index a37785b1..728a367a 100644
--- a/src/OpenMesh/Tools/CMakeLists.txt
+++ b/src/OpenMesh/Tools/CMakeLists.txt
@@ -25,9 +25,9 @@ acg_append_files (sources "*.cc" ${directories})
#Drop the template only cc files
acg_drop_templates(sources)
-IF(WIN32)
+IF(WIN32 AND NOT MINGW)
acg_append_files (sources "*.c" ${directories})
-ENDIF(WIN32)
+ENDIF(WIN32 AND NOT MINGW)
# Disable Library installation when not building OpenMesh on its own but as part of another project!
if ( NOT ${PROJECT_NAME} MATCHES "OpenMesh")