INCLUDE_REGULAR_EXPRESSION("^.*$")
# Defines the source code for the library
-SET(OpenJPEG_SRCS
- bio.c
- cio.c
- dwt.c
- event.c
- fix.c
- image.c
- int.c
- j2k.c
- j2k_lib.c
- jp2.c
- jpt.c
- mct.c
- mqc.c
- openjpeg.c
- pi.c
- raw.c
- t1.c
- t2.c
- tcd.c
- tgt.c
+SET(OPENJPEG_SRCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/bio.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/cio.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/dwt.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/event.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/image.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/j2k.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/j2k_lib.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/jp2.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/jpt.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/mct.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/mqc.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/pi.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/raw.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/t1.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/t2.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/tcd.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/tgt.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/cidx_manager.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/phix_manager.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ppix_manager.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/thix_manager.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/tpix_manager.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/function_list.c
)
-# Prepare the .def file (Module definition)
-# depending on wether we are:
-# 1. Building a dll (shared lib)
-# 2. Wether we are using cl or bcc32 (underscore convention)
-IF(WIN32 AND BUILD_SHARED_LIBS)
- SET(UNDERSCORE)
- # Borland expect symbol to start with _
- IF(BORLAND)
- SET(UNDERSCORE "_")
- ENDIF(BORLAND)
- # Borland will by default use a .def file if present in
- # the binary directory
- CONFIGURE_FILE(
- ${OPENJPEG_SOURCE_DIR}/libopenjpeg/openjpeg.def.in
- ${OPENJPEG_BINARY_DIR}/libopenjpeg/openjpeg.def
- @ONLY IMMEDIATE
- )
- # You can directly pass a .def file to cl this is
- # recognized
- IF(NOT BORLAND)
- SET(OpenJPEG_SRCS ${OpenJPEG_SRCS}
- ${OPENJPEG_BINARY_DIR}/libopenjpeg/openjpeg.def
- )
- ENDIF(NOT BORLAND)
-ENDIF(WIN32 AND BUILD_SHARED_LIBS)
+# 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)
+ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME} ${OPENJPEG_SRCS})
+IF(UNIX)
+ TARGET_LINK_LIBRARIES(${OPENJPEG_LIBRARY_NAME} m)
+ENDIF(UNIX)
+SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME} PROPERTIES ${OPENJPEG_LIBRARY_PROPERTIES})
-# Create the library
-ADD_LIBRARY(${OPJ_PREFIX}openjpeg ${OpenJPEG_SRCS})
+# Build the JPWL library ?
+IF(BUILD_JPWL)
+ ADD_SUBDIRECTORY(jpwl)
+ENDIF(BUILD_JPWL)
# Install library
-INSTALL_TARGETS(/lib/ ${OPJ_PREFIX}openjpeg)
+INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}
+ EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
+)
+
+# Install includes files
+INSTALL(FILES openjpeg.h
+ DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers
+)
+INSTALL(CODE
+ "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${OPENJPEG_INSTALL_SUBDIR}/openjpeg.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg.h)")
+# install man page of the library
+INSTALL(
+ FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjpeg.3
+ DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man3)