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