Modular all-in-one QMake build script (foug_datax.pro)
This commit is contained in:
parent
174fe74939
commit
a6128da7d2
@ -1,2 +0,0 @@
|
|||||||
TEMPLATE = subdirs
|
|
||||||
SUBDIRS += libstl
|
|
@ -1,73 +0,0 @@
|
|||||||
isEmpty(PREFIX_DIR) {
|
|
||||||
PREFIX_DIR = ../../..
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../../config.pri)
|
|
||||||
|
|
||||||
message($$PREFIX_DIR)
|
|
||||||
|
|
||||||
TEMPLATE = lib
|
|
||||||
TARGET = fougdatax-c$$TARGET_SUFFIX
|
|
||||||
DESTDIR = $$PREFIX_DIR/lib
|
|
||||||
|
|
||||||
DATAX *= stl
|
|
||||||
|
|
||||||
dll:DEFINES *= FOUG_LIB_DLL \
|
|
||||||
FOUG_LIB_MAKE_DLL
|
|
||||||
|
|
||||||
#*g++*:QMAKE_CXXFLAGS_RELEASE -= -O2
|
|
||||||
#*g++*:QMAKE_CXXFLAGS_RELEASE += -O3
|
|
||||||
|
|
||||||
INCLUDEPATH += ../../../src
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
../../../src/c/endian.h \
|
|
||||||
../../../src/c/error.h \
|
|
||||||
../../../src/c/global.h \
|
|
||||||
../../../src/c/memory.h \
|
|
||||||
../../../src/c/stream.h \
|
|
||||||
../../../src/c/task_control.h \
|
|
||||||
../../../src/c/transfer.h \
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
../../../src/c/endian.c \
|
|
||||||
../../../src/c/error.c \
|
|
||||||
../../../src/c/stream.c \
|
|
||||||
../../../src/c/task_control.c
|
|
||||||
|
|
||||||
*-g++*:QMAKE_CFLAGS += -ansi -pedantic-errors
|
|
||||||
*-msvc*:QMAKE_CFLAGS += -TC
|
|
||||||
|
|
||||||
global_inc.path = $$PREFIX_DIR/include/datax
|
|
||||||
global_inc.files = ../../../src/*.h
|
|
||||||
c_global_inc.path = $$PREFIX_DIR/include/datax/c
|
|
||||||
c_global_inc.files = ../../../src/c/*.h
|
|
||||||
INSTALLS += global_inc c_global_inc
|
|
||||||
|
|
||||||
contains(DATAX, stl) {
|
|
||||||
dll:DEFINES *= FOUG_DATAX_LIBSTL_DLL \
|
|
||||||
FOUG_DATAX_LIBSTL_MAKE_DLL
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
../../../src/c/libstl/stl_global.h \
|
|
||||||
../../../src/c/libstl/stla_read.h \
|
|
||||||
../../../src/c/libstl/stla_write.h \
|
|
||||||
../../../src/c/libstl/stlb_read.h \
|
|
||||||
../../../src/c/libstl/stlb_write.h \
|
|
||||||
../../../src/c/libstl/stl_triangle.h \
|
|
||||||
../../../src/c/libstl/stlb_triangle.h
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
../../../src/c/libstl/stla_read.c \
|
|
||||||
../../../src/c/libstl/stla_write.c \
|
|
||||||
../../../src/c/libstl/stlb_read.c \
|
|
||||||
../../../src/c/libstl/stlb_write.c
|
|
||||||
|
|
||||||
c_libstl_inc.path = $$PREFIX_DIR/include/datax/c/libstl
|
|
||||||
c_libstl_inc.files = ../../../src/c/libstl/*.h
|
|
||||||
INSTALLS += c_libstl_inc
|
|
||||||
} # contains(DATAX, stl)
|
|
||||||
|
|
||||||
#VER_MAJ = 0
|
|
||||||
#VER_MIN = 1
|
|
||||||
#VER_PAT = 0
|
|
@ -1,4 +1,115 @@
|
|||||||
TEMPLATE = subdirs
|
isEmpty(PREFIX_DIR) {
|
||||||
CONFIG *= ordered
|
PREFIX_DIR = ..
|
||||||
|
}
|
||||||
|
|
||||||
SUBDIRS += c c++
|
include(config.pri)
|
||||||
|
|
||||||
|
message($$PREFIX_DIR)
|
||||||
|
|
||||||
|
TEMPLATE = lib
|
||||||
|
TARGET = fougdatax-c$$TARGET_SUFFIX
|
||||||
|
DESTDIR = $$PREFIX_DIR/lib
|
||||||
|
|
||||||
|
QT =
|
||||||
|
|
||||||
|
DATAX *= stl qt4_support occ_support
|
||||||
|
|
||||||
|
dll:DEFINES *= FOUG_LIB_DLL \
|
||||||
|
FOUG_LIB_MAKE_DLL
|
||||||
|
|
||||||
|
#*g++*:QMAKE_CXXFLAGS_RELEASE -= -O2
|
||||||
|
#*g++*:QMAKE_CXXFLAGS_RELEASE += -O3
|
||||||
|
|
||||||
|
INCLUDEPATH += ../src
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
../src/c/endian.h \
|
||||||
|
../src/c/error.h \
|
||||||
|
../src/c/global.h \
|
||||||
|
../src/c/memory.h \
|
||||||
|
../src/c/stream.h \
|
||||||
|
../src/c/task_control.h \
|
||||||
|
../src/c/transfer.h \
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
../src/c/endian.c \
|
||||||
|
../src/c/error.c \
|
||||||
|
../src/c/stream.c \
|
||||||
|
../src/c/task_control.c
|
||||||
|
|
||||||
|
*-g++*:QMAKE_CFLAGS += -ansi -pedantic-errors
|
||||||
|
*-msvc*:QMAKE_CFLAGS += -TC
|
||||||
|
|
||||||
|
global_inc.path = $$PREFIX_DIR/include/datax
|
||||||
|
global_inc.files = ../src/*.h
|
||||||
|
c_global_inc.path = $$PREFIX_DIR/include/datax/c
|
||||||
|
c_global_inc.files = ../src/c/*.h
|
||||||
|
INSTALLS += global_inc c_global_inc
|
||||||
|
|
||||||
|
# libSTL
|
||||||
|
contains(DATAX, stl) {
|
||||||
|
dll:DEFINES *= FOUG_DATAX_LIBSTL_DLL \
|
||||||
|
FOUG_DATAX_LIBSTL_MAKE_DLL
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
../src/c/libstl/stl_global.h \
|
||||||
|
../src/c/libstl/stla_read.h \
|
||||||
|
../src/c/libstl/stla_write.h \
|
||||||
|
../src/c/libstl/stlb_read.h \
|
||||||
|
../src/c/libstl/stlb_write.h \
|
||||||
|
../src/c/libstl/stl_triangle.h \
|
||||||
|
../src/c/libstl/stlb_triangle.h
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
../src/c/libstl/stla_read.c \
|
||||||
|
../src/c/libstl/stla_write.c \
|
||||||
|
../src/c/libstl/stlb_read.c \
|
||||||
|
../src/c/libstl/stlb_write.c
|
||||||
|
|
||||||
|
c_libstl_inc.path = $$PREFIX_DIR/include/datax/c/libstl
|
||||||
|
c_libstl_inc.files = ../src/c/libstl/*.h
|
||||||
|
INSTALLS += c_libstl_inc
|
||||||
|
} # contains(DATAX, stl)
|
||||||
|
|
||||||
|
# libSupport
|
||||||
|
HAS_SUPPORT = $$find(DATAX, support)
|
||||||
|
!isEmpty(HAS_SUPPORT) {
|
||||||
|
dll:DEFINES *= FOUG_LIBSUPPORT_DLL \
|
||||||
|
FOUG_LIBSUPPORT_MAKE_DLL
|
||||||
|
support_inc.path = $$PREFIX_DIR/include/datax/c/support
|
||||||
|
support_inc.files = ../src/c/support/support_global.h
|
||||||
|
INSTALLS += support_inc
|
||||||
|
} # !isEmpty(HAS_SUPPORT)
|
||||||
|
|
||||||
|
# qt4_support
|
||||||
|
contains(DATAX, qt4_support) {
|
||||||
|
HEADERS += ../src/c/support/qt4_stream.h
|
||||||
|
SOURCES += ../src/c/support/qt4_stream.cpp
|
||||||
|
|
||||||
|
qt4_support_inc.path = $$PREFIX_DIR/include/datax/c/support
|
||||||
|
qt4_support_inc.files = ../src/c/support/qt4_stream.h
|
||||||
|
INSTALLS += qt4_support_inc
|
||||||
|
} # contains(DATAX, qt4_support)
|
||||||
|
|
||||||
|
# occ_support
|
||||||
|
contains(DATAX, occ_support) {
|
||||||
|
isEmpty(CASCADE_ROOT):error(Variable CASCADE_ROOT is not defined)
|
||||||
|
|
||||||
|
INCLUDEPATH += $$CASCADE_ROOT/inc
|
||||||
|
|
||||||
|
!win32:DEFINES *= HAVE_CONFIG_H \
|
||||||
|
HAVE_FSTREAM \
|
||||||
|
HAVE_IOSTREAM \
|
||||||
|
HAVE_LIMITS_H
|
||||||
|
|
||||||
|
HEADERS += ../src/c/support/occ_libstl.h
|
||||||
|
SOURCES += ../src/c/support/occ_libstl.cpp
|
||||||
|
|
||||||
|
occ_support_inc.path = $$PREFIX_DIR/include/datax/c/support
|
||||||
|
occ_support_inc.files = ../src/c/support/occ_libstl.h
|
||||||
|
INSTALLS += occ_support_inc
|
||||||
|
} # contains(DATAX, occ_support)
|
||||||
|
|
||||||
|
#VER_MAJ = 0
|
||||||
|
#VER_MIN = 1
|
||||||
|
#VER_PAT = 0
|
||||||
|
124
src/c/support/occ_libstl.cpp
Normal file
124
src/c/support/occ_libstl.cpp
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
#include "occ_libstl.h"
|
||||||
|
|
||||||
|
#include <cstring>
|
||||||
|
#include <StlMesh_Mesh.hxx>
|
||||||
|
#include <StlMesh_MeshTriangle.hxx>
|
||||||
|
#include <StlMesh_SequenceOfMeshTriangle.hxx>
|
||||||
|
#include <TColgp_SequenceOfXYZ.hxx>
|
||||||
|
|
||||||
|
/* ASCII STL */
|
||||||
|
|
||||||
|
static void occ_mesh_stl_add_triangle(Handle_StlMesh_Mesh* mesh, const foug_stl_triangle_t* tri)
|
||||||
|
{
|
||||||
|
const int uId = (*mesh)->AddOnlyNewVertex(tri->v1.x, tri->v1.y, tri->v1.z);
|
||||||
|
const int vId = (*mesh)->AddOnlyNewVertex(tri->v2.x, tri->v2.y, tri->v2.z);
|
||||||
|
const int wId = (*mesh)->AddOnlyNewVertex(tri->v3.x, tri->v3.y, tri->v3.z);
|
||||||
|
(*mesh)->AddTriangle(uId, vId, wId, tri->normal.x, tri->normal.y, tri->normal.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void occ_mesh_stla_igeom_begin_solid(foug_stla_geom_input_t* geom, const char* /*name*/)
|
||||||
|
{
|
||||||
|
Handle_StlMesh_Mesh* mesh = static_cast<Handle_StlMesh_Mesh*>(geom->cookie);
|
||||||
|
if (mesh->IsNull())
|
||||||
|
*mesh = new StlMesh_Mesh;
|
||||||
|
(*mesh)->AddDomain();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void occ_mesh_stla_igeom_process_next_triangle(foug_stla_geom_input_t* geom,
|
||||||
|
const foug_stl_triangle_t* tri)
|
||||||
|
{
|
||||||
|
Handle_StlMesh_Mesh* mesh = static_cast<Handle_StlMesh_Mesh*>(geom->cookie);
|
||||||
|
occ_mesh_stl_add_triangle(mesh, tri);
|
||||||
|
}
|
||||||
|
|
||||||
|
void foug_stla_geom_input_set_occmesh(foug_stla_geom_input_t* input, Handle_StlMesh_Mesh* mesh)
|
||||||
|
{
|
||||||
|
input->cookie = mesh;
|
||||||
|
input->begin_solid_func = occ_mesh_stla_igeom_begin_solid;
|
||||||
|
input->process_next_triangle_func = occ_mesh_stla_igeom_process_next_triangle;
|
||||||
|
input->end_solid_func = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Binary STL */
|
||||||
|
|
||||||
|
static void occ_mesh_stlb_igeom_begin_triangles(foug_stlb_geom_input_t* geom, uint32_t /*count*/)
|
||||||
|
{
|
||||||
|
Handle_StlMesh_Mesh* mesh = static_cast<Handle_StlMesh_Mesh*>(geom->cookie);
|
||||||
|
*mesh = new StlMesh_Mesh;
|
||||||
|
(*mesh)->AddDomain();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void occ_mesh_stlb_igeom_process_next_triangle(foug_stlb_geom_input_t* geom,
|
||||||
|
const foug_stlb_triangle_t* face)
|
||||||
|
{
|
||||||
|
Handle_StlMesh_Mesh* mesh = static_cast<Handle_StlMesh_Mesh*>(geom->cookie);
|
||||||
|
occ_mesh_stl_add_triangle(mesh, &(face->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
void foug_stlb_geom_input_set_occmesh(foug_stlb_geom_input_t* input, Handle_StlMesh_Mesh* mesh)
|
||||||
|
{
|
||||||
|
input->cookie = mesh;
|
||||||
|
input->process_header_func = NULL;
|
||||||
|
input->begin_triangles_func = occ_mesh_stlb_igeom_begin_triangles;
|
||||||
|
input->process_next_triangle_func = occ_mesh_stlb_igeom_process_next_triangle;
|
||||||
|
input->end_triangles_func = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void occ_mesh_stlb_ogeom_get_header(const foug_stlb_geom_output_t* /*geom*/, uint8_t* header)
|
||||||
|
{
|
||||||
|
std::memcpy(header, "Generated by libfougdatax-c", FOUG_STLB_HEADER_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t occ_mesh_stlb_ogeom_get_triangle_count(const foug_stlb_geom_output_t* geom)
|
||||||
|
{
|
||||||
|
Handle_StlMesh_Mesh* mesh = static_cast<Handle_StlMesh_Mesh*>(geom->cookie);
|
||||||
|
if ((*mesh)->NbDomains() >= 1)
|
||||||
|
return (*mesh)->NbTriangles(1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void occ_mesh_stlb_ogeom_get_triangle(const foug_stlb_geom_output_t* geom,
|
||||||
|
uint32_t index,
|
||||||
|
foug_stlb_triangle_t* facet)
|
||||||
|
{
|
||||||
|
Handle_StlMesh_Mesh* mesh = static_cast<Handle_StlMesh_Mesh*>(geom->cookie);
|
||||||
|
|
||||||
|
const StlMesh_SequenceOfMeshTriangle& meshTriangles = (*mesh)->Triangles(1);
|
||||||
|
const Handle_StlMesh_MeshTriangle tri = meshTriangles.Value(index + 1);
|
||||||
|
Standard_Integer v1;
|
||||||
|
Standard_Integer v2;
|
||||||
|
Standard_Integer v3;
|
||||||
|
Standard_Real xN;
|
||||||
|
Standard_Real yN;
|
||||||
|
Standard_Real zN;
|
||||||
|
tri->GetVertexAndOrientation(v1, v2, v3, xN, yN, zN);
|
||||||
|
facet->data.normal.x = xN;
|
||||||
|
facet->data.normal.y = yN;
|
||||||
|
facet->data.normal.z = zN;
|
||||||
|
|
||||||
|
const TColgp_SequenceOfXYZ& vertices = (*mesh)->Vertices(1);
|
||||||
|
const gp_XYZ& coordsV1 = vertices.Value(v1);
|
||||||
|
const gp_XYZ& coordsV2 = vertices.Value(v2);
|
||||||
|
const gp_XYZ& coordsV3 = vertices.Value(v3);
|
||||||
|
facet->data.v1.x = coordsV1.X();
|
||||||
|
facet->data.v2.x = coordsV2.X();
|
||||||
|
facet->data.v3.x = coordsV3.X();
|
||||||
|
|
||||||
|
facet->data.v1.y = coordsV1.Y();
|
||||||
|
facet->data.v2.y = coordsV2.Y();
|
||||||
|
facet->data.v3.y = coordsV3.Y();
|
||||||
|
|
||||||
|
facet->data.v1.z = coordsV1.Z();
|
||||||
|
facet->data.v2.z = coordsV2.Z();
|
||||||
|
facet->data.v3.z = coordsV3.Z();
|
||||||
|
|
||||||
|
facet->attribute_byte_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void foug_stlb_geom_output_set_occmesh(foug_stlb_geom_output_t* output, Handle_StlMesh_Mesh* mesh)
|
||||||
|
{
|
||||||
|
output->cookie = mesh;
|
||||||
|
output->get_header_func = occ_mesh_stlb_ogeom_get_header;
|
||||||
|
output->get_triangle_count_func = occ_mesh_stlb_ogeom_get_triangle_count;
|
||||||
|
output->get_triangle_func = occ_mesh_stlb_ogeom_get_triangle;
|
||||||
|
}
|
30
src/c/support/occ_libstl.h
Normal file
30
src/c/support/occ_libstl.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#ifndef FOUG_SUPPORT_OCC_LIBSTL_H
|
||||||
|
#define FOUG_SUPPORT_OCC_LIBSTL_H
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "support_global.h"
|
||||||
|
#include "../libstl/stla_read.h"
|
||||||
|
#include "../libstl/stla_write.h"
|
||||||
|
#include "../libstl/stlb_read.h"
|
||||||
|
#include "../libstl/stlb_write.h"
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <Handle_StlMesh_Mesh.hxx>
|
||||||
|
|
||||||
|
/* ASCII STL */
|
||||||
|
|
||||||
|
FOUG_LIBSUPPORT_EXPORT
|
||||||
|
void foug_stla_geom_input_set_occmesh(foug_stla_geom_input_t* input, Handle_StlMesh_Mesh* mesh);
|
||||||
|
|
||||||
|
FOUG_LIBSUPPORT_EXPORT
|
||||||
|
void foug_stla_geom_output_set_occmesh(foug_stla_geom_output_t* output, Handle_StlMesh_Mesh* mesh);
|
||||||
|
|
||||||
|
/* Binary STL */
|
||||||
|
|
||||||
|
FOUG_LIBSUPPORT_EXPORT
|
||||||
|
void foug_stlb_geom_input_set_occmesh(foug_stlb_geom_input_t* input, Handle_StlMesh_Mesh* mesh);
|
||||||
|
|
||||||
|
FOUG_LIBSUPPORT_EXPORT
|
||||||
|
void foug_stlb_geom_output_set_occmesh(foug_stlb_geom_output_t* output, Handle_StlMesh_Mesh* mesh);
|
||||||
|
|
||||||
|
#endif /* FOUG_SUPPORT_OCC_LIBSTL_H */
|
52
src/c/support/qt4_stream.cpp
Normal file
52
src/c/support/qt4_stream.cpp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#include "qt4_stream.h"
|
||||||
|
|
||||||
|
#include <QtCore/QFile>
|
||||||
|
#include <QtCore/QIODevice>
|
||||||
|
|
||||||
|
static foug_bool_t foug_stream_qiodevice_at_end(foug_stream_t* stream)
|
||||||
|
{
|
||||||
|
return static_cast<QIODevice*>(stream->cookie)->atEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t foug_stream_qiodevice_error(foug_stream_t* stream)
|
||||||
|
{
|
||||||
|
const QIODevice* device = static_cast<QIODevice*>(stream->cookie);
|
||||||
|
const QFile* file = dynamic_cast<const QFile*>(device);
|
||||||
|
if (file != NULL) {
|
||||||
|
return file->error();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
const QString err_str = static_cast<QIODevice*>(stream->cookie)->errorString();
|
||||||
|
return !err_str.isEmpty() ? 1 : 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static size_t foug_stream_qiodevice_read(foug_stream_t* stream,
|
||||||
|
void* ptr,
|
||||||
|
size_t item_size,
|
||||||
|
size_t item_count)
|
||||||
|
{
|
||||||
|
QIODevice* device = static_cast<QIODevice*>(stream->cookie);
|
||||||
|
const qint64 c = device->read(static_cast<char*>(ptr), item_size * item_count);
|
||||||
|
return c / item_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
static size_t foug_stream_qiodevice_write(foug_stream_t* stream,
|
||||||
|
const void* ptr,
|
||||||
|
size_t item_size,
|
||||||
|
size_t item_count)
|
||||||
|
{
|
||||||
|
QIODevice* device = static_cast<QIODevice*>(stream->cookie);
|
||||||
|
const qint64 c = device->write(static_cast<const char*>(ptr), item_size * item_count);
|
||||||
|
return c / item_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
void foug_stream_set_qiodevice(foug_stream_t* stream, QIODevice* device)
|
||||||
|
{
|
||||||
|
stream->cookie = device;
|
||||||
|
stream->at_end_func = foug_stream_qiodevice_at_end;
|
||||||
|
stream->error_func = foug_stream_qiodevice_error;
|
||||||
|
stream->read_func = foug_stream_qiodevice_read;
|
||||||
|
stream->write_func = foug_stream_qiodevice_write;
|
||||||
|
}
|
13
src/c/support/qt4_stream.h
Normal file
13
src/c/support/qt4_stream.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef FOUG_SUPPORT_QT4_STREAM_H
|
||||||
|
#define FOUG_SUPPORT_QT4_STREAM_H
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "support_global.h"
|
||||||
|
#include "../stream.h"
|
||||||
|
}
|
||||||
|
class QIODevice;
|
||||||
|
|
||||||
|
FOUG_LIBSUPPORT_EXPORT
|
||||||
|
void foug_stream_set_qiodevice(foug_stream_t* stream, QIODevice* device);
|
||||||
|
|
||||||
|
#endif /* FOUG_SUPPORT_QT4_STREAM_H */
|
16
src/c/support/support_global.h
Normal file
16
src/c/support/support_global.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#ifndef FOUG_C_SUPPORT_GLOBAL_H
|
||||||
|
#define FOUG_C_SUPPORT_GLOBAL_H
|
||||||
|
|
||||||
|
#include "../global.h"
|
||||||
|
|
||||||
|
#ifdef FOUG_LIBSUPPORT_DLL
|
||||||
|
# ifdef FOUG_LIBSUPPORT_MAKE_DLL
|
||||||
|
# define FOUG_LIBSUPPORT_EXPORT FOUG_DECL_EXPORT
|
||||||
|
# else
|
||||||
|
# define FOUG_LIBSUPPORT_EXPORT FOUG_DECL_IMPORT
|
||||||
|
# endif /* FOUG_LIBSUPPORT_MAKE_DLL */
|
||||||
|
#else
|
||||||
|
# define FOUG_LIBSUPPORT_EXPORT
|
||||||
|
#endif /* FOUG_LIBSUPPORT_DLL */
|
||||||
|
|
||||||
|
#endif /* FOUG_C_SUPPORT_GLOBAL_H */
|
Loading…
Reference in New Issue
Block a user