enable all progression orders
[openjpeg.git] / libopenjpeg / CMakeLists.txt
index b843a65f983d959c472d2835c5168e9293e0bf77..24ecf4091053e8d04c243858efc251f41eb65f4c 100644 (file)
@@ -1,57 +1,65 @@
 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)