]> Creatis software - gdcm.git/blob - src/jpeg/CMakeLists.txt
ENH: Doh! I made a mistake when commiting only one single file, what should you expec...
[gdcm.git] / src / jpeg / CMakeLists.txt
1 SUBDIRS(
2   libijg12 
3   libijg8
4   ljpg
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 FOREACH(file ${JPEG_SOURCES})
97   # Duplicate jpeg source in subdir libijg8
98   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
99     "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
100     )
101   SET(JPEG8_SOURCES ${JPEG8_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}")
102
103   SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_8bits.h)
104   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
105                  ${CMAKE_CURRENT_BINARY_DIR}/libijg8/jconfig.h @ONLY IMMEDIATE)
106   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_8bits.h
107                  ${CMAKE_CURRENT_BINARY_DIR}/libijg8/gdcm_mangle_8bits.h @ONLY IMMEDIATE)
108
109   # Duplicate jpeg source in subdir libijg12
110   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
111     "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
112     )
113   SET(JPEG12_SOURCES ${JPEG12_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}")
114
115   SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_12bits.h)
116   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
117                  ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jconfig.h @ONLY IMMEDIATE)
118   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_12bits.h
119                  ${CMAKE_CURRENT_BINARY_DIR}/libijg12/gdcm_mangle_12bits.h @ONLY IMMEDIATE)
120 ENDFOREACH(file)
121
122 # Now copy the header file
123 FOREACH(file ${JPEG_HEADER_FILES})
124   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
125     "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
126     )
127   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
128     "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
129     )
130 ENDFOREACH(file)
131 # Particular case jmorecfg.h needs to be specified either 8 or 12 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
136 SET(GDCM_BITS_IN_JSAMPLE 12)
137 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
138                ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jmorecfg.h @ONLY IMMEDIATE)
139