]> Creatis software - gdcm.git/blobdiff - src/jpeg/CMakeLists.txt
ENH: * Finished lossless transition, not only do we now read all lossless jpeg
[gdcm.git] / src / jpeg / CMakeLists.txt
index 1b39bd5322de4a2c28d1659f60f1efe52bd1fba4..605b7b713beeab9c82418c7d3fdda75092cac52a 100644 (file)
@@ -1,4 +1,161 @@
-SUBDIRS(\r
-  libijg12 \r
-  libijg8\r
-)\r
+SUBDIRS(
+  libijg16 
+  libijg12 
+  libijg8
+)
+
+# memmgr back ends: compile only one of these into a working library
+# (For now, let's use the mode that requires the image fit into memory.
+# This is the recommended mode for Win32 anyway.)
+SET(systemdependent_SRCS jmemnobs.c)
+
+# library object files common to compression and decompression
+SET(common_SRCS
+jcomapi.c jutils.c jerror.c jmemmgr.c
+)
+
+# compression library object files
+SET(compression_SRCS
+jcapimin.c jcapistd.c jctrans.c jcparam.c jdatadst.c jcinit.c
+jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
+jcsample.c jchuff.c jcphuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
+)
+
+# Lossy (DCT) codec:
+SET(comp_lossy_SRCS
+jfdctint.c
+jclossy.c
+
+# lossless
+jclossls.c
+
+jdarith.c
+jcodec.c
+jcscale.c
+jcshuff.c
+jclhuff.c
+jcpred.c
+jcdiffct.c
+)
+
+# decompression library object files
+SET(decompression_SRCS
+jdapimin.c jdapistd.c jdtrans.c jdatasrc.c jdmaster.c
+jdinput.c jdmarker.c jdhuff.c jdphuff.c jdmainct.c jdcoefct.c
+jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c jidctred.c
+jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c)
+
+SET(decomp_lossy_SRCS
+ jdlossls.c jdlossy.c
+jcarith.c
+jdlhuff.c
+jddiffct.c
+jdpred.c
+jdscale.c
+jdshuff.c
+)
+
+SET(JPEG_HEADER_FILES
+  jchuff.h  
+  jdct.h  
+  jdhuff.h  
+  jerror.h  
+  jinclude.h  
+  jmemsys.h  
+#  jmorecfg.h     #no this one need to be configured
+  jpegint.h  
+  jpeglib.h  
+  jversion.h
+jlossy.h
+jlossls.h
+  )
+
+SET(JPEG_SOURCES
+  ${systemdependent_SRCS}
+  ${common_SRCS}
+  ${compression_SRCS}
+  ${decompression_SRCS}
+
+${comp_lossy_SRCS}
+${decomp_lossy_SRCS}
+  )
+
+IF (WIN32)
+  IF (BUILD_SHARED_LIBS)
+    ADD_DEFINITIONS(-DJPEGDLL)
+  ELSE (BUILD_SHARED_LIBS)
+    ADD_DEFINITIONS(-DJPEGSTATIC)
+  ENDIF (BUILD_SHARED_LIBS)
+ENDIF (WIN32)
+
+# Attempt to generate two libraries: jpeg 8bits and 12 bits using only one
+# source directory
+
+SET(JPEG8_SOURCES)
+SET(JPEG12_SOURCES)
+SET(JPEG16_SOURCES)
+FOREACH(file ${JPEG_SOURCES})
+  # Duplicate jpeg source in subdir libijg8
+  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
+    "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
+    )
+  SET(JPEG8_SOURCES ${JPEG8_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}")
+
+  # Duplicate jpeg source in subdir libijg12
+  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
+    "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
+    )
+  SET(JPEG12_SOURCES ${JPEG12_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}")
+
+  # Duplicate jpeg source in subdir libijg16
+  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
+    "${CMAKE_CURRENT_BINARY_DIR}/libijg16/${file}"
+    )
+  SET(JPEG16_SOURCES ${JPEG16_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg16/${file}")
+
+ENDFOREACH(file)
+
+# Now copy the header files
+FOREACH(file ${JPEG_HEADER_FILES})
+  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
+    "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
+    )
+  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
+    "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
+    )
+  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
+    "${CMAKE_CURRENT_BINARY_DIR}/libijg16/${file}"
+    )
+ENDFOREACH(file)
+
+# Particular case jmorecfg.h needs to be specified either 8, 12 or 16 bits:
+SET(GDCM_BITS_IN_JSAMPLE 8)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg8/jmorecfg.h @ONLY IMMEDIATE)
+SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_8bits.h)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg8/jconfig.h @ONLY IMMEDIATE)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_8bits.h
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg8/gdcm_mangle_8bits.h @ONLY IMMEDIATE)
+
+
+
+SET(GDCM_BITS_IN_JSAMPLE 12)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jmorecfg.h @ONLY IMMEDIATE)
+SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_12bits.h)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jconfig.h @ONLY IMMEDIATE)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_12bits.h
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg12/gdcm_mangle_12bits.h @ONLY IMMEDIATE)
+
+
+
+SET(GDCM_BITS_IN_JSAMPLE 16)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg16/jmorecfg.h @ONLY IMMEDIATE)
+SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_16bits.h)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg16/jconfig.h @ONLY IMMEDIATE)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_16bits.h
+               ${CMAKE_CURRENT_BINARY_DIR}/libijg16/gdcm_mangle_16bits.h @ONLY IMMEDIATE)