diff --git a/src/OpenMesh/Core/CMakeLists.txt b/src/OpenMesh/Core/CMakeLists.txt index 637ba8e8..f5aa9535 100644 --- a/src/OpenMesh/Core/CMakeLists.txt +++ b/src/OpenMesh/Core/CMakeLists.txt @@ -39,6 +39,7 @@ if (WIN32) if ( OPENMESH_BUILD_SHARED ) # Experimental Feature!!!! + add_definitions( -DOPENMESHDLL) acg_add_library (OpenMeshCore SHARED ${sources} ${headers}) else() # OpenMesh has no dll exports so we have to build a static library on windows diff --git a/src/OpenMesh/Core/System/OpenMeshDLLMacros.hh b/src/OpenMesh/Core/System/OpenMeshDLLMacros.hh new file mode 100644 index 00000000..5fface2d --- /dev/null +++ b/src/OpenMesh/Core/System/OpenMeshDLLMacros.hh @@ -0,0 +1,65 @@ +/*===========================================================================*\ + * * + * OpenMesh * + * Copyright (C) 2001-2011 by Computer Graphics Group, RWTH Aachen * + * www.openmesh.org * + * * + *---------------------------------------------------------------------------* + * This file is part of OpenMesh. * + * * + * OpenMesh is free software: you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License as * + * published by the Free Software Foundation, either version 3 of * + * the License, or (at your option) any later version with the * + * following exceptions: * + * * + * If other files instantiate templates or use macros * + * or inline functions from this file, or you compile this file and * + * link it with other files to produce an executable, this file does * + * not by itself cause the resulting executable to be covered by the * + * GNU Lesser General Public License. This exception does not however * + * invalidate any other reasons why the executable file might be * + * covered by the GNU Lesser General Public License. * + * * + * OpenMesh is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU LesserGeneral Public * + * License along with OpenMesh. If not, * + * see . * + * * +\*===========================================================================*/ + +/*===========================================================================*\ + * * + * $Revision: 566 $ * + * $Date: 2012-03-23 18:00:57 +0100 (Fr, 23 Mär 2012) $ * + * * +\*===========================================================================*/ + +// Disable the warnings about needs to have DLL interface as we have tons of vector templates +#ifdef WIN32 + #pragma warning( disable: 4251 ) +#endif + +#ifndef OPENMESHDLLEXPORT + #ifdef WIN32 + #ifdef OPENMESHDLL + #ifdef USEOPENMESH + #define OPENMESHDLLEXPORT __declspec(dllimport) + #define OPENMESHDLLEXPORTONLY + #else + #define OPENMESHDLLEXPORT __declspec(dllexport) + #define OPENMESHDLLEXPORTONLY __declspec(dllexport) + #endif + #else + #define OPENMESHDLLEXPORT + #define OPENMESHDLLEXPORTONLY + #endif + #else + #define OPENMESHDLLEXPORT + #define OPENMESHDLLEXPORTONLY + #endif +#endif diff --git a/src/OpenMesh/Core/System/config.h b/src/OpenMesh/Core/System/config.h index b66c7405..3eefb611 100644 --- a/src/OpenMesh/Core/System/config.h +++ b/src/OpenMesh/Core/System/config.h @@ -53,6 +53,7 @@ #include #include +#include // ---------------------------------------------------------------------------- diff --git a/src/OpenMesh/Tools/CMakeLists.txt b/src/OpenMesh/Tools/CMakeLists.txt index 0f125c8e..57d24ba5 100644 --- a/src/OpenMesh/Tools/CMakeLists.txt +++ b/src/OpenMesh/Tools/CMakeLists.txt @@ -39,6 +39,7 @@ if (WIN32) if ( OPENMESH_BUILD_SHARED ) # Experimental Feature!!!! + add_definitions( -DOPENMESHDLL) acg_add_library (OpenMeshTools SHARED ${sources} ${headers}) else() # OpenMesh has no dll exports so we have to build a static library on windows diff --git a/src/OpenMesh/Tools/Utils/Timer.hh b/src/OpenMesh/Tools/Utils/Timer.hh index 8d29d8f6..4e667196 100644 --- a/src/OpenMesh/Tools/Utils/Timer.hh +++ b/src/OpenMesh/Tools/Utils/Timer.hh @@ -77,7 +77,7 @@ class TimerImpl; /** Timer class */ -class Timer +class OPENMESHDLLEXPORT Timer { public: diff --git a/src/OpenMesh/Tools/Utils/conio.hh b/src/OpenMesh/Tools/Utils/conio.hh index b6317deb..f5a47882 100644 --- a/src/OpenMesh/Tools/Utils/conio.hh +++ b/src/OpenMesh/Tools/Utils/conio.hh @@ -52,6 +52,7 @@ namespace Utils { * * \see getch(), getche() */ +OPENMESHDLLEXPORT int kbhit(void); @@ -61,6 +62,7 @@ int kbhit(void); * * \see getche(), kbhit() */ +OPENMESHDLLEXPORT int getch(void); /** A blocking single character input from stdin with echo. @@ -68,6 +70,7 @@ int getch(void); * \return Character, or -1 if an input error occurs. * \see getch(), kbhit() */ +OPENMESHDLLEXPORT int getche(void); // ----------------------------------------------------------------------------