Switched PoyVox to build as a static library.
This commit is contained in:
parent
a5f37d7a3a
commit
ef52b906e6
@ -46,9 +46,10 @@ IF(WIN32)
|
||||
COMPONENT example
|
||||
)
|
||||
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
#.dlls should be installed in shared builds.
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
ENDIF(WIN32)
|
||||
|
@ -52,9 +52,10 @@ IF(WIN32)
|
||||
COMPONENT example
|
||||
)
|
||||
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
#.dlls should be installed in shared builds.
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
ENDIF(WIN32)
|
||||
|
@ -48,9 +48,10 @@ IF(WIN32)
|
||||
COMPONENT example
|
||||
)
|
||||
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
#.dlls should be installed in shared builds.
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../release/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Release)
|
||||
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxCore.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
#INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/../../debug/PolyVoxUtil.dll DESTINATION Examples/OpenGL/bin CONFIGURATIONS Debug)
|
||||
ENDIF(WIN32)
|
||||
|
@ -79,7 +79,8 @@ SET(IMPL_INC_FILES
|
||||
include/PolyVoxImpl/Utility.h
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(-DPOLYVOXCORE_EXPORT) #Export symbols in the .dll
|
||||
#NOTE: The following line should be uncommented when building shared libs.
|
||||
#ADD_DEFINITIONS(-DPOLYVOX_SHARED_EXPORTS) #Export symbols in the .dll
|
||||
|
||||
#"Sources" and "Headers" are the group names in Visual Studio.
|
||||
#They may have other uses too...
|
||||
@ -94,7 +95,7 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
#Core
|
||||
#Build
|
||||
ADD_LIBRARY(PolyVoxCore SHARED ${CORE_SRC_FILES} ${CORE_INC_FILES} ${IMPL_SRC_FILES} ${IMPL_INC_FILES})
|
||||
ADD_LIBRARY(PolyVoxCore STATIC ${CORE_SRC_FILES} ${CORE_INC_FILES} ${IMPL_SRC_FILES} ${IMPL_INC_FILES})
|
||||
SET_TARGET_PROPERTIES(PolyVoxCore PROPERTIES VERSION ${POLYVOX_VERSION} SOVERSION ${POLYVOX_VERSION_MAJOR})
|
||||
IF(MSVC)
|
||||
SET_TARGET_PROPERTIES(PolyVoxCore PROPERTIES COMPILE_FLAGS "/wd4251") #Disable warning on STL exports
|
||||
|
@ -38,9 +38,9 @@ namespace PolyVox
|
||||
const float sqrt_2 = 1.4143f;
|
||||
const float sqrt_3 = 1.7321f;
|
||||
|
||||
extern const POLYVOXCORE_API Vector3DInt32 arrayPathfinderFaces[6];
|
||||
extern const POLYVOXCORE_API Vector3DInt32 arrayPathfinderEdges[12];
|
||||
extern const POLYVOXCORE_API Vector3DInt32 arrayPathfinderCorners[8];
|
||||
extern const POLYVOX_API Vector3DInt32 arrayPathfinderFaces[6];
|
||||
extern const POLYVOX_API Vector3DInt32 arrayPathfinderEdges[12];
|
||||
extern const POLYVOX_API Vector3DInt32 arrayPathfinderCorners[8];
|
||||
|
||||
/// This function provides the default method for checking whether a given voxel
|
||||
/// is vaid for the path computed by the AStarPathfinder.
|
||||
|
@ -53,7 +53,7 @@ namespace PolyVox
|
||||
/// behind it may appear complex. For reference, it is based upon the article here:
|
||||
/// http://www.drdobbs.com/cpp/184401319/
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
class POLYVOXCORE_API ArraySizes
|
||||
class POLYVOX_API ArraySizes
|
||||
{
|
||||
typedef const uint32_t (&UIntArray1)[1];
|
||||
|
||||
|
@ -55,8 +55,8 @@ namespace PolyVox
|
||||
template <typename VoxelType>
|
||||
Vector3DFloat computeSmoothSobelGradient(VolumeSampler<VoxelType>& volIter);
|
||||
|
||||
POLYVOXCORE_API void computeNormalsForVertices(Volume<uint8_t>* volumeData, SurfaceMesh<PositionMaterialNormal>& mesh, NormalGenerationMethod normalGenerationMethod);
|
||||
POLYVOXCORE_API Vector3DFloat computeNormal(Volume<uint8_t>* volumeData, const Vector3DFloat& v3dPos, NormalGenerationMethod normalGenerationMethod);
|
||||
POLYVOX_API void computeNormalsForVertices(Volume<uint8_t>* volumeData, SurfaceMesh<PositionMaterialNormal>& mesh, NormalGenerationMethod normalGenerationMethod);
|
||||
POLYVOX_API Vector3DFloat computeNormal(Volume<uint8_t>* volumeData, const Vector3DFloat& v3dPos, NormalGenerationMethod normalGenerationMethod);
|
||||
}
|
||||
|
||||
#include "GradientEstimators.inl"
|
||||
|
@ -45,7 +45,7 @@ namespace PolyVox
|
||||
LS_ERROR
|
||||
};
|
||||
|
||||
POLYVOXCORE_API extern void (*logHandler)(std::string, int severity);
|
||||
POLYVOX_API extern void (*logHandler)(std::string, int severity);
|
||||
}
|
||||
|
||||
//Debug severity messages are only used if we are a debug build
|
||||
|
@ -28,8 +28,8 @@ freely, subject to the following restrictions:
|
||||
|
||||
namespace PolyVox
|
||||
{
|
||||
extern POLYVOXCORE_API int edgeTable[256];
|
||||
extern POLYVOXCORE_API int triTable[256][16];
|
||||
extern POLYVOX_API int edgeTable[256];
|
||||
extern POLYVOX_API int triTable[256][16];
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -28,7 +28,7 @@ freely, subject to the following restrictions:
|
||||
|
||||
namespace PolyVox
|
||||
{
|
||||
extern POLYVOXCORE_API const Vector3DFloat randomUnitVectors[];
|
||||
extern POLYVOX_API const Vector3DFloat randomUnitVectors[];
|
||||
}
|
||||
|
||||
#endif //__PolyVox_RandomUnitVectors_H__
|
||||
|
@ -28,7 +28,7 @@ freely, subject to the following restrictions:
|
||||
|
||||
namespace PolyVox
|
||||
{
|
||||
extern POLYVOXCORE_API const Vector3DFloat randomVectors[];
|
||||
extern POLYVOX_API const Vector3DFloat randomVectors[];
|
||||
}
|
||||
|
||||
#endif //__PolyVox_RandomVectors_H__
|
||||
|
@ -25,18 +25,39 @@ freely, subject to the following restrictions:
|
||||
#define __PolyVox_TypeDef_H__
|
||||
|
||||
//Definitions needed to make library functions accessable
|
||||
#ifdef _MSC_VER
|
||||
//We are using a Microsoft compiler.
|
||||
#ifdef POLYVOXCORE_EXPORT
|
||||
#define POLYVOXCORE_API __declspec(dllexport)
|
||||
#else
|
||||
#define POLYVOXCORE_API __declspec(dllimport)
|
||||
#endif
|
||||
// See http://gcc.gnu.org/wiki/Visibility for more info.
|
||||
#if defined _WIN32 || defined __CYGWIN__
|
||||
#define POLYVOX_HELPER_IMPORT __declspec(dllimport)
|
||||
#define POLYVOX_HELPER_EXPORT __declspec(dllexport)
|
||||
#define POLYVOX_HELPER_LOCAL
|
||||
#else
|
||||
//Assume a GNU compiler.
|
||||
#define POLYVOXCORE_API __attribute__ ((visibility("default")))
|
||||
#if __GNUC__ >= 4
|
||||
#define POLYVOX_HELPER_IMPORT __attribute__ ((visibility("default")))
|
||||
#define POLYVOX_HELPER_EXPORT __attribute__ ((visibility("default")))
|
||||
#define POLYVOX_HELPER_LOCAL __attribute__ ((visibility("hidden")))
|
||||
#else
|
||||
#define POLYVOX_HELPER_IMPORT
|
||||
#define POLYVOX_HELPER_EXPORT
|
||||
#define POLYVOX_HELPER_LOCAL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Now we use the generic helper definitions above to define POLYVOX_API and POLYVOX_LOCAL.
|
||||
// POLYVOX_API is used for the public API symbols. It either DLL imports or DLL exports (or does nothing for static build)
|
||||
// POLYVOX_LOCAL is used for non-api symbols.
|
||||
|
||||
#ifdef POLYVOX_SHARED // defined if FOX is compiled as a DLL
|
||||
#ifdef POLYVOX_SHARED_EXPORTS // defined if we are building the FOX DLL (instead of using it)
|
||||
#define POLYVOX_API POLYVOX_HELPER_EXPORT
|
||||
#else
|
||||
#define POLYVOX_API POLYVOX_HELPER_IMPORT
|
||||
#endif // POLYVOX_SHARED_EXPORTS
|
||||
#define POLYVOX_LOCAL POLYVOX_HELPER_LOCAL
|
||||
#else // POLYVOX_SHARED is not defined: this means FOX is a static lib.
|
||||
#define POLYVOX_API
|
||||
#define POLYVOX_LOCAL
|
||||
#endif // POLYVOX_SHARED
|
||||
|
||||
//Check which compiler we are using and work around unsupported features as necessary.
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
||||
//To support old (pre-vc2010) Microsoft compilers we use boost to replace the
|
||||
|
@ -30,8 +30,8 @@ freely, subject to the following restrictions:
|
||||
|
||||
namespace PolyVox
|
||||
{
|
||||
POLYVOXCORE_API uint8_t logBase2(uint32_t uInput);
|
||||
POLYVOXCORE_API bool isPowerOf2(uint32_t uInput);
|
||||
POLYVOX_API uint8_t logBase2(uint32_t uInput);
|
||||
POLYVOX_API bool isPowerOf2(uint32_t uInput);
|
||||
|
||||
template <typename Type>
|
||||
Type trilinearlyInterpolate(
|
||||
|
@ -32,7 +32,7 @@ namespace PolyVox
|
||||
#ifdef SWIG
|
||||
class Region
|
||||
#else
|
||||
class POLYVOXCORE_API Region
|
||||
class POLYVOX_API Region
|
||||
#endif
|
||||
{
|
||||
public:
|
||||
|
@ -35,7 +35,7 @@ namespace PolyVox
|
||||
#ifdef SWIG
|
||||
class PositionMaterial
|
||||
#else
|
||||
class POLYVOXCORE_API PositionMaterial
|
||||
class POLYVOX_API PositionMaterial
|
||||
#endif
|
||||
{
|
||||
public:
|
||||
@ -56,7 +56,7 @@ namespace PolyVox
|
||||
#ifdef SWIG
|
||||
class PositionMaterialNormal
|
||||
#else
|
||||
class POLYVOXCORE_API PositionMaterialNormal
|
||||
class POLYVOX_API PositionMaterialNormal
|
||||
#endif
|
||||
{
|
||||
public:
|
||||
|
@ -5,7 +5,7 @@
|
||||
namespace PolyVox
|
||||
{
|
||||
template<>
|
||||
POLYVOXCORE_API void MeshDecimator<PositionMaterial>::fillInitialVertexMetadata(std::vector<InitialVertexMetadata>& vecVertexMetadata)
|
||||
POLYVOX_API void MeshDecimator<PositionMaterial>::fillInitialVertexMetadata(std::vector<InitialVertexMetadata>& vecVertexMetadata)
|
||||
{
|
||||
vecVertexMetadata.clear();
|
||||
vecVertexMetadata.resize(m_pOutputMesh->m_vecVertices.size());
|
||||
@ -77,7 +77,7 @@ namespace PolyVox
|
||||
}
|
||||
|
||||
template<>
|
||||
POLYVOXCORE_API void MeshDecimator<PositionMaterialNormal>::fillInitialVertexMetadata(std::vector<InitialVertexMetadata>& vecVertexMetadata)
|
||||
POLYVOX_API void MeshDecimator<PositionMaterialNormal>::fillInitialVertexMetadata(std::vector<InitialVertexMetadata>& vecVertexMetadata)
|
||||
{
|
||||
vecVertexMetadata.clear();
|
||||
vecVertexMetadata.resize(m_pOutputMesh->m_vecVertices.size());
|
||||
@ -130,7 +130,7 @@ namespace PolyVox
|
||||
}
|
||||
|
||||
template<>
|
||||
POLYVOXCORE_API bool MeshDecimator<PositionMaterialNormal>::canCollapseNormalEdge(uint32_t uSrc, uint32_t uDst)
|
||||
POLYVOX_API bool MeshDecimator<PositionMaterialNormal>::canCollapseNormalEdge(uint32_t uSrc, uint32_t uDst)
|
||||
{
|
||||
if(m_vecInitialVertexMetadata[uSrc].normal.dot(m_vecInitialVertexMetadata[uDst].normal) < m_fMinDotProductForCollapse)
|
||||
{
|
||||
@ -142,7 +142,7 @@ namespace PolyVox
|
||||
}
|
||||
|
||||
template<>
|
||||
POLYVOXCORE_API bool MeshDecimator<PositionMaterial>::canCollapseNormalEdge(uint32_t uSrc, uint32_t uDst)
|
||||
POLYVOX_API bool MeshDecimator<PositionMaterial>::canCollapseNormalEdge(uint32_t uSrc, uint32_t uDst)
|
||||
{
|
||||
//We don't actually use the normal here, because we want to allow face
|
||||
//vertices to collapse onto edge vertices. Simply checking whether anything
|
||||
|
@ -9,14 +9,13 @@ SET(UTIL_SRC_FILES
|
||||
|
||||
#Projects headers files
|
||||
SET(UTIL_INC_FILES
|
||||
include/Export.h
|
||||
include/Serialization.h
|
||||
include/Serialization.inl
|
||||
include/VolumeChangeTracker.h
|
||||
include/VolumeChangeTracker.inl
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(-DPOLYVOXUTIL_EXPORT) #Export symbols in the .dll
|
||||
ADD_DEFINITIONS(-DPOLYVOX_SHARED_EXPORTS) #Export symbols in the .dll
|
||||
|
||||
#"Sources" and "Headers" are the group names in Visual Studio.
|
||||
#They may have other uses too...
|
||||
@ -30,7 +29,7 @@ LINK_DIRECTORIES(${PolyVoxCore_BINARY_DIR}/debug ${PolyVoxCore_BINARY_DIR}/relea
|
||||
|
||||
#Util
|
||||
#Build
|
||||
ADD_LIBRARY(PolyVoxUtil SHARED ${UTIL_SRC_FILES} ${UTIL_INC_FILES})
|
||||
ADD_LIBRARY(PolyVoxUtil STATIC ${UTIL_SRC_FILES} ${UTIL_INC_FILES})
|
||||
TARGET_LINK_LIBRARIES(PolyVoxUtil PolyVoxCore)
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtil PROPERTIES VERSION ${POLYVOX_VERSION} SOVERSION ${POLYVOX_VERSION_MAJOR})
|
||||
IF(MSVC)
|
||||
|
@ -1,37 +0,0 @@
|
||||
/*******************************************************************************
|
||||
Copyright (c) 2005-2009 David Williams
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
*******************************************************************************/
|
||||
|
||||
#ifndef __PolyVoxUtil_Export_H__
|
||||
#define __PolyVoxUtil_Export_H__
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef POLYVOXUTIL_EXPORT
|
||||
#define POLYVOXUTIL_API __declspec(dllexport)
|
||||
#else
|
||||
#define POLYVOXUTIL_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define POLYVOXUTIL_API __attribute__ ((visibility("default")))
|
||||
#endif
|
||||
|
||||
#endif
|
@ -26,7 +26,6 @@ freely, subject to the following restrictions:
|
||||
|
||||
#include "PolyVoxForwardDeclarations.h"
|
||||
#include "Region.h"
|
||||
#include "Export.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
@ -28,7 +28,6 @@ freely, subject to the following restrictions:
|
||||
|
||||
#include "PolyVoxForwardDeclarations.h"
|
||||
#include "Region.h"
|
||||
#include "Export.h"
|
||||
|
||||
namespace PolyVox
|
||||
{
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace PolyVox
|
||||
{
|
||||
class POLYVOXCORE_API DummyClass
|
||||
class POLYVOX_API DummyClass
|
||||
{
|
||||
public:
|
||||
int getx(void);
|
||||
|
Loading…
x
Reference in New Issue
Block a user