]> Creatis software - gdcm.git/blob - src/jpeg/CMakeLists.txt
ENH: * Finished lossless transition, not only do we now read all lossless jpeg
[gdcm.git] / src / jpeg / CMakeLists.txt
1 SUBDIRS(
2   libijg16 
3   libijg12 
4   libijg8
5 )
6
7 # memmgr back ends: compile only one of these into a working library
8 # (For now, let's use the mode that requires the image fit into memory.
9 # This is the recommended mode for Win32 anyway.)
10 SET(systemdependent_SRCS jmemnobs.c)
11
12 # library object files common to compression and decompression
13 SET(common_SRCS
14 jcomapi.c jutils.c jerror.c jmemmgr.c
15 )
16
17 # compression library object files
18 SET(compression_SRCS
19 jcapimin.c jcapistd.c jctrans.c jcparam.c jdatadst.c jcinit.c
20 jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
21 jcsample.c jchuff.c jcphuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
22 )
23
24 # Lossy (DCT) codec:
25 SET(comp_lossy_SRCS
26 jfdctint.c
27 jclossy.c
28
29 # lossless
30 jclossls.c
31
32 jdarith.c
33 jcodec.c
34 jcscale.c
35 jcshuff.c
36 jclhuff.c
37 jcpred.c
38 jcdiffct.c
39 )
40
41 # decompression library object files
42 SET(decompression_SRCS
43 jdapimin.c jdapistd.c jdtrans.c jdatasrc.c jdmaster.c
44 jdinput.c jdmarker.c jdhuff.c jdphuff.c jdmainct.c jdcoefct.c
45 jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c jidctred.c
46 jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c)
47
48 SET(decomp_lossy_SRCS
49  jdlossls.c jdlossy.c
50 jcarith.c
51 jdlhuff.c
52 jddiffct.c
53 jdpred.c
54 jdscale.c
55 jdshuff.c
56 )
57
58 SET(JPEG_HEADER_FILES
59   jchuff.h  
60   jdct.h  
61   jdhuff.h  
62   jerror.h  
63   jinclude.h  
64   jmemsys.h  
65 #  jmorecfg.h     #no this one need to be configured
66   jpegint.h  
67   jpeglib.h  
68   jversion.h
69 jlossy.h
70 jlossls.h
71   )
72
73 SET(JPEG_SOURCES
74   ${systemdependent_SRCS}
75   ${common_SRCS}
76   ${compression_SRCS}
77   ${decompression_SRCS}
78
79 ${comp_lossy_SRCS}
80 ${decomp_lossy_SRCS}
81   )
82
83 IF (WIN32)
84   IF (BUILD_SHARED_LIBS)
85     ADD_DEFINITIONS(-DJPEGDLL)
86   ELSE (BUILD_SHARED_LIBS)
87     ADD_DEFINITIONS(-DJPEGSTATIC)
88   ENDIF (BUILD_SHARED_LIBS)
89 ENDIF (WIN32)
90
91 # Attempt to generate two libraries: jpeg 8bits and 12 bits using only one
92 # source directory
93
94 SET(JPEG8_SOURCES)
95 SET(JPEG12_SOURCES)
96 SET(JPEG16_SOURCES)
97 FOREACH(file ${JPEG_SOURCES})
98   # Duplicate jpeg source in subdir libijg8
99   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
100     "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
101     )
102   SET(JPEG8_SOURCES ${JPEG8_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}")
103
104   # Duplicate jpeg source in subdir libijg12
105   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
106     "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
107     )
108   SET(JPEG12_SOURCES ${JPEG12_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}")
109
110   # Duplicate jpeg source in subdir libijg16
111   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
112     "${CMAKE_CURRENT_BINARY_DIR}/libijg16/${file}"
113     )
114   SET(JPEG16_SOURCES ${JPEG16_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg16/${file}")
115
116 ENDFOREACH(file)
117
118 # Now copy the header files
119 FOREACH(file ${JPEG_HEADER_FILES})
120   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
121     "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
122     )
123   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
124     "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
125     )
126   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
127     "${CMAKE_CURRENT_BINARY_DIR}/libijg16/${file}"
128     )
129 ENDFOREACH(file)
130
131 # Particular case jmorecfg.h needs to be specified either 8, 12 or 16 bits:
132 SET(GDCM_BITS_IN_JSAMPLE 8)
133 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
134                ${CMAKE_CURRENT_BINARY_DIR}/libijg8/jmorecfg.h @ONLY IMMEDIATE)
135 SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_8bits.h)
136 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
137                ${CMAKE_CURRENT_BINARY_DIR}/libijg8/jconfig.h @ONLY IMMEDIATE)
138 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_8bits.h
139                ${CMAKE_CURRENT_BINARY_DIR}/libijg8/gdcm_mangle_8bits.h @ONLY IMMEDIATE)
140
141
142
143 SET(GDCM_BITS_IN_JSAMPLE 12)
144 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
145                ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jmorecfg.h @ONLY IMMEDIATE)
146 SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_12bits.h)
147 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
148                ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jconfig.h @ONLY IMMEDIATE)
149 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_12bits.h
150                ${CMAKE_CURRENT_BINARY_DIR}/libijg12/gdcm_mangle_12bits.h @ONLY IMMEDIATE)
151
152
153
154 SET(GDCM_BITS_IN_JSAMPLE 16)
155 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
156                ${CMAKE_CURRENT_BINARY_DIR}/libijg16/jmorecfg.h @ONLY IMMEDIATE)
157 SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_16bits.h)
158 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
159                ${CMAKE_CURRENT_BINARY_DIR}/libijg16/jconfig.h @ONLY IMMEDIATE)
160 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_16bits.h
161                ${CMAKE_CURRENT_BINARY_DIR}/libijg16/gdcm_mangle_16bits.h @ONLY IMMEDIATE)