diff --git a/src/OpenMesh/Core/Geometry/Plane3d.hh b/src/OpenMesh/Core/Geometry/Plane3d.hh index dec4b8b9..eba10145 100644 --- a/src/OpenMesh/Core/Geometry/Plane3d.hh +++ b/src/OpenMesh/Core/Geometry/Plane3d.hh @@ -71,7 +71,7 @@ namespace VDPM { */ -class Plane3d +class OPENMESHDLLEXPORT Plane3d { public: diff --git a/src/OpenMesh/Core/IO/IOManager.hh b/src/OpenMesh/Core/IO/IOManager.hh index dc6d1a81..e27461e8 100644 --- a/src/OpenMesh/Core/IO/IOManager.hh +++ b/src/OpenMesh/Core/IO/IOManager.hh @@ -102,7 +102,7 @@ class OPENMESHDLLEXPORT _IOManager_ private: _IOManager_() {} - friend _IOManager_& IOManager(); + friend OPENMESHDLLEXPORT _IOManager_& IOManager(); public: @@ -247,7 +247,7 @@ private: extern _IOManager_* __IOManager_instance; -_IOManager_& IOManager(); +OPENMESHDLLEXPORT _IOManager_& IOManager(); diff --git a/src/OpenMesh/Core/IO/OFFFormat.hh b/src/OpenMesh/Core/IO/OFFFormat.hh index ada3cde9..819a2466 100644 --- a/src/OpenMesh/Core/IO/OFFFormat.hh +++ b/src/OpenMesh/Core/IO/OFFFormat.hh @@ -71,7 +71,7 @@ namespace IO { #ifndef DOXY_IGNORE_THIS -struct OFFFormat +struct OPENMESHDLLEXPORT OFFFormat { typedef int integer_type; typedef float float_type; diff --git a/src/OpenMesh/Core/IO/exporter/BaseExporter.hh b/src/OpenMesh/Core/IO/exporter/BaseExporter.hh index 60222d0c..0a129270 100644 --- a/src/OpenMesh/Core/IO/exporter/BaseExporter.hh +++ b/src/OpenMesh/Core/IO/exporter/BaseExporter.hh @@ -79,7 +79,7 @@ namespace IO { the target data structure. */ -class BaseExporter +class OPENMESHDLLEXPORT BaseExporter { public: diff --git a/src/OpenMesh/Core/IO/importer/BaseImporter.hh b/src/OpenMesh/Core/IO/importer/BaseImporter.hh index b49fe01c..4b25c4c9 100644 --- a/src/OpenMesh/Core/IO/importer/BaseImporter.hh +++ b/src/OpenMesh/Core/IO/importer/BaseImporter.hh @@ -78,7 +78,7 @@ namespace IO { * structure. This is basically a wrapper providing virtual versions * for the required mesh functions. */ -class BaseImporter +class OPENMESHDLLEXPORT BaseImporter { public: diff --git a/src/OpenMesh/Core/IO/reader/OBJReader.hh b/src/OpenMesh/Core/IO/reader/OBJReader.hh index 0845395c..2fe7273f 100644 --- a/src/OpenMesh/Core/IO/reader/OBJReader.hh +++ b/src/OpenMesh/Core/IO/reader/OBJReader.hh @@ -176,7 +176,7 @@ private: extern _OBJReader_ __OBJReaderInstance; -_OBJReader_& OBJReader(); +OPENMESHDLLEXPORT _OBJReader_& OBJReader(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/reader/OFFReader.hh b/src/OpenMesh/Core/IO/reader/OFFReader.hh index 116825ec..5c314b0f 100644 --- a/src/OpenMesh/Core/IO/reader/OFFReader.hh +++ b/src/OpenMesh/Core/IO/reader/OFFReader.hh @@ -157,7 +157,7 @@ private: /// Declare the single entity of the OFF reader extern _OFFReader_ __OFFReaderInstance; -_OFFReader_& OFFReader(); +OPENMESHDLLEXPORT _OFFReader_& OFFReader(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/reader/OMReader.hh b/src/OpenMesh/Core/IO/reader/OMReader.hh index 96fdf18b..d42a41f0 100644 --- a/src/OpenMesh/Core/IO/reader/OMReader.hh +++ b/src/OpenMesh/Core/IO/reader/OMReader.hh @@ -159,7 +159,7 @@ private: /// Declare the single entity of the OM reader. extern _OMReader_ __OMReaderInstance; -_OMReader_& OMReader(); +OPENMESHDLLEXPORT _OMReader_& OMReader(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/reader/PLYReader.hh b/src/OpenMesh/Core/IO/reader/PLYReader.hh index 671d1a89..3e5fa0b7 100644 --- a/src/OpenMesh/Core/IO/reader/PLYReader.hh +++ b/src/OpenMesh/Core/IO/reader/PLYReader.hh @@ -183,7 +183,7 @@ private: /// Declare the single entity of the PLY reader extern _PLYReader_ __PLYReaderInstance; -_PLYReader_& PLYReader(); +OPENMESHDLLEXPORT _PLYReader_& PLYReader(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/reader/STLReader.hh b/src/OpenMesh/Core/IO/reader/STLReader.hh index 2f8afca5..885aa74b 100644 --- a/src/OpenMesh/Core/IO/reader/STLReader.hh +++ b/src/OpenMesh/Core/IO/reader/STLReader.hh @@ -135,7 +135,7 @@ private: /// Declare the single entity of the STL reader extern _STLReader_ __STLReaderInstance; -_STLReader_& STLReader(); +OPENMESHDLLEXPORT _STLReader_& STLReader(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/writer/OBJWriter.hh b/src/OpenMesh/Core/IO/writer/OBJWriter.hh index 3fd720a9..08a73911 100644 --- a/src/OpenMesh/Core/IO/writer/OBJWriter.hh +++ b/src/OpenMesh/Core/IO/writer/OBJWriter.hh @@ -118,7 +118,7 @@ private: /// Declare the single entity of the OBJ writer extern _OBJWriter_ __OBJWriterinstance; -_OBJWriter_& OBJWriter(); +OPENMESHDLLEXPORT _OBJWriter_& OBJWriter(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/writer/OFFWriter.hh b/src/OpenMesh/Core/IO/writer/OFFWriter.hh index 780c8f59..8dfef5b7 100644 --- a/src/OpenMesh/Core/IO/writer/OFFWriter.hh +++ b/src/OpenMesh/Core/IO/writer/OFFWriter.hh @@ -122,7 +122,7 @@ protected: /// Declare the single entity of the OFF writer. extern _OFFWriter_ __OFFWriterInstance; -_OFFWriter_& OFFWriter(); +OPENMESHDLLEXPORT _OFFWriter_& OFFWriter(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/writer/OMWriter.hh b/src/OpenMesh/Core/IO/writer/OMWriter.hh index b00abfe4..968dc6eb 100644 --- a/src/OpenMesh/Core/IO/writer/OMWriter.hh +++ b/src/OpenMesh/Core/IO/writer/OMWriter.hh @@ -129,7 +129,7 @@ protected: /// Declare the single entity of the OM writer. extern _OMWriter_ __OMWriterInstance; -_OMWriter_& OMWriter(); +OPENMESHDLLEXPORT _OMWriter_& OMWriter(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/writer/PLYWriter.hh b/src/OpenMesh/Core/IO/writer/PLYWriter.hh index ad5df70d..b85647b5 100644 --- a/src/OpenMesh/Core/IO/writer/PLYWriter.hh +++ b/src/OpenMesh/Core/IO/writer/PLYWriter.hh @@ -126,7 +126,7 @@ protected: /// Declare the single entity of the PLY writer. extern _PLYWriter_ __PLYWriterInstance; -_PLYWriter_& PLYWriter(); +OPENMESHDLLEXPORT _PLYWriter_& PLYWriter(); //============================================================================= diff --git a/src/OpenMesh/Core/IO/writer/STLWriter.hh b/src/OpenMesh/Core/IO/writer/STLWriter.hh index 11711266..15638a33 100644 --- a/src/OpenMesh/Core/IO/writer/STLWriter.hh +++ b/src/OpenMesh/Core/IO/writer/STLWriter.hh @@ -110,7 +110,7 @@ private: // Declare the single entity of STL writer. extern _STLWriter_ __STLWriterInstance; -_STLWriter_& STLWriter(); +OPENMESHDLLEXPORT _STLWriter_& STLWriter(); //============================================================================= diff --git a/src/OpenMesh/Core/Mesh/ArrayKernel.hh b/src/OpenMesh/Core/Mesh/ArrayKernel.hh index 498927a4..5edf19af 100644 --- a/src/OpenMesh/Core/Mesh/ArrayKernel.hh +++ b/src/OpenMesh/Core/Mesh/ArrayKernel.hh @@ -82,7 +82,7 @@ namespace OpenMesh { \see OpenMesh::Concepts::KernelT, \ref mesh_type */ -class ArrayKernel : public BaseKernel, public ArrayItems +class OPENMESHDLLEXPORT ArrayKernel : public BaseKernel, public ArrayItems { public: diff --git a/src/OpenMesh/Core/System/omstream.hh b/src/OpenMesh/Core/System/omstream.hh index 12572c25..f13df6b9 100644 --- a/src/OpenMesh/Core/System/omstream.hh +++ b/src/OpenMesh/Core/System/omstream.hh @@ -66,9 +66,9 @@ \see OpenMesh::mostream */ //@{ -OpenMesh::mostream& omlog(); -OpenMesh::mostream& omout(); -OpenMesh::mostream& omerr(); +OPENMESHDLLEXPORT OpenMesh::mostream& omlog(); +OPENMESHDLLEXPORT OpenMesh::mostream& omout(); +OPENMESHDLLEXPORT OpenMesh::mostream& omerr(); //@} //============================================================================= diff --git a/src/OpenMesh/Tools/Utils/getopt.c b/src/OpenMesh/Tools/Utils/getopt.c index ea29020d..e8d8f81f 100644 --- a/src/OpenMesh/Tools/Utils/getopt.c +++ b/src/OpenMesh/Tools/Utils/getopt.c @@ -40,11 +40,11 @@ static char sccsid[] = "@(#)getopt.c 8.3 (Berkeley) 4/27/95"; #include #include "getopt.h" -int opterr = 1, /* if error message should be printed */ +OPENMESHDLLEXPORT int opterr = 1, /* if error message should be printed */ optind = 1, /* index into parent argv vector */ optopt, /* character checked for validity */ optreset; /* reset getopt */ -char *optarg; /* argument associated with option */ +OPENMESHDLLEXPORT char *optarg; /* argument associated with option */ #define BADCH (int)'?' #define BADARG (int)':' @@ -54,7 +54,7 @@ char *optarg; /* argument associated with option */ * getopt -- * Parse argc/argv argument vector. */ -int +OPENMESHDLLEXPORT int getopt(int nargc, char * const *nargv, const char *ostr) { # define __progname nargv[0] diff --git a/src/OpenMesh/Tools/Utils/getopt.h b/src/OpenMesh/Tools/Utils/getopt.h index 912300d2..df0d7e01 100644 --- a/src/OpenMesh/Tools/Utils/getopt.h +++ b/src/OpenMesh/Tools/Utils/getopt.h @@ -2,19 +2,20 @@ #define _GETOPT_H_ #include +#include #if defined(WIN32) #if defined(__cplusplus) extern "C" { -extern int opterr; -extern int optind; -extern int optopt; -extern int optreset; -extern char *optarg; +extern OPENMESHDLLEXPORT int opterr; +extern OPENMESHDLLEXPORT int optind; +extern OPENMESHDLLEXPORT int optopt; +extern OPENMESHDLLEXPORT int optreset; +extern OPENMESHDLLEXPORT char *optarg; -extern int getopt(int nargc, char * const *nargv, const char *ostr); +OPENMESHDLLEXPORT extern int getopt(int nargc, char * const *nargv, const char *ostr); } diff --git a/src/OpenMesh/Tools/VDPM/MeshTraits.hh b/src/OpenMesh/Tools/VDPM/MeshTraits.hh index 306dda52..d8444285 100644 --- a/src/OpenMesh/Tools/VDPM/MeshTraits.hh +++ b/src/OpenMesh/Tools/VDPM/MeshTraits.hh @@ -73,7 +73,7 @@ namespace VDPM { Mesh traits for View Dependent Progressive Meshes */ -struct MeshTraits : public DefaultTraits +struct OPENMESHDLLEXPORT MeshTraits : public DefaultTraits { VertexTraits { diff --git a/src/OpenMesh/Tools/VDPM/VFront.hh b/src/OpenMesh/Tools/VDPM/VFront.hh index 866fa6aa..1cfc373d 100644 --- a/src/OpenMesh/Tools/VDPM/VFront.hh +++ b/src/OpenMesh/Tools/VDPM/VFront.hh @@ -70,7 +70,7 @@ namespace VDPM { /** Active nodes in vertex hierarchy. \todo VFront documentation */ -class VFront +class OPENMESHDLLEXPORT VFront { private: diff --git a/src/OpenMesh/Tools/VDPM/VHierarchy.hh b/src/OpenMesh/Tools/VDPM/VHierarchy.hh index 5f892b06..35408f4a 100644 --- a/src/OpenMesh/Tools/VDPM/VHierarchy.hh +++ b/src/OpenMesh/Tools/VDPM/VHierarchy.hh @@ -68,7 +68,7 @@ namespace VDPM { /** Keeps the vertex hierarchy build during analyzing a progressive mesh. */ -class VHierarchy +class OPENMESHDLLEXPORT VHierarchy { public: diff --git a/src/OpenMesh/Tools/VDPM/ViewingParameters.hh b/src/OpenMesh/Tools/VDPM/ViewingParameters.hh index 0bd1e9d6..51e4c451 100644 --- a/src/OpenMesh/Tools/VDPM/ViewingParameters.hh +++ b/src/OpenMesh/Tools/VDPM/ViewingParameters.hh @@ -69,7 +69,7 @@ namespace VDPM { /** \todo ViewerParameters documentation */ -class ViewingParameters +class OPENMESHDLLEXPORT ViewingParameters { private: double modelview_matrix_[16]; diff --git a/src/Unittests/CMakeLists.txt b/src/Unittests/CMakeLists.txt index fa64cad7..fd0605af 100644 --- a/src/Unittests/CMakeLists.txt +++ b/src/Unittests/CMakeLists.txt @@ -24,7 +24,7 @@ if ( OPENMESH_BUILD_UNIT_TESTS ) # Create new target named unittests_hexmeshing add_executable(unittests unittests.cc) - if ( NOT WIN32) + if ( NOT WIN32) # Link against all necessary libraries target_link_libraries(unittests OpenMeshCore OpenMeshTools ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} pthread) @@ -33,8 +33,12 @@ if ( OPENMESH_BUILD_UNIT_TESTS ) else() # Link against all necessary libraries + if ( OPENMESH_BUILD_SHARED ) + #!!!! Experimental Feature!!! + add_definitions( -DOPENMESHDLL ) + endif() target_link_libraries(unittests OpenMeshCore OpenMeshTools ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES}) - endif() + endif() @@ -53,7 +57,7 @@ if ( OPENMESH_BUILD_UNIT_TESTS ) copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/unittests.exe ${CMAKE_BINARY_DIR}/Unittests/unittests.exe) - endif() + endif() acg_copy_after_build(unittests ${CMAKE_CURRENT_SOURCE_DIR}/TestFiles ${CMAKE_BINARY_DIR}/Unittests/)