From 214bc1f278b573b84904d873350e64e5046cc17c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Mon, 28 Nov 2011 13:31:31 +0000 Subject: [PATCH] MinGW support git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@471 fdac6126-5c0c-442c-9429-916003d36597 --- CMakeLists.txt | 8 +++++--- cmake/ACGCommon.cmake | 9 +++++++-- src/OpenMesh/Apps/CMakeLists.txt | 10 +++++++++- src/OpenMesh/Core/CMakeLists.txt | 11 ++++++----- src/OpenMesh/Tools/CMakeLists.txt | 13 ++++++------- src/OpenMesh/Tools/Utils/Gnuplot.cc | 9 +++++++-- src/OpenMesh/Tools/Utils/Timer.cc | 4 ++-- src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc | 5 +++++ 8 files changed, 47 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7991fd22..dac332fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ if ( NOT DEFINED BUILD_APPS ) endif() if (WIN32) - if ( BUILD_APPS ) + if ( NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" AND BUILD_APPS ) add_custom_target (fixbundle ALL COMMAND ${CMAKE_COMMAND} -P "${CMAKE_BINARY_DIR}/fixbundle.win.cmake" ) endif() @@ -59,8 +59,10 @@ if (WIN32 AND BUILD_APPS ) configure_file ("${CMAKE_SOURCE_DIR}/cmake/fixbundle.cmake.win.in" "${CMAKE_BINARY_DIR}/fixbundle.win.cmake" @ONLY IMMEDIATE) - # let bundle generation depend on all targets - add_dependencies (fixbundle QtViewer DecimaterGui) + if ( NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" ) + # let bundle generation depend on all targets + add_dependencies (fixbundle QtViewer DecimaterGui) + endif() endif() diff --git a/cmake/ACGCommon.cmake b/cmake/ACGCommon.cmake index 5d332bd9..e212ed34 100644 --- a/cmake/ACGCommon.cmake +++ b/cmake/ACGCommon.cmake @@ -468,11 +468,16 @@ function (acg_add_library _target _libtype) ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/${fullname}.dll) endif () if (${_type} STREQUAL SHARED OR ${_type} STREQUAL STATIC) + if("${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles") + SET(OUTPUTNAME "lib${fullname}.a") + else() + SET(OUTPUTNAME "${fullname}.lib") + endif() add_custom_command (TARGET ${_target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${fullname}.lib - ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/${fullname}.lib) + ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${OUTPUTNAME} + ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/${OUTPUTNAME}) endif () elseif (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE) if (${_type} STREQUAL SHARED) diff --git a/src/OpenMesh/Apps/CMakeLists.txt b/src/OpenMesh/Apps/CMakeLists.txt index 15f6fd60..ca5e28ab 100644 --- a/src/OpenMesh/Apps/CMakeLists.txt +++ b/src/OpenMesh/Apps/CMakeLists.txt @@ -16,7 +16,15 @@ add_subdirectory (VDProgMesh/mkbalancedpm) add_subdirectory (VDProgMesh/Analyzer) # Add non ui apps as dependency before fixbundle -if ( WIN32 OR APPLE) +if ( WIN32 ) + if ( NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" ) + # let bundle generation depend on all targets + add_dependencies (fixbundle commandlineDecimater Dualizer mconvert Smoothing commandlineAdaptiveSubdivider commandlineSubdivider mkbalancedpm Analyzer ) + endif() +endif() + +# Add non ui apps as dependency before fixbundle +if ( APPLE) # let bundle generation depend on all targets add_dependencies (fixbundle commandlineDecimater Dualizer mconvert Smoothing commandlineAdaptiveSubdivider commandlineSubdivider mkbalancedpm Analyzer ) endif() diff --git a/src/OpenMesh/Core/CMakeLists.txt b/src/OpenMesh/Core/CMakeLists.txt index b3c436a3..0d3740a0 100644 --- a/src/OpenMesh/Core/CMakeLists.txt +++ b/src/OpenMesh/Core/CMakeLists.txt @@ -42,13 +42,14 @@ endif () # Add core as dependency before fixbundle if ( ${PROJECT_NAME} MATCHES "OpenMesh") - # Add core as dependency before fixbundle - if ( WIN32 AND BUILD_APPS ) - # let bundle generation depend on targets - add_dependencies (fixbundle OpenMeshCore) + if ( WIN32 AND BUILD_APPS) + if ( NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" ) + add_dependencies (fixbundle OpenMeshCore) + endif() endif() - + + # Add core as dependency before fixbundle if ( APPLE) # let bundle generation depend on targets add_dependencies (fixbundle OpenMeshCore) diff --git a/src/OpenMesh/Tools/CMakeLists.txt b/src/OpenMesh/Tools/CMakeLists.txt index 7db17c56..cc0129d5 100644 --- a/src/OpenMesh/Tools/CMakeLists.txt +++ b/src/OpenMesh/Tools/CMakeLists.txt @@ -49,9 +49,11 @@ ENDIF(NOT WIN32) if ( ${PROJECT_NAME} MATCHES "OpenMesh") - if ( WIN32 AND BUILD_APPS ) - # let bundle generation depend on target - add_dependencies (fixbundle OpenMeshTools) + if ( WIN32 AND BUILD_APPS) + if ( NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" ) + # let bundle generation depend on target + add_dependencies (fixbundle OpenMeshTools) + endif() endif() @@ -59,12 +61,9 @@ if ( ${PROJECT_NAME} MATCHES "OpenMesh") if (APPLE) # let bundle generation depend on target add_dependencies (fixbundle OpenMeshTools) - endif() - - if ( APPLE) - # let bundle generation depend on target add_dependencies (fixbundle OpenMeshToolsStatic) endif() + endif() diff --git a/src/OpenMesh/Tools/Utils/Gnuplot.cc b/src/OpenMesh/Tools/Utils/Gnuplot.cc index e872d715..0ab66af3 100644 --- a/src/OpenMesh/Tools/Utils/Gnuplot.cc +++ b/src/OpenMesh/Tools/Utils/Gnuplot.cc @@ -45,8 +45,13 @@ #endif #ifndef WIN32 -#include -#include + #include + #include +#else + #ifdef __MINGW32__ + #include + #include + #endif #endif using namespace std; diff --git a/src/OpenMesh/Tools/Utils/Timer.cc b/src/OpenMesh/Tools/Utils/Timer.cc index 1f7eb5d3..d8c60e16 100644 --- a/src/OpenMesh/Tools/Utils/Timer.cc +++ b/src/OpenMesh/Tools/Utils/Timer.cc @@ -181,7 +181,7 @@ protected: }; // ----------------------------------------------------------- gettimeofday ---- -#elif defined(__GNUC__) || (defined(__INTEL_COMPILER) && !defined(WIN32)) +#elif (defined(__GNUC__) || (defined(__INTEL_COMPILER) && !defined(WIN32))) && !defined(__MINGW32__) # include # include @@ -268,7 +268,7 @@ Timer::Timer(void) # else impl_ = new TimerImplPosix; # endif -#elif defined(__GNUC__) || (defined(__INTEL_COMPILER) && !defined(WIN32)) +#elif (defined(__GNUC__) || (defined(__INTEL_COMPILER) && !defined(WIN32)) ) && !defined(__MINGW32__) impl_ = new TimerImplGToD; #else impl_ = new TimerImplStd; diff --git a/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc b/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc index e75133b0..ecb063e7 100644 --- a/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc +++ b/src/OpenMesh/Tools/VDPM/VHierarchyWindow.cc @@ -53,6 +53,11 @@ #ifndef WIN32 #include #include +#else + #if defined(__MINGW32__) + #include + #include + #endif #endif //== NAMESPACES ===============================================================