jp2: convert: fix null pointer dereference
[openjpeg.git] / src / bin / jp2 / CMakeLists.txt
index 5e77765e98cf38a8b76d6da81bd46f02b84d47b6..4d4bd952fb6cf956e6390dbffb0e94f8e72ae3d8 100644 (file)
@@ -3,16 +3,31 @@
 # First thing define the common source:
 set(common_SRCS
   convert.c
+  convert.h
+  convertbmp.c
   index.c
+  index.h
   ${OPENJPEG_SOURCE_DIR}/src/bin/common/color.c
+  ${OPENJPEG_SOURCE_DIR}/src/bin/common/color.h
   ${OPENJPEG_SOURCE_DIR}/src/bin/common/opj_getopt.c
+  ${OPENJPEG_SOURCE_DIR}/src/bin/common/opj_getopt.h
+  ${OPENJPEG_SOURCE_DIR}/src/bin/common/opj_string.h
   )
 
+if(OPJ_HAVE_LIBTIFF)
+       list(APPEND common_SRCS converttif.c)
+endif()
+if(OPJ_HAVE_LIBPNG)
+       list(APPEND common_SRCS convertpng.c)
+endif()
+
 # Headers file are located here:
 include_directories(
+  ${OPENJPEG_BINARY_DIR}/src/lib/openjp2 # opj_config.h
+  ${OPENJPEG_BINARY_DIR}/src/bin/common # opj_apps_config.h
   ${OPENJPEG_SOURCE_DIR}/src/lib/openjp2
-  ${LCMS_INCLUDE_DIRNAME}
   ${OPENJPEG_SOURCE_DIR}/src/bin/common
+  ${LCMS_INCLUDE_DIRNAME}
   ${Z_INCLUDE_DIRNAME}
   ${PNG_INCLUDE_DIRNAME}
   ${TIFF_INCLUDE_DIRNAME}
@@ -27,87 +42,47 @@ if(WIN32)
 endif()
 
 # Loop over all executables:
-foreach(exe j2k_to_image image_to_j2k j2k_dump)
+foreach(exe opj_decompress opj_compress opj_dump)
   add_executable(${exe} ${exe}.c ${common_SRCS})
+  if(NOT ${CMAKE_VERSION} VERSION_LESS "2.8.12")
+    target_compile_options(${exe} PRIVATE ${OPENJP2_COMPILE_OPTIONS})
+  endif()
   target_link_libraries(${exe} ${OPENJPEG_LIBRARY_NAME}
     ${PNG_LIBNAME} ${TIFF_LIBNAME} ${LCMS_LIBNAME}
     )
   # To support universal exe:
   if(ZLIB_FOUND AND APPLE)
     target_link_libraries(${exe} z)
-  ELSe(ZLIB_FOUND AND APPLE)
+  else(ZLIB_FOUND AND APPLE)
     target_link_libraries(${exe} ${Z_LIBNAME})
   endif()
 
   # On unix you need to link to the math library:
   if(UNIX)
     target_link_libraries(${exe} m)
+    IF("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
+      target_link_libraries(${exe} rt)
+    endif()
   endif()
   # Install exe
   install(TARGETS ${exe}
     EXPORT OpenJPEGTargets
     DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
   )
+  if(OPJ_USE_DSYMUTIL)
+    add_custom_command(TARGET ${exe} POST_BUILD
+    COMMAND "dsymutil" "$<TARGET_FILE:${exe}>"
+    COMMENT "dsymutil $<TARGET_FILE:${exe}>"
+    DEPENDS ${exe})
+  endif()
 endforeach()
 
+if(BUILD_DOC)
 # Install man pages
 install(
-  FILES       ${OPENJPEG_SOURCE_DIR}/doc/man/man1/image_to_j2k.1
-              ${OPENJPEG_SOURCE_DIR}/doc/man/man1/j2k_dump.1
-              ${OPENJPEG_SOURCE_DIR}/doc/man/man1/j2k_to_image.1
+  FILES       ${OPENJPEG_SOURCE_DIR}/doc/man/man1/opj_compress.1
+              ${OPENJPEG_SOURCE_DIR}/doc/man/man1/opj_decompress.1
+              ${OPENJPEG_SOURCE_DIR}/doc/man/man1/opj_dump.1
   DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man1)
 #
-
-if(BUILD_JPWL)
-  add_executable(JPWL_j2k_to_image
-  j2k_to_image.c
-  ${common_SRCS}
-  )
-
-  set_property(
-     TARGET JPWL_j2k_to_image
-     APPEND PROPERTY COMPILE_DEFINITIONS USE_JPWL
-  )
-
-  target_link_libraries(JPWL_j2k_to_image ${OPENJPEG_LIBRARY_NAME}_JPWL
-    ${LCMS_LIBNAME} ${PNG_LIBNAME} ${TIFF_LIBNAME})
-
-  # To support universal exe:
-  if(ZLIB_FOUND AND APPLE)
-    target_link_libraries(JPWL_j2k_to_image z)
-  ELSe(ZLIB_FOUND AND APPLE)
-    target_link_libraries(JPWL_j2k_to_image ${Z_LIBNAME})
-  endif()
-
-  if(UNIX)
-    target_link_libraries(JPWL_j2k_to_image m)
-  endif()
-
-  add_executable(JPWL_image_to_j2k
-  image_to_j2k.c
-  ${common_SRCS}
-  )
-
-  set_property(
-     TARGET JPWL_image_to_j2k
-     APPEND PROPERTY COMPILE_DEFINITIONS USE_JPWL
-  )
-
-  target_link_libraries(JPWL_image_to_j2k ${OPENJPEG_LIBRARY_NAME}_JPWL
-       ${LCMS_LIBNAME} ${PNG_LIBNAME} ${TIFF_LIBNAME})
-       
-  # To support universal exe:
-  if(ZLIB_FOUND AND APPLE)
-    target_link_libraries(JPWL_image_to_j2k z)
-  ELSe(ZLIB_FOUND AND APPLE)
-    target_link_libraries(JPWL_image_to_j2k ${Z_LIBNAME})
-  endif()
-
-  if(UNIX)
-    target_link_libraries(JPWL_image_to_j2k m)
-  endif()
-
-  install(TARGETS JPWL_image_to_j2k JPWL_j2k_to_image
-    DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
-  )
 endif()