blob: a1258570d20c706ef0b651d3bc00a3bb252ee54e [file] [log] [blame]
DRC84697032010-10-15 03:43:24 +00001#
2# Setup
3#
4
DRCd45c5492014-03-11 06:21:46 +00005cmake_minimum_required(VERSION 2.8.8)
DRC9fe22da2014-04-16 23:30:38 +00006# Use LINK_INTERFACE_LIBRARIES instead of INTERFACE_LINK_LIBRARIES
7if(POLICY CMP0022)
8 cmake_policy(SET CMP0022 OLD)
9endif()
DRC84697032010-10-15 03:43:24 +000010
DRC5d6f8582011-02-18 23:08:58 +000011project(libjpeg-turbo C)
DRC17745dd2013-04-25 09:45:50 +000012set(VERSION 1.3.80)
DRC84697032010-10-15 03:43:24 +000013
DRC9fe22da2014-04-16 23:30:38 +000014if(CYGWIN OR NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
DRC84697032010-10-15 03:43:24 +000015 execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE BUILD)
16 string(REGEX REPLACE "\n" "" BUILD ${BUILD})
17elseif(WIN32)
DRC5e3bb3e2012-10-12 10:19:09 +000018 execute_process(COMMAND "wmic.exe" "os" "get" "LocalDateTime" OUTPUT_VARIABLE
19 BUILD)
20 string(REGEX REPLACE "[^0-9]" "" BUILD "${BUILD}")
21 if (BUILD STREQUAL "")
22 execute_process(COMMAND "cmd.exe" "/C" "DATE" "/T" OUTPUT_VARIABLE BUILD)
23 string(REGEX REPLACE ".*[ ]([0-9]*)[/.]([0-9]*)[/.]([0-9]*).*" "\\3\\2\\1" BUILD "${BUILD}")
24 else()
25 string(SUBSTRING "${BUILD}" 0 8 BUILD)
26 endif()
DRC84697032010-10-15 03:43:24 +000027else()
DRC378da4d2010-10-15 19:11:11 +000028 message(FATAL_ERROR "Platform not supported by this build system. Use autotools instead.")
DRC84697032010-10-15 03:43:24 +000029endif()
30
DRC2ffcb8e2011-04-04 04:56:24 +000031# This does nothing except when using MinGW. CMAKE_BUILD_TYPE has no meaning
32# in Visual Studio, and it always defaults to Debug when using NMake.
DRC84697032010-10-15 03:43:24 +000033if(NOT CMAKE_BUILD_TYPE)
34 set(CMAKE_BUILD_TYPE Release)
35endif()
36
37message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
38
39# This only works if building from the command line. There is currently no way
DRC2ffcb8e2011-04-04 04:56:24 +000040# to set a variable's value based on the build type when using Visual Studio.
DRC84697032010-10-15 03:43:24 +000041if(CMAKE_BUILD_TYPE STREQUAL "Debug")
42 set(BUILD "${BUILD}d")
43endif()
44
DRCeb2b9d62010-10-15 04:55:13 +000045message(STATUS "VERSION = ${VERSION}, BUILD = ${BUILD}")
46
DRCddcd5a12011-04-15 00:24:02 +000047option(WITH_SIMD "Include SIMD extensions" TRUE)
48option(WITH_ARITH_ENC "Include arithmetic encoding support" TRUE)
49option(WITH_ARITH_DEC "Include arithmetic decoding support" TRUE)
50option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
51option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
DRCab706232013-01-18 23:42:31 +000052option(WITH_MEM_SRCDST "Include in-memory source/destination manager functions when emulating the libjpeg v6b or v7 API/ABI" TRUE)
DRC5039d732013-01-21 23:42:12 +000053option(WITH_JAVA "Build Java wrapper for the TurboJPEG library" FALSE)
DRC245cfdf2010-11-23 17:11:06 +000054
55if(WITH_ARITH_ENC)
56 set(C_ARITH_CODING_SUPPORTED 1)
DRC990e28d2011-01-04 21:40:11 +000057 message(STATUS "Arithmetic encoding support enabled")
DRC245cfdf2010-11-23 17:11:06 +000058else()
DRC990e28d2011-01-04 21:40:11 +000059 message(STATUS "Arithmetic encoding support disabled")
DRC245cfdf2010-11-23 17:11:06 +000060endif()
61
62if(WITH_ARITH_DEC)
63 set(D_ARITH_CODING_SUPPORTED 1)
DRC990e28d2011-01-04 21:40:11 +000064 message(STATUS "Arithmetic decoding support enabled")
DRC245cfdf2010-11-23 17:11:06 +000065else()
DRC990e28d2011-01-04 21:40:11 +000066 message(STATUS "Arithmetic decoding support disabled")
DRC245cfdf2010-11-23 17:11:06 +000067endif()
68
DRC957d6232011-04-01 11:13:11 +000069if(WITH_JAVA)
DRC5039d732013-01-21 23:42:12 +000070 message(STATUS "TurboJPEG Java wrapper enabled")
DRC218c0c12011-02-05 06:01:18 +000071else()
DRC5039d732013-01-21 23:42:12 +000072 message(STATUS "TurboJPEG Java wrapper disabled")
DRC218c0c12011-02-05 06:01:18 +000073endif()
74
DRCab706232013-01-18 23:42:31 +000075set(SO_AGE 0)
76if(WITH_MEM_SRCDST)
77 set(SO_AGE 1)
78endif()
79
DRC84697032010-10-15 03:43:24 +000080set(JPEG_LIB_VERSION 62)
81set(DLL_VERSION ${JPEG_LIB_VERSION})
DRCab706232013-01-18 23:42:31 +000082set(FULLVERSION ${DLL_VERSION}.${SO_AGE}.0)
DRC84697032010-10-15 03:43:24 +000083if(WITH_JPEG8)
84 set(JPEG_LIB_VERSION 80)
85 set(DLL_VERSION 8)
DRCa9d5b252010-10-15 06:42:45 +000086 set(FULLVERSION ${DLL_VERSION}.0.2)
DRCf38eee02011-02-18 07:00:38 +000087 message(STATUS "Emulating libjpeg v8 API/ABI")
DRC84697032010-10-15 03:43:24 +000088elseif(WITH_JPEG7)
89 set(JPEG_LIB_VERSION 70)
90 set(DLL_VERSION 7)
DRCab706232013-01-18 23:42:31 +000091 set(FULLVERSION ${DLL_VERSION}.${SO_AGE}.0)
DRC84697032010-10-15 03:43:24 +000092 message(STATUS "Emulating libjpeg v7 API/ABI")
93endif(WITH_JPEG8)
94
DRCab706232013-01-18 23:42:31 +000095if(WITH_MEM_SRCDST)
96 set(MEM_SRCDST_SUPPORTED 1)
97 message(STATUS "In-memory source/destination managers enabled")
98else()
99 message(STATUS "In-memory source/destination managers disabled")
100endif()
101
DRC84697032010-10-15 03:43:24 +0000102if(MSVC)
103 # Use the static C library for all build types
104 foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
DRC2e4d0442011-02-08 01:18:37 +0000105 CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
DRC84697032010-10-15 03:43:24 +0000106 if(${var} MATCHES "/MD")
107 string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
108 endif()
109 endforeach()
110
111 add_definitions(-W3 -wd4996)
112endif()
113
114# Detect whether compiler is 64-bit
115if(MSVC AND CMAKE_CL_64)
116 set(SIMD_X86_64 1)
117 set(64BIT 1)
118elseif(CMAKE_SIZEOF_VOID_P MATCHES 8)
119 set(SIMD_X86_64 1)
120 set(64BIT 1)
121endif()
122
123if(64BIT)
124 message(STATUS "64-bit build")
125else()
126 message(STATUS "32-bit build")
127endif()
128
DRC7175e512013-04-23 22:29:00 +0000129if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
130 if(MSVC)
131 set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_PROJECT_NAME})
132 else()
133 set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_PROJECT_NAME}-gcc)
134 endif()
135 if(64BIT)
136 set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_INSTALL_PREFIX_DEFAULT}64)
137 endif()
138 set(CMAKE_INSTALL_PREFIX "c:/${CMAKE_INSTALL_PREFIX_DEFAULT}" CACHE PATH
139 "Directory into which to install libjpeg-turbo (default: c:/${CMAKE_INSTALL_PREFIX_DEFAULT})"
140 FORCE)
141endif()
142
143message(STATUS "Install directory = ${CMAKE_INSTALL_PREFIX}")
144
DRC84697032010-10-15 03:43:24 +0000145configure_file(win/jconfig.h.in jconfig.h)
DRCff6961f2014-04-20 09:17:11 +0000146configure_file(win/jconfigint.h.in jconfigint.h)
DRC84697032010-10-15 03:43:24 +0000147
148include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
149
DRC957d6232011-04-01 11:13:11 +0000150if(WITH_JAVA)
151 find_package(Java)
152 find_package(JNI)
DRCdb425062011-04-03 06:10:18 +0000153 if(DEFINED JAVACFLAGS)
154 message(STATUS "Java compiler flags = ${JAVACFLAGS}")
155 endif()
DRC218c0c12011-02-05 06:01:18 +0000156endif()
157
DRC84697032010-10-15 03:43:24 +0000158
159#
160# Targets
161#
162
DRC245cfdf2010-11-23 17:11:06 +0000163set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c
164 jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c
165 jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c jdatasrc.c
166 jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c
167 jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c
168 jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c
169 jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c)
170
171if(WITH_ARITH_ENC OR WITH_ARITH_DEC)
172 set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c)
173endif()
174
175if(WITH_ARITH_ENC)
176 set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c)
177endif()
178
179if(WITH_ARITH_DEC)
180 set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c)
181endif()
DRC84697032010-10-15 03:43:24 +0000182
183if(WITH_SIMD)
184 add_definitions(-DWITH_SIMD)
185 add_subdirectory(simd)
186 if(SIMD_X86_64)
187 set(JPEG_SOURCES ${JPEG_SOURCES} simd/jsimd_x86_64.c)
188 else()
189 set(JPEG_SOURCES ${JPEG_SOURCES} simd/jsimd_i386.c)
190 endif()
191 # This tells CMake that the "source" files haven't been generated yet
192 set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
193else()
194 set(JPEG_SOURCES ${JPEG_SOURCES} jsimd_none.c)
DRC6f4ba612010-10-16 21:27:38 +0000195 message(STATUS "Not using SIMD acceleration")
DRC84697032010-10-15 03:43:24 +0000196endif()
197
DRC957d6232011-04-01 11:13:11 +0000198if(WITH_JAVA)
199 add_subdirectory(java)
200endif()
201
DRC84697032010-10-15 03:43:24 +0000202add_subdirectory(sharedlib)
203
204add_library(jpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS})
DRC84697032010-10-15 03:43:24 +0000205if(NOT MSVC)
206 set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg)
207endif()
208if(WITH_SIMD)
209 add_dependencies(jpeg-static simd)
210endif()
211
DRC418dbdf2011-05-26 10:45:06 +0000212set(TURBOJPEG_SOURCES turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c)
DRC957d6232011-04-01 11:13:11 +0000213if(WITH_JAVA)
DRC218c0c12011-02-05 06:01:18 +0000214 set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
DRC957d6232011-04-01 11:13:11 +0000215 include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
DRC218c0c12011-02-05 06:01:18 +0000216endif()
217
218add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
DRC84697032010-10-15 03:43:24 +0000219set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
DRC389c4722011-02-06 18:48:13 +0000220if(MINGW)
221 set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at)
222endif()
DRC84697032010-10-15 03:43:24 +0000223target_link_libraries(turbojpeg jpeg-static)
224set_target_properties(turbojpeg PROPERTIES LINK_INTERFACE_LIBRARIES "")
225
226add_library(turbojpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS}
DRC418dbdf2011-05-26 10:45:06 +0000227 turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c)
DRC84697032010-10-15 03:43:24 +0000228if(NOT MSVC)
229 set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
230endif()
231if(WITH_SIMD)
232 add_dependencies(turbojpeg-static simd)
233endif()
234
DRC3185cb92011-05-25 03:52:22 +0000235add_executable(tjunittest tjunittest.c tjutil.c)
236target_link_libraries(tjunittest turbojpeg)
DRC84697032010-10-15 03:43:24 +0000237
DRC3185cb92011-05-25 03:52:22 +0000238add_executable(tjunittest-static tjunittest.c tjutil.c)
239target_link_libraries(tjunittest-static turbojpeg-static)
DRC84697032010-10-15 03:43:24 +0000240
DRC3185cb92011-05-25 03:52:22 +0000241add_executable(tjbench tjbench.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
DRC43484642011-05-24 17:03:51 +0000242 wrppm.c)
DRC4ad60032011-09-20 05:41:54 +0000243target_link_libraries(tjbench turbojpeg jpeg-static)
DRC3185cb92011-05-25 03:52:22 +0000244set_property(TARGET tjbench PROPERTY COMPILE_FLAGS
DRC43484642011-05-24 17:03:51 +0000245 "-DBMP_SUPPORTED -DPPM_SUPPORTED")
DRC84697032010-10-15 03:43:24 +0000246
DRC3185cb92011-05-25 03:52:22 +0000247add_executable(tjbench-static tjbench.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
DRC43484642011-05-24 17:03:51 +0000248 wrppm.c)
DRC3185cb92011-05-25 03:52:22 +0000249target_link_libraries(tjbench-static turbojpeg-static jpeg-static)
250set_property(TARGET tjbench-static PROPERTY COMPILE_FLAGS
DRC43484642011-05-24 17:03:51 +0000251 "-DBMP_SUPPORTED -DPPM_SUPPORTED")
DRC84697032010-10-15 03:43:24 +0000252
253add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c rdswitch.c
254 rdtarga.c)
255set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS
DRC5ee81f42011-05-02 00:35:50 +0000256 "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED -DUSE_SETMODE")
DRC84697032010-10-15 03:43:24 +0000257target_link_libraries(cjpeg-static jpeg-static)
258
259add_executable(djpeg-static djpeg.c cdjpeg.c rdcolmap.c rdswitch.c wrbmp.c wrgif.c
260 wrppm.c wrtarga.c)
261set_property(TARGET djpeg-static PROPERTY COMPILE_FLAGS
DRC5ee81f42011-05-02 00:35:50 +0000262 "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED -DUSE_SETMODE")
DRC84697032010-10-15 03:43:24 +0000263target_link_libraries(djpeg-static jpeg-static)
264
265add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
266target_link_libraries(jpegtran-static jpeg-static)
DRC7e3fd2f2011-05-25 06:04:43 +0000267set_property(TARGET jpegtran-static PROPERTY COMPILE_FLAGS "-DUSE_SETMODE")
DRC84697032010-10-15 03:43:24 +0000268
269add_executable(rdjpgcom rdjpgcom.c)
270
271add_executable(wrjpgcom rdjpgcom.c)
272
273
274#
275# Tests
276#
277
DRC957d6232011-04-01 11:13:11 +0000278if(MSVC_IDE)
279 set(OBJDIR "\${CTEST_CONFIGURATION_TYPE}/")
280else()
281 set(OBJDIR "")
282endif()
283
DRC84697032010-10-15 03:43:24 +0000284enable_testing()
DRC211d1e72013-01-13 11:25:20 +0000285
286set(MD5_JPEG_INT 9a68f56bc76e466aa7e52f415d0f4a5f)
287set(MD5_JPEG_FAST 0e1502e7fa421835e376a314fac2a39f)
288set(MD5_JPEG_FAST_100 7bf72a8e741d64eecb960c97323af77c)
289set(MD5_JPEG_FLOAT d1623885ffafcd40c684af09e3d65cd5)
290set(MD5_JPEG_FLOAT_NOSIMD fb4884c35f8273f498cb32879de5c455)
291set(MD5_JPEG_INT_GRAY 72b51f894b8f4a10b3ee3066770aa38d)
292set(MD5_PPM_INT d1ed0d11f076b842525271647716aeb8)
293set(MD5_PPM_FAST 048298a2d2410261c0533cb97bcfef23)
294set(MD5_PPM_FLOAT 7f5b446ee36b2630e06785b8d42af15f)
295set(MD5_PPM_FLOAT_NOSIMD 64072f1dbdc5b3a187777788604971a5)
296set(MD5_PPM_INT_2_1 9f9de8c0612f8d06869b960b05abf9c9)
297set(MD5_PPM_INT_15_8 b6875bc070720b899566cc06459b63b7)
298set(MD5_PPM_INT_7_4 06a177eae05f164fac57f7a2c346ee87)
299set(MD5_PPM_INT_13_8 bc3452573c8152f6ae552939ee19f82f)
300set(MD5_PPM_INT_3_2 f5a8b88a8a7f96016f04d259cf82ed67)
301set(MD5_PPM_INT_11_8 d8cc73c0aaacd4556569b59437ba00a5)
302set(MD5_PPM_INT_5_4 32775dd9ad2ab90f4c5b219b53e0c86c)
303set(MD5_PPM_INT_9_8 d25e61bc7eac0002f5b393aa223747b6)
304set(MD5_PPM_INT_7_8 ddb564b7c74a09494016d6cd7502a946)
305set(MD5_PPM_INT_3_4 8ed8e68808c3fbc4ea764fc9d2968646)
306set(MD5_PPM_INT_5_8 a3363274999da2366a024efae6d16c9b)
307set(MD5_PPM_INT_1_2 e692a315cea26b988c8e8b29a5dbcd81)
308set(MD5_PPM_INT_3_8 79eca9175652ced755155c90e785a996)
309set(MD5_PPM_INT_1_4 79cd778f8bf1a117690052cacdd54eca)
310set(MD5_PPM_INT_1_8 391b3d4aca640c8567d6f8745eb2142f)
311set(MD5_PPM_FAST_1_2 f30bcf6d32ccd44cbdd9aeaacbd9454f)
312set(MD5_BMP_256 4980185e3776e89bd931736e1cddeee6)
313set(MD5_JPEG_ARI e986fb0a637a8d833d96e8a6d6d84ea1)
314set(MD5_PPM_ARI 72b59a99bcf1de24c5b27d151bde2437)
315set(MD5_JPEG_PROG 1c4afddc05c0a43489ee54438a482d92)
DRC4b509282013-11-06 06:55:28 +0000316set(MD5_JPEG_PROG_ARI 0a8f1c8f66e113c3cf635df0a475a617)
DRC211d1e72013-01-13 11:25:20 +0000317set(MD5_JPEG_CROP b4197f377e621c4e9b1d20471432610d)
318
DRC957d6232011-04-01 11:13:11 +0000319if(WITH_JAVA)
320add_test(TJUnitTest ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest)
321add_test(TJUnitTest-yuv ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -yuv)
DRCfef98522013-04-28 01:32:52 +0000322add_test(TJUnitTest-yuv-nopad ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -yuv -noyuvpad)
DRC957d6232011-04-01 11:13:11 +0000323add_test(TJUnitTest-bi ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi)
324add_test(TJUnitTest-bi-yuv ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi -yuv)
DRCfef98522013-04-28 01:32:52 +0000325add_test(TJUnitTest-bi-yuv-nopad ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi -yuv -noyuvpad)
DRC957d6232011-04-01 11:13:11 +0000326endif()
DRC3185cb92011-05-25 03:52:22 +0000327add_test(tjunittest tjunittest)
328add_test(tjunittest-alloc tjunittest -alloc)
329add_test(tjunittest-yuv tjunittest -yuv)
DRCfaa868b2013-10-31 05:02:20 +0000330add_test(tjunittest-yuv-alloc tjunittest -yuv -alloc)
DRCf610d612013-04-26 10:33:29 +0000331add_test(tjunittest-yuv-nopad tjunittest -yuv -noyuvpad)
DRC7ab03642012-01-31 05:47:07 +0000332add_test(cjpeg-int sharedlib/cjpeg -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000333add_test(cjpeg-int-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT} -DFILE=testoutint.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000334add_test(cjpeg-fast sharedlib/cjpeg -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000335add_test(cjpeg-fast-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FAST} -DFILE=testoutfst.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000336add_test(cjpeg-fast-100 sharedlib/cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000337add_test(cjpeg-fast-100-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FAST_100} -DFILE=testoutfst100.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000338add_test(cjpeg-float sharedlib/cjpeg -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC84697032010-10-15 03:43:24 +0000339if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000340add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FLOAT} -DFILE=testoutflt.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000341else()
DRC211d1e72013-01-13 11:25:20 +0000342add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FLOAT_NOSIMD} -DFILE=testoutflt.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000343endif()
DRC7ab03642012-01-31 05:47:07 +0000344add_test(cjpeg-int-gray sharedlib/cjpeg -dct int -grayscale -outfile testoutgray.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000345add_test(cjpeg-int-gray-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT_GRAY} -DFILE=testoutgray.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000346add_test(djpeg-int sharedlib/djpeg -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000347add_test(djpeg-int-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_INT} -DFILE=testoutint.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000348add_test(djpeg-fast sharedlib/djpeg -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000349add_test(djpeg-fast-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FAST} -DFILE=testoutfst.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000350add_test(djpeg-float sharedlib/djpeg -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC84697032010-10-15 03:43:24 +0000351if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000352add_test(djpeg-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FLOAT} -DFILE=testoutflt.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000353else()
DRC211d1e72013-01-13 11:25:20 +0000354add_test(djpeg-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FLOAT_NOSIMD} -DFILE=testoutflt.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000355endif()
DRC0af8d672012-01-31 11:09:11 +0000356foreach(scale 2_1 15_8 7_4 13_8 3_2 11_8 5_4 9_8 7_8 3_4 5_8 1_2 3_8 1_4 1_8)
357string(REGEX REPLACE "_" "/" scalearg ${scale})
DRCcf775bf2012-02-01 02:49:10 +0000358add_test(djpeg-int-${scale} sharedlib/djpeg -dct int -nosmooth -scale ${scalearg} -ppm -outfile testoutint${scale}.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000359add_test(djpeg-int-${scale}-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_INT_${scale}} -DFILE=testoutint${scale}.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC0af8d672012-01-31 11:09:11 +0000360endforeach()
DRC7ab03642012-01-31 05:47:07 +0000361add_test(djpeg-fast-1_2 sharedlib/djpeg -dct fast -scale 1/2 -ppm -outfile testoutfst1_2.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000362add_test(djpeg-fast-1_2-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FAST_1_2} -DFILE=testoutfst1_2.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000363add_test(djpeg-256 sharedlib/djpeg -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000364add_test(djpeg-256-cmp ${CMAKE_COMMAND} -DMD5=${MD5_BMP_256} -DFILE=testout.bmp -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000365add_test(cjpeg-prog sharedlib/cjpeg -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000366add_test(cjpeg-prog-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_PROG} -DFILE=testoutp.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000367add_test(jpegtran-prog sharedlib/jpegtran -outfile testoutt.jpg testoutp.jpg)
DRC211d1e72013-01-13 11:25:20 +0000368add_test(jpegtran-prog-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT} -DFILE=testoutt.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC245cfdf2010-11-23 17:11:06 +0000369if(WITH_ARITH_ENC)
DRC7ab03642012-01-31 05:47:07 +0000370add_test(cjpeg-ari sharedlib/cjpeg -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000371add_test(cjpeg-ari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_ARI} -DFILE=testoutari.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake )
DRC7ab03642012-01-31 05:47:07 +0000372add_test(jpegtran-toari sharedlib/jpegtran -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg)
DRC211d1e72013-01-13 11:25:20 +0000373add_test(jpegtran-toari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_ARI} -DFILE=testouta.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC4b509282013-11-06 06:55:28 +0000374add_test(cjpeg-prog-ari sharedlib/cjpeg -dct int -progressive -arithmetic -sample 1x1 -outfile testoutpa.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
375add_test(cjpeg-prog-ari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_PROG_ARI} -DFILE=testoutpa.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake )
DRC245cfdf2010-11-23 17:11:06 +0000376endif()
377if(WITH_ARITH_DEC)
DRC7ab03642012-01-31 05:47:07 +0000378add_test(djpeg-ari sharedlib/djpeg -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
DRC211d1e72013-01-13 11:25:20 +0000379add_test(djpeg-ari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_ARI} -DFILE=testoutari.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000380add_test(jpegtran-fromari sharedlib/jpegtran -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
DRC211d1e72013-01-13 11:25:20 +0000381add_test(jpegtran-fromari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT} -DFILE=testouta.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC245cfdf2010-11-23 17:11:06 +0000382endif()
DRC7ab03642012-01-31 05:47:07 +0000383add_test(jpegtran-crop sharedlib/jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000384add_test(jpegtran-crop-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_CROP} -DFILE=testoutcrop.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000385
DRC3185cb92011-05-25 03:52:22 +0000386add_test(tjunittest-static tjunittest-static)
387add_test(tjunittest-static-alloc tjunittest-static -alloc)
388add_test(tjunittest-static-yuv tjunittest-static -yuv)
DRCfaa868b2013-10-31 05:02:20 +0000389add_test(tjunittest-static-yuv-alloc tjunittest-static -yuv -alloc)
DRCf610d612013-04-26 10:33:29 +0000390add_test(tjunittest-static-yuv-nopad tjunittest-static -yuv -noyuvpad)
DRC7ab03642012-01-31 05:47:07 +0000391add_test(cjpeg-static-int cjpeg-static -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000392add_test(cjpeg-static-int-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT} -DFILE=testoutint.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000393add_test(cjpeg-static-fast cjpeg-static -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000394add_test(cjpeg-static-fast-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FAST} -DFILE=testoutfst.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000395add_test(cjpeg-static-fast-100 cjpeg-static -dct fast -quality 100 -opt -outfile testoutfst100.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000396add_test(cjpeg-static-fast-100-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FAST_100} -DFILE=testoutfst100.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000397add_test(cjpeg-static-float cjpeg-static -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC84697032010-10-15 03:43:24 +0000398if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000399add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FLOAT} -DFILE=testoutflt.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000400else()
DRC211d1e72013-01-13 11:25:20 +0000401add_test(cjpeg-static-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_FLOAT_NOSIMD} -DFILE=testoutflt.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000402endif()
DRC7ab03642012-01-31 05:47:07 +0000403add_test(cjpeg-static-int-gray cjpeg-static -dct int -grayscale -outfile testoutgray.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000404add_test(cjpeg-static-int-gray-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT_GRAY} -DFILE=testoutgray.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000405add_test(djpeg-static-int djpeg-static -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000406add_test(djpeg-static-int-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_INT} -DFILE=testoutint.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000407add_test(djpeg-static-fast djpeg-static -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000408add_test(djpeg-static-fast-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FAST} -DFILE=testoutfst.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000409add_test(djpeg-static-float djpeg-static -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC84697032010-10-15 03:43:24 +0000410if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000411add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FLOAT} -DFILE=testoutflt.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000412else()
DRC211d1e72013-01-13 11:25:20 +0000413add_test(djpeg-static-float-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FLOAT_NOSIMD} -DFILE=testoutflt.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000414endif()
DRC0af8d672012-01-31 11:09:11 +0000415foreach(scale 2_1 15_8 7_4 13_8 3_2 11_8 5_4 9_8 7_8 3_4 5_8 1_2 3_8 1_4 1_8)
416string(REGEX REPLACE "_" "/" scalearg ${scale})
DRCcf775bf2012-02-01 02:49:10 +0000417add_test(djpeg-static-int-${scale} djpeg-static -dct int -nosmooth -scale ${scalearg} -ppm -outfile testoutint${scale}.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000418add_test(djpeg-static-int-${scale}-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_INT_${scale}} -DFILE=testoutint${scale}.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC0af8d672012-01-31 11:09:11 +0000419endforeach()
DRC7ab03642012-01-31 05:47:07 +0000420add_test(djpeg-static-fast-1_2 djpeg-static -dct fast -scale 1/2 -ppm -outfile testoutfst1_2.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000421add_test(djpeg-static-fast-1_2-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_FAST_1_2} -DFILE=testoutfst1_2.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000422add_test(djpeg-static-256 djpeg-static -dct int -bmp -colors 256 -outfile testout.bmp ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000423add_test(djpeg-static-256-cmp ${CMAKE_COMMAND} -DMD5=${MD5_BMP_256} -DFILE=testout.bmp -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000424add_test(cjpeg-static-prog cjpeg-static -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000425add_test(cjpeg-static-prog-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_PROG} -DFILE=testoutp.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC84697032010-10-15 03:43:24 +0000426add_test(jpegtran-static-prog jpegtran-static -outfile testoutt.jpg testoutp.jpg)
DRC211d1e72013-01-13 11:25:20 +0000427add_test(jpegtran-static-prog-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT} -DFILE=testoutt.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC245cfdf2010-11-23 17:11:06 +0000428if(WITH_ARITH_ENC)
DRC7ab03642012-01-31 05:47:07 +0000429add_test(cjpeg-static-ari cjpeg-static -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000430add_test(cjpeg-static-ari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_ARI} -DFILE=testoutari.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake )
DRC7ab03642012-01-31 05:47:07 +0000431add_test(jpegtran-static-toari jpegtran-static -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg)
DRC211d1e72013-01-13 11:25:20 +0000432add_test(jpegtran-static-toari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_ARI} -DFILE=testouta.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC4b509282013-11-06 06:55:28 +0000433add_test(cjpeg-static-prog-ari cjpeg-static -dct int -progressive -arithmetic -sample 1x1 -outfile testoutpa.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
434add_test(cjpeg-static-prog-ari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_PROG_ARI} -DFILE=testoutpa.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake )
DRC245cfdf2010-11-23 17:11:06 +0000435endif()
436if(WITH_ARITH_DEC)
DRC7ab03642012-01-31 05:47:07 +0000437add_test(djpeg-static-ari djpeg-static -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
DRC211d1e72013-01-13 11:25:20 +0000438add_test(djpeg-static-ari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_PPM_ARI} -DFILE=testoutari.ppm -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC7ab03642012-01-31 05:47:07 +0000439add_test(jpegtran-static-fromari jpegtran-static -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
DRC211d1e72013-01-13 11:25:20 +0000440add_test(jpegtran-static-fromari-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_INT} -DFILE=testouta.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC245cfdf2010-11-23 17:11:06 +0000441endif()
DRC7ab03642012-01-31 05:47:07 +0000442add_test(jpegtran-static-crop jpegtran-static -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000443add_test(jpegtran-static-crop-cmp ${CMAKE_COMMAND} -DMD5=${MD5_JPEG_CROP} -DFILE=testoutcrop.jpg -P ${CMAKE_SOURCE_DIR}/cmakescripts/md5cmp.cmake)
DRC2c0a4e12010-10-16 08:51:43 +0000444
DRCa0f878a2011-04-02 04:43:14 +0000445add_custom_target(testclean COMMAND ${CMAKE_COMMAND} -P
446 ${CMAKE_SOURCE_DIR}/cmakescripts/testclean.cmake)
447
DRC2c0a4e12010-10-16 08:51:43 +0000448
449#
450# Installer
451#
452
DRC2c0a4e12010-10-16 08:51:43 +0000453if(MSVC)
454 set(INST_PLATFORM "Visual C++")
DRCb94f2de2011-03-22 09:31:25 +0000455 set(INST_NAME ${CMAKE_PROJECT_NAME}-${VERSION}-vc)
DRC7175e512013-04-23 22:29:00 +0000456 set(INST_REG_NAME ${CMAKE_PROJECT_NAME})
DRC2c0a4e12010-10-16 08:51:43 +0000457elseif(MINGW)
458 set(INST_PLATFORM GCC)
DRCb94f2de2011-03-22 09:31:25 +0000459 set(INST_NAME ${CMAKE_PROJECT_NAME}-${VERSION}-gcc)
DRC7175e512013-04-23 22:29:00 +0000460 set(INST_REG_NAME ${CMAKE_PROJECT_NAME}-gcc)
DRC2c0a4e12010-10-16 08:51:43 +0000461 set(INST_DEFS -DGCC)
462endif()
463
464if(64BIT)
465 set(INST_PLATFORM "${INST_PLATFORM} 64-bit")
466 set(INST_NAME ${INST_NAME}64)
DRC7175e512013-04-23 22:29:00 +0000467 set(INST_REG_NAME ${INST_DIR}64)
DRC2c0a4e12010-10-16 08:51:43 +0000468 set(INST_DEFS ${INST_DEFS} -DWIN64)
469endif()
470
DRC957d6232011-04-01 11:13:11 +0000471if(WITH_JAVA)
472 set(INST_DEFS ${INST_DEFS} -DJAVA)
473endif()
474
DRC2c0a4e12010-10-16 08:51:43 +0000475if(MSVC_IDE)
DRC926e01f2011-04-06 06:35:38 +0000476 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=${CMAKE_CFG_INTDIR}\\")
DRC2c0a4e12010-10-16 08:51:43 +0000477else()
478 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=")
479endif()
480
DRC9fe22da2014-04-16 23:30:38 +0000481STRING(REGEX REPLACE "/" "\\\\" INST_DIR ${CMAKE_INSTALL_PREFIX})
DRC7175e512013-04-23 22:29:00 +0000482
DRC2c0a4e12010-10-16 08:51:43 +0000483configure_file(release/libjpeg-turbo.nsi.in libjpeg-turbo.nsi @ONLY)
484
DRC7175e512013-04-23 22:29:00 +0000485if(WITH_JAVA)
486 set(JAVA_DEPEND java)
487endif()
DRC2c0a4e12010-10-16 08:51:43 +0000488add_custom_target(installer
489 makensis -nocd ${INST_DEFS} libjpeg-turbo.nsi
DRCb94f2de2011-03-22 09:31:25 +0000490 DEPENDS jpeg jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom
DRC7175e512013-04-23 22:29:00 +0000491 cjpeg djpeg jpegtran tjbench ${JAVA_DEPEND}
DRC2c0a4e12010-10-16 08:51:43 +0000492 SOURCES libjpeg-turbo.nsi)
DRC7284c9a2010-10-16 21:55:14 +0000493
DRC3185cb92011-05-25 03:52:22 +0000494install(TARGETS jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom tjbench
DRC7284c9a2010-10-16 21:55:14 +0000495 ARCHIVE DESTINATION lib
496 LIBRARY DESTINATION lib
497 RUNTIME DESTINATION bin
498)
499
DRCa1647c82012-02-10 00:39:05 +0000500install(FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/README-turbo.txt
DRC9fe22da2014-04-16 23:30:38 +0000501 ${CMAKE_SOURCE_DIR}/example.c ${CMAKE_SOURCE_DIR}/libjpeg.txt
DRCa1647c82012-02-10 00:39:05 +0000502 ${CMAKE_SOURCE_DIR}/structure.txt ${CMAKE_SOURCE_DIR}/usage.txt
503 ${CMAKE_SOURCE_DIR}/wizard.txt
DRC7284c9a2010-10-16 21:55:14 +0000504 DESTINATION doc)
DRCe2befde2010-10-17 07:28:08 +0000505
506install(FILES ${CMAKE_BINARY_DIR}/jconfig.h ${CMAKE_SOURCE_DIR}/jerror.h
507 ${CMAKE_SOURCE_DIR}/jmorecfg.h ${CMAKE_SOURCE_DIR}/jpeglib.h
508 ${CMAKE_SOURCE_DIR}/turbojpeg.h DESTINATION include)