]> Creatis software - gdcm.git/blob - src/jpeg/CMakeLists.txt
ENH: Allow compilation with a not so famous compiler (gdcmDocument.cxx). Also put...
[gdcm.git] / src / jpeg / CMakeLists.txt
1 SUBDIRS(
2   libijg12 
3   libijg8
4   ljpg
5 )
6
7 # JPEG 8 bits project
8
9 #PROJECT(GDCMJPEG)
10 #INCLUDE_REGULAR_EXPRESSION("^(jchuff|jconfig|jdct|jdhuff|jerror|jinclude|jmemsys|jmorecfg|jpegint|jpeglib|jversion|jpeg|gdcm).*$")
11 #INCLUDE_DIRECTORIES(${GDCMJPEG_SOURCE_DIR})
12
13
14 # memmgr back ends: compile only one of these into a working library
15 # (For now, let's use the mode that requires the image fit into memory.
16 # This is the recommended mode for Win32 anyway.)
17 SET(systemdependent_SRCS jmemnobs.c)
18
19 # library object files common to compression and decompression
20 SET(common_SRCS
21 jcomapi.c jutils.c jerror.c jmemmgr.c
22 )
23
24 # compression library object files
25 SET(compression_SRCS
26 jcapimin.c jcapistd.c jctrans.c jcparam.c jdatadst.c jcinit.c
27 jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
28 jcsample.c jchuff.c jcphuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
29 jfdctint.c
30 )
31
32 # decompression library object files
33 SET(decompression_SRCS
34 jdapimin.c jdapistd.c jdtrans.c jdatasrc.c jdmaster.c
35 jdinput.c jdmarker.c jdhuff.c jdphuff.c jdmainct.c jdcoefct.c
36 jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c jidctred.c
37 jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c
38 )
39
40 SET(JPEG_HEADER_FILES
41   jchuff.h  
42   jdct.h  
43   jdhuff.h  
44   jerror.h  
45   jinclude.h  
46   jmemsys.h  
47 #  jmorecfg.h     #no this one need to be configured
48   jpegint.h  
49   jpeglib.h  
50   jversion.h
51   )
52
53 SET(JPEG_SOURCES
54   ${systemdependent_SRCS}
55   ${common_SRCS}
56   ${compression_SRCS}
57   ${decompression_SRCS}
58   )
59
60 IF (WIN32)
61   IF (BUILD_SHARED_LIBS)
62     ADD_DEFINITIONS(-DJPEGDLL)
63   ELSE (BUILD_SHARED_LIBS)
64     ADD_DEFINITIONS(-DJPEGSTATIC)
65   ENDIF (BUILD_SHARED_LIBS)
66 ENDIF (WIN32)
67
68 # Attempt to generate two libraries: jpeg 8bits and 12 bits using only one
69 # source directory
70
71 SET(JPEG8_SOURCES)
72 SET(JPEG12_SOURCES)
73 #  MESSAGE("WOOOO")
74 FOREACH(file ${JPEG_SOURCES})
75   # Duplicate jpeg source in subdir libijg8
76   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
77     "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
78     )
79   SET(JPEG8_SOURCES ${JPEG8_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}")
80
81   SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_8bits.h)
82   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
83                  ${CMAKE_CURRENT_BINARY_DIR}/libijg8/jconfig.h @ONLY IMMEDIATE)
84   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_8bits.h
85                  ${CMAKE_CURRENT_BINARY_DIR}/libijg8/gdcm_mangle_8bits.h @ONLY IMMEDIATE)
86
87   #MESSAGE("${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}")
88   # Duplicate jpeg source in subdir libijg12
89   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
90     "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
91     )
92   SET(JPEG12_SOURCES ${JPEG12_SOURCES} "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}")
93
94   SET(BITS_TYPE_JPEG_MANGLE_NAME gdcm_mangle_12bits.h)
95   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jconfig.h.in
96                  ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jconfig.h @ONLY IMMEDIATE)
97   CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/gdcm_mangle_12bits.h
98                  ${CMAKE_CURRENT_BINARY_DIR}/libijg12/gdcm_mangle_12bits.h @ONLY IMMEDIATE)
99 ENDFOREACH(file)
100
101 # Now copy the header file
102 FOREACH(file ${JPEG_HEADER_FILES})
103   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
104     "${CMAKE_CURRENT_BINARY_DIR}/libijg8/${file}"
105     )
106   CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libijg/${file}"
107     "${CMAKE_CURRENT_BINARY_DIR}/libijg12/${file}"
108     )
109 ENDFOREACH(file)
110 # Particular case jmorecfg.h needs to be specified either 8 or 12 bits:
111 SET(GDCM_BITS_IN_JSAMPLE 8)
112 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
113                ${CMAKE_CURRENT_BINARY_DIR}/libijg8/jmorecfg.h @ONLY IMMEDIATE)
114 SET(GDCM_BITS_IN_JSAMPLE 12)
115 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libijg/jmorecfg.h
116                ${CMAKE_CURRENT_BINARY_DIR}/libijg12/jmorecfg.h @ONLY IMMEDIATE)
117
118 #  MESSAGE("${JPEG8_SOURCES}")
119
120 #ADD_LIBRARY(gdcmijpeg8 ${systemdependent_SRCS} ${common_SRCS} ${compression_SRCS} ${decompression_SRCS})
121 #ADD_LIBRARY(gdcmijpeg8 ${JPEG8_SOURCES})
122 #ADD_LIBRARY(gdcmijpeg12 ${JPEG12_SOURCES})
123
124 #INSTALL_TARGETS(/lib/ gdcmijpeg8)
125 #INSTALL_TARGETS(/lib/ gdcmijpeg12)
126 #INSTALL_FILES(/include .h jconfig.linux jconfig.vc)