X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2Fjpeg%2FCMakeLists.txt;h=54a5a37033ff9b6730d225871a8760c357dc2d9b;hb=c4220b95e9d5e902a7468e408435bf6dea4950eb;hp=c4816501d8be33744cd79f4c9344f2249ee7ce16;hpb=532e2ee2beaace36c3e8fb62d185b79c5c8f6e96;p=gdcm.git diff --git a/src/jpeg/CMakeLists.txt b/src/jpeg/CMakeLists.txt index c4816501..54a5a370 100644 --- a/src/jpeg/CMakeLists.txt +++ b/src/jpeg/CMakeLists.txt @@ -1,5 +1,162 @@ SUBDIRS( + libijg16 libijg12 libijg8 ljpg ) + +# 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)