blob: 2b690e92f01be0c88b7c94ab48e70a2e5181d5ee [file] [log] [blame]
DRC84697032010-10-15 03:43:24 +00001#
2# Setup
3#
4
5cmake_minimum_required(VERSION 2.6)
6
7project(libjpeg-turbo)
DRC0caa0b42011-02-06 16:11:41 +00008set(VERSION 1.1.90)
DRC84697032010-10-15 03:43:24 +00009
DRC378da4d2010-10-15 19:11:11 +000010if(MINGW OR CYGWIN)
DRC84697032010-10-15 03:43:24 +000011 execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE BUILD)
12 string(REGEX REPLACE "\n" "" BUILD ${BUILD})
13elseif(WIN32)
14 execute_process(COMMAND "${CMAKE_SOURCE_DIR}/cmakescripts/getdate.bat"
15 OUTPUT_VARIABLE BUILD)
16 string(REGEX REPLACE "\n" "" BUILD ${BUILD})
17else()
DRC378da4d2010-10-15 19:11:11 +000018 message(FATAL_ERROR "Platform not supported by this build system. Use autotools instead.")
DRC84697032010-10-15 03:43:24 +000019endif()
20
21if(NOT CMAKE_BUILD_TYPE)
22 set(CMAKE_BUILD_TYPE Release)
23endif()
24
25message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
26
27# This only works if building from the command line. There is currently no way
28# to set a variable's value based on the build type when using the MSVC IDE.
29if(CMAKE_BUILD_TYPE STREQUAL "Debug")
30 set(BUILD "${BUILD}d")
31endif()
32
DRCeb2b9d62010-10-15 04:55:13 +000033message(STATUS "VERSION = ${VERSION}, BUILD = ${BUILD}")
34
DRC84697032010-10-15 03:43:24 +000035if(NOT DEFINED WITH_SIMD)
36 set(WITH_SIMD 1)
37endif()
38
DRC245cfdf2010-11-23 17:11:06 +000039if(NOT DEFINED WITH_ARITH_ENC)
40 set(WITH_ARITH_ENC 1)
41endif()
42
43if(NOT DEFINED WITH_ARITH_DEC)
44 set(WITH_ARITH_DEC 1)
45endif()
46
47if(WITH_ARITH_ENC)
48 set(C_ARITH_CODING_SUPPORTED 1)
DRC990e28d2011-01-04 21:40:11 +000049 message(STATUS "Arithmetic encoding support enabled")
DRC245cfdf2010-11-23 17:11:06 +000050else()
DRC990e28d2011-01-04 21:40:11 +000051 message(STATUS "Arithmetic encoding support disabled")
DRC245cfdf2010-11-23 17:11:06 +000052endif()
53
54if(WITH_ARITH_DEC)
55 set(D_ARITH_CODING_SUPPORTED 1)
DRC990e28d2011-01-04 21:40:11 +000056 message(STATUS "Arithmetic decoding support enabled")
DRC245cfdf2010-11-23 17:11:06 +000057else()
DRC990e28d2011-01-04 21:40:11 +000058 message(STATUS "Arithmetic decoding support disabled")
DRC245cfdf2010-11-23 17:11:06 +000059endif()
60
DRC218c0c12011-02-05 06:01:18 +000061if(NOT DEFINED WITH_JNI)
62 set(WITH_JNI 0)
63endif()
64
65if(WITH_JNI)
66 message(STATUS "TurboJPEG/OSS JNI wrapper enabled")
67else()
68 message(STATUS "TurboJPEG/OSS JNI wrapper disabled")
69endif()
70
DRC84697032010-10-15 03:43:24 +000071set(JPEG_LIB_VERSION 62)
72set(DLL_VERSION ${JPEG_LIB_VERSION})
DRCa9d5b252010-10-15 06:42:45 +000073set(FULLVERSION ${DLL_VERSION}.0.0)
DRC84697032010-10-15 03:43:24 +000074if(WITH_JPEG8)
75 set(JPEG_LIB_VERSION 80)
76 set(DLL_VERSION 8)
DRCa9d5b252010-10-15 06:42:45 +000077 set(FULLVERSION ${DLL_VERSION}.0.2)
DRC84697032010-10-15 03:43:24 +000078 message(STATUS "Emulating libjpeg v8b API/ABI")
79elseif(WITH_JPEG7)
80 set(JPEG_LIB_VERSION 70)
81 set(DLL_VERSION 7)
DRCa9d5b252010-10-15 06:42:45 +000082 set(FULLVERSION ${DLL_VERSION}.0.0)
DRC84697032010-10-15 03:43:24 +000083 message(STATUS "Emulating libjpeg v7 API/ABI")
84endif(WITH_JPEG8)
85
86if(MSVC)
87 # Use the static C library for all build types
88 foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
89 CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
90 CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
91 CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
92 if(${var} MATCHES "/MD")
93 string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
94 endif()
95 endforeach()
96
97 add_definitions(-W3 -wd4996)
98endif()
99
100# Detect whether compiler is 64-bit
101if(MSVC AND CMAKE_CL_64)
102 set(SIMD_X86_64 1)
103 set(64BIT 1)
104elseif(CMAKE_SIZEOF_VOID_P MATCHES 8)
105 set(SIMD_X86_64 1)
106 set(64BIT 1)
107endif()
108
109if(64BIT)
110 message(STATUS "64-bit build")
111else()
112 message(STATUS "32-bit build")
113endif()
114
115configure_file(win/jconfig.h.in jconfig.h)
116configure_file(win/config.h.in config.h)
117
118include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
119
DRC218c0c12011-02-05 06:01:18 +0000120if(WITH_JNI)
121 include(CheckIncludeFiles)
122 check_include_files(jni.h HAVE_JNI_H)
123 if(NOT HAVE_JNI_H)
124 message(FATAL_ERROR "Cannot find jni.h. Be sure to add the Java include directories to the INCLUDE environment variable (MSVC) or the CPATH environment variable (GCC).")
125 endif()
126endif()
127
DRC84697032010-10-15 03:43:24 +0000128
129#
130# Targets
131#
132
DRC245cfdf2010-11-23 17:11:06 +0000133set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c
134 jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c
135 jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c jdatasrc.c
136 jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c
137 jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c
138 jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c
139 jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c)
140
141if(WITH_ARITH_ENC OR WITH_ARITH_DEC)
142 set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c)
143endif()
144
145if(WITH_ARITH_ENC)
146 set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c)
147endif()
148
149if(WITH_ARITH_DEC)
150 set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c)
151endif()
DRC84697032010-10-15 03:43:24 +0000152
153if(WITH_SIMD)
154 add_definitions(-DWITH_SIMD)
155 add_subdirectory(simd)
156 if(SIMD_X86_64)
157 set(JPEG_SOURCES ${JPEG_SOURCES} simd/jsimd_x86_64.c)
158 else()
159 set(JPEG_SOURCES ${JPEG_SOURCES} simd/jsimd_i386.c)
160 endif()
161 # This tells CMake that the "source" files haven't been generated yet
162 set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
163else()
164 set(JPEG_SOURCES ${JPEG_SOURCES} jsimd_none.c)
DRC6f4ba612010-10-16 21:27:38 +0000165 message(STATUS "Not using SIMD acceleration")
DRC84697032010-10-15 03:43:24 +0000166endif()
167
168add_subdirectory(sharedlib)
169
170add_library(jpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS})
DRC84697032010-10-15 03:43:24 +0000171if(NOT MSVC)
172 set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg)
173endif()
174if(WITH_SIMD)
175 add_dependencies(jpeg-static simd)
176endif()
177
DRC218c0c12011-02-05 06:01:18 +0000178set(TURBOJPEG_SOURCES turbojpegl.c)
179if(WITH_JNI)
180 set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
181endif()
182
183add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
DRC84697032010-10-15 03:43:24 +0000184set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
DRC389c4722011-02-06 18:48:13 +0000185if(MINGW)
186 set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at)
187endif()
DRC84697032010-10-15 03:43:24 +0000188target_link_libraries(turbojpeg jpeg-static)
189set_target_properties(turbojpeg PROPERTIES LINK_INTERFACE_LIBRARIES "")
190
191add_library(turbojpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS}
192 turbojpegl.c)
DRC84697032010-10-15 03:43:24 +0000193if(NOT MSVC)
194 set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
195endif()
196if(WITH_SIMD)
197 add_dependencies(turbojpeg-static simd)
198endif()
199
200add_executable(jpegut jpegut.c)
201target_link_libraries(jpegut turbojpeg)
202
203add_executable(jpegut-static jpegut.c)
204target_link_libraries(jpegut-static turbojpeg-static)
205
206add_executable(jpgtest jpgtest.cxx bmp.c)
207target_link_libraries(jpgtest turbojpeg)
208
209add_executable(jpgtest-static jpgtest.cxx bmp.c)
210target_link_libraries(jpgtest-static turbojpeg-static)
211
212add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c rdswitch.c
213 rdtarga.c)
214set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS
215 "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED")
216target_link_libraries(cjpeg-static jpeg-static)
217
218add_executable(djpeg-static djpeg.c cdjpeg.c rdcolmap.c rdswitch.c wrbmp.c wrgif.c
219 wrppm.c wrtarga.c)
220set_property(TARGET djpeg-static PROPERTY COMPILE_FLAGS
221 "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED")
222target_link_libraries(djpeg-static jpeg-static)
223
224add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
225target_link_libraries(jpegtran-static jpeg-static)
226
227add_executable(rdjpgcom rdjpgcom.c)
228
229add_executable(wrjpgcom rdjpgcom.c)
230
231
232#
233# Tests
234#
235
236enable_testing()
237add_test(jpegut jpegut)
DRCfbb67472010-11-24 04:02:37 +0000238add_test(jpegut-yuv jpegut -yuv)
DRC84697032010-10-15 03:43:24 +0000239add_test(cjpeg-int sharedlib/cjpeg -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
DRCb42a48c2010-10-18 01:06:36 +0000240add_test(cjpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutint.jpg)
DRC84697032010-10-15 03:43:24 +0000241add_test(cjpeg-fast sharedlib/cjpeg -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
DRCb42a48c2010-10-18 01:06:36 +0000242add_test(cjpeg-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.jpg testoutfst.jpg)
DRC84697032010-10-15 03:43:24 +0000243add_test(cjpeg-float sharedlib/cjpeg -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
244if(WITH_SIMD)
DRCb42a48c2010-10-18 01:06:36 +0000245add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.jpg testoutflt.jpg)
DRC84697032010-10-15 03:43:24 +0000246else()
DRCb42a48c2010-10-18 01:06:36 +0000247add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt-nosimd.jpg testoutflt.jpg)
DRC84697032010-10-15 03:43:24 +0000248endif()
249add_test(djpeg-int sharedlib/djpeg -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000250add_test(djpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.ppm testoutint.ppm)
DRC84697032010-10-15 03:43:24 +0000251add_test(djpeg-fast sharedlib/djpeg -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000252add_test(djpeg-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.ppm testoutfst.ppm)
DRC84697032010-10-15 03:43:24 +0000253add_test(djpeg-float sharedlib/djpeg -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
254if(WITH_SIMD)
DRCb42a48c2010-10-18 01:06:36 +0000255add_test(djpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.ppm testoutflt.ppm)
DRC84697032010-10-15 03:43:24 +0000256else()
DRCb42a48c2010-10-18 01:06:36 +0000257add_test(djpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testorig.ppm testoutflt.ppm)
DRC84697032010-10-15 03:43:24 +0000258endif()
259add_test(djpeg-256 sharedlib/djpeg -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000260add_test(djpeg-256-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimg.bmp testout.bmp)
DRC84697032010-10-15 03:43:24 +0000261add_test(cjpeg-prog sharedlib/cjpeg -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
DRCb42a48c2010-10-18 01:06:36 +0000262add_test(cjpeg-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgp.jpg testoutp.jpg)
DRC84697032010-10-15 03:43:24 +0000263add_test(jpegtran-prog sharedlib/jpegtran -outfile testoutt.jpg testoutp.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000264add_test(jpegtran-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutt.jpg)
DRC245cfdf2010-11-23 17:11:06 +0000265if(WITH_ARITH_ENC)
DRC66f97e62010-11-23 05:49:54 +0000266add_test(cjpeg-ari sharedlib/cjpeg -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
267add_test(cjpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testoutari.jpg)
DRC245cfdf2010-11-23 17:11:06 +0000268add_test(jpegtran-toari sharedlib/jpegtran -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgint.jpg)
269add_test(jpegtran-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg)
270endif()
271if(WITH_ARITH_DEC)
DRC66f97e62010-11-23 05:49:54 +0000272add_test(djpeg-ari sharedlib/djpeg -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimgari.jpg)
273add_test(djpeg-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.ppm testoutari.ppm)
DRC245cfdf2010-11-23 17:11:06 +0000274add_test(jpegtran-fromari sharedlib/jpegtran -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgari.jpg)
DRC66f97e62010-11-23 05:49:54 +0000275add_test(jpegtran-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testouta.jpg)
DRC245cfdf2010-11-23 17:11:06 +0000276endif()
DRC84697032010-10-15 03:43:24 +0000277add_test(jpegtran-crop sharedlib/jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000278add_test(jpegtran-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgcrop.jpg testoutcrop.jpg)
DRC84697032010-10-15 03:43:24 +0000279
280add_test(jpegut-static jpegut-static)
DRCfbb67472010-11-24 04:02:37 +0000281add_test(jpegut-static-yuv jpegut-static -yuv)
DRC84697032010-10-15 03:43:24 +0000282add_test(cjpeg-static-int cjpeg-static -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
DRCb42a48c2010-10-18 01:06:36 +0000283add_test(cjpeg-static-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutint.jpg)
DRC84697032010-10-15 03:43:24 +0000284add_test(cjpeg-static-fast cjpeg-static -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
DRCb42a48c2010-10-18 01:06:36 +0000285add_test(cjpeg-static-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.jpg testoutfst.jpg)
DRC84697032010-10-15 03:43:24 +0000286add_test(cjpeg-static-float cjpeg-static -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
287if(WITH_SIMD)
DRCb42a48c2010-10-18 01:06:36 +0000288add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.jpg testoutflt.jpg)
DRC84697032010-10-15 03:43:24 +0000289else()
DRCb42a48c2010-10-18 01:06:36 +0000290add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt-nosimd.jpg testoutflt.jpg)
DRC84697032010-10-15 03:43:24 +0000291endif()
292add_test(djpeg-static-int djpeg-static -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000293add_test(djpeg-static-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.ppm testoutint.ppm)
DRC84697032010-10-15 03:43:24 +0000294add_test(djpeg-static-fast djpeg-static -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000295add_test(djpeg-static-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgfst.ppm testoutfst.ppm)
DRC84697032010-10-15 03:43:24 +0000296add_test(djpeg-static-float djpeg-static -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testorig.jpg)
297if(WITH_SIMD)
DRCb42a48c2010-10-18 01:06:36 +0000298add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgflt.ppm testoutflt.ppm)
DRC84697032010-10-15 03:43:24 +0000299else()
DRCb42a48c2010-10-18 01:06:36 +0000300add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testorig.ppm testoutflt.ppm)
DRC84697032010-10-15 03:43:24 +0000301endif()
302add_test(djpeg-static-256 djpeg-static -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000303add_test(djpeg-static-256-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimg.bmp testout.bmp)
DRC84697032010-10-15 03:43:24 +0000304add_test(cjpeg-static-prog cjpeg-static -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
DRCb42a48c2010-10-18 01:06:36 +0000305add_test(cjpeg-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgp.jpg testoutp.jpg)
DRC84697032010-10-15 03:43:24 +0000306add_test(jpegtran-static-prog jpegtran-static -outfile testoutt.jpg testoutp.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000307add_test(jpegtran-static-prog-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutt.jpg)
DRC245cfdf2010-11-23 17:11:06 +0000308if(WITH_ARITH_ENC)
DRC66f97e62010-11-23 05:49:54 +0000309add_test(cjpeg-static-ari cjpeg-static -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
310add_test(cjpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testoutari.jpg)
DRC245cfdf2010-11-23 17:11:06 +0000311add_test(jpegtran-static-toari jpegtran-static -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgint.jpg)
312add_test(jpegtran-static-toari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.jpg testouta.jpg)
313endif()
314if(WITH_ARITH_DEC)
DRC66f97e62010-11-23 05:49:54 +0000315add_test(djpeg-static-ari djpeg-static -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimgari.jpg)
316add_test(djpeg-static-ari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgari.ppm testoutari.ppm)
DRC245cfdf2010-11-23 17:11:06 +0000317add_test(jpegtran-static-fromari jpegtran-static -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimgari.jpg)
DRC66f97e62010-11-23 05:49:54 +0000318add_test(jpegtran-static-fromari-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testouta.jpg)
DRC245cfdf2010-11-23 17:11:06 +0000319endif()
DRC84697032010-10-15 03:43:24 +0000320add_test(jpegtran-static-crop jpegtran-static -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testorig.jpg)
DRCb42a48c2010-10-18 01:06:36 +0000321add_test(jpegtran-static-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgcrop.jpg testoutcrop.jpg)
DRC2c0a4e12010-10-16 08:51:43 +0000322
323
324#
325# Installer
326#
327
328set(INST_NAME ${CMAKE_PROJECT_NAME})
329
330if(MSVC)
331 set(INST_PLATFORM "Visual C++")
332elseif(MINGW)
333 set(INST_PLATFORM GCC)
334 set(INST_NAME ${INST_NAME}-gcc)
335 set(INST_DEFS -DGCC)
336endif()
337
338if(64BIT)
339 set(INST_PLATFORM "${INST_PLATFORM} 64-bit")
340 set(INST_NAME ${INST_NAME}64)
341 set(INST_DEFS ${INST_DEFS} -DWIN64)
342endif()
343
344if(MSVC_IDE)
345 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=$(OutDir)\\")
346else()
347 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=")
348endif()
349
350configure_file(release/libjpeg-turbo.nsi.in libjpeg-turbo.nsi @ONLY)
351
352add_custom_target(installer
353 makensis -nocd ${INST_DEFS} libjpeg-turbo.nsi
354 DEPENDS jpeg jpeg-static turbojpeg turbojpeg-static
355 SOURCES libjpeg-turbo.nsi)
DRC7284c9a2010-10-16 21:55:14 +0000356
357install(TARGETS jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom
358 ARCHIVE DESTINATION lib
359 LIBRARY DESTINATION lib
360 RUNTIME DESTINATION bin
361)
362
363install(FILES ${CMAKE_SOURCE_DIR}/LGPL.txt ${CMAKE_SOURCE_DIR}/LICENSE.txt
364 ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/README-turbo.txt
365 ${CMAKE_SOURCE_DIR}/libjpeg.txt ${CMAKE_SOURCE_DIR}/usage.txt
366 DESTINATION doc)
DRCe2befde2010-10-17 07:28:08 +0000367
368install(FILES ${CMAKE_BINARY_DIR}/jconfig.h ${CMAKE_SOURCE_DIR}/jerror.h
369 ${CMAKE_SOURCE_DIR}/jmorecfg.h ${CMAKE_SOURCE_DIR}/jpeglib.h
370 ${CMAKE_SOURCE_DIR}/turbojpeg.h DESTINATION include)