summaryrefslogtreecommitdiff
path: root/src/lib/openjp3d
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2012-10-15 09:44:34 +0000
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2012-10-15 09:44:34 +0000
commitdff377a741ec87f8737002cf112ae12655881777 (patch)
tree24fec645259014dc1e60f393d5d39c2b36aa603c /src/lib/openjp3d
parentb24cf8d1574c00915c568314d3e0e011ca77ba89 (diff)
[trunk] Fix compilation:
- using mingw32 compiler (missing exported symbols) - using -fvisibility=hidden (gcc on UNIX)
Diffstat (limited to 'src/lib/openjp3d')
-rw-r--r--src/lib/openjp3d/CMakeLists.txt37
-rwxr-xr-xsrc/lib/openjp3d/openjp3d.c1
-rwxr-xr-xsrc/lib/openjp3d/openjp3d.h8
-rwxr-xr-xsrc/lib/openjp3d/volume.c2
4 files changed, 32 insertions, 16 deletions
diff --git a/src/lib/openjp3d/CMakeLists.txt b/src/lib/openjp3d/CMakeLists.txt
index 5f92d7aa..8f034ffe 100644
--- a/src/lib/openjp3d/CMakeLists.txt
+++ b/src/lib/openjp3d/CMakeLists.txt
@@ -1,37 +1,42 @@
+# openjp3d
+include_regular_expression("^.*$")
-INCLUDE_REGULAR_EXPRESSION("^.*$")
+include_directories(
+ ${OPENJPEG_BINARY_DIR}/src/lib/openjp2 # opj_config.h
+ )
SET(OPENJP3D_LIBRARY_NAME openjp3d)
# Defines the source code for the library
SET(OPENJP3D_SRCS
-bio.c cio.c dwt.c event.c jp3d.c jp3d_lib.c mct.c mqc.c openjp3d.c pi.c raw.c t1.c t1_3d.c t2.c tcd.c tgt.c volume.c
+bio.c cio.c dwt.c event.c jp3d.c jp3d_lib.c mct.c mqc.c openjp3d.c
+pi.c raw.c t1.c t1_3d.c t2.c tcd.c tgt.c volume.c
)
# Build the library
-IF(WIN32)
- IF(BUILD_SHARED_LIBS)
- ADD_DEFINITIONS(-DOPJ_EXPORTS)
- ELSE(BUILD_SHARED_LIBS)
- ADD_DEFINITIONS(-DOPJ_STATIC)
- ENDIF(BUILD_SHARED_LIBS)
-ENDIF(WIN32)
+if(WIN32)
+ if(BUILD_SHARED_LIBS)
+ add_definitions(-DOPJ_EXPORTS)
+ else()
+ add_definitions(-DOPJ_STATIC)
+ endif()
+endif()
# build jp3d lib:
-ADD_LIBRARY(${OPENJP3D_LIBRARY_NAME} ${OPENJP3D_SRCS})
-IF(UNIX)
- TARGET_LINK_LIBRARIES(${OPENJP3D_LIBRARY_NAME} m)
-ENDIF(UNIX)
-SET_TARGET_PROPERTIES(${OPENJP3D_LIBRARY_NAME} PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES})
+add_library(${OPENJP3D_LIBRARY_NAME} ${OPENJP3D_SRCS})
+if(UNIX)
+ target_link_libraries(${OPENJP3D_LIBRARY_NAME} m)
+endif()
+set_target_properties(${OPENJP3D_LIBRARY_NAME} PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES})
# Install library
-INSTALL(TARGETS ${OPENJP3D_LIBRARY_NAME}
+install(TARGETS ${OPENJP3D_LIBRARY_NAME}
EXPORT OpenJP3DTargets
DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}
COMPONENT Libraries
)
# Install includes files
-INSTALL(FILES openjp3d.h
+install(FILES openjp3d.h
DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}
COMPONENT Headers
)
diff --git a/src/lib/openjp3d/openjp3d.c b/src/lib/openjp3d/openjp3d.c
index ab2744e1..c1f3c44f 100755
--- a/src/lib/openjp3d/openjp3d.c
+++ b/src/lib/openjp3d/openjp3d.c
@@ -30,6 +30,7 @@
#endif /* _WIN32 */
#include "opj_includes.h"
+#include "openjp3d.h"
#define JP3D_VERSION "1.3.0"
/* ---------------------------------------------------------------------- */
#ifdef _WIN32
diff --git a/src/lib/openjp3d/openjp3d.h b/src/lib/openjp3d/openjp3d.h
index e6829d91..d7ac42da 100755
--- a/src/lib/openjp3d/openjp3d.h
+++ b/src/lib/openjp3d/openjp3d.h
@@ -38,10 +38,18 @@
*/
#if defined(OPJ_STATIC) || !defined(_WIN32)
+/* http://gcc.gnu.org/wiki/Visibility */
+#if __GNUC__ >= 4
+#define OPJ_API __attribute__ ((visibility ("default")))
+#define OPJ_LOCAL __attribute__ ((visibility ("hidden")))
+#else
#define OPJ_API
+#define OPJ_LOCAL
+#endif
#define OPJ_CALLCONV
#else
#define OPJ_CALLCONV __stdcall
+
/*
The following ifdef block is the standard way of creating macros which make exporting
from a DLL simpler. All files within this DLL are compiled with the OPJ_EXPORTS
diff --git a/src/lib/openjp3d/volume.c b/src/lib/openjp3d/volume.c
index 5b9f1808..065a7a34 100755
--- a/src/lib/openjp3d/volume.c
+++ b/src/lib/openjp3d/volume.c
@@ -25,6 +25,8 @@
*/
#include "opj_includes.h"
+#include "volume.h"
+#include "openjp3d.h"
opj_volume_t* OPJ_CALLCONV opj_volume_create(int numcmpts, opj_volume_cmptparm_t *cmptparms, OPJ_COLOR_SPACE clrspc) {
int compno;