blob: d80933e18e576b922bc561c7527ef1394b82e9f7 [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)
DRC5eb1efa2014-03-11 06:30:21 +00006cmake_policy(SET CMP0022 OLD)
DRC84697032010-10-15 03:43:24 +00007
DRC5d6f8582011-02-18 23:08:58 +00008project(libjpeg-turbo C)
DRC17745dd2013-04-25 09:45:50 +00009set(VERSION 1.3.80)
DRC84697032010-10-15 03:43:24 +000010
DRC378da4d2010-10-15 19:11:11 +000011if(MINGW OR CYGWIN)
DRC84697032010-10-15 03:43:24 +000012 execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE BUILD)
13 string(REGEX REPLACE "\n" "" BUILD ${BUILD})
14elseif(WIN32)
DRC5e3bb3e2012-10-12 10:19:09 +000015 execute_process(COMMAND "wmic.exe" "os" "get" "LocalDateTime" OUTPUT_VARIABLE
16 BUILD)
17 string(REGEX REPLACE "[^0-9]" "" BUILD "${BUILD}")
18 if (BUILD STREQUAL "")
19 execute_process(COMMAND "cmd.exe" "/C" "DATE" "/T" OUTPUT_VARIABLE BUILD)
20 string(REGEX REPLACE ".*[ ]([0-9]*)[/.]([0-9]*)[/.]([0-9]*).*" "\\3\\2\\1" BUILD "${BUILD}")
21 else()
22 string(SUBSTRING "${BUILD}" 0 8 BUILD)
23 endif()
DRC84697032010-10-15 03:43:24 +000024else()
DRC378da4d2010-10-15 19:11:11 +000025 message(FATAL_ERROR "Platform not supported by this build system. Use autotools instead.")
DRC84697032010-10-15 03:43:24 +000026endif()
27
DRC2ffcb8e2011-04-04 04:56:24 +000028# This does nothing except when using MinGW. CMAKE_BUILD_TYPE has no meaning
29# in Visual Studio, and it always defaults to Debug when using NMake.
DRC84697032010-10-15 03:43:24 +000030if(NOT CMAKE_BUILD_TYPE)
31 set(CMAKE_BUILD_TYPE Release)
32endif()
33
34message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
35
36# This only works if building from the command line. There is currently no way
DRC2ffcb8e2011-04-04 04:56:24 +000037# to set a variable's value based on the build type when using Visual Studio.
DRC84697032010-10-15 03:43:24 +000038if(CMAKE_BUILD_TYPE STREQUAL "Debug")
39 set(BUILD "${BUILD}d")
40endif()
41
DRCeb2b9d62010-10-15 04:55:13 +000042message(STATUS "VERSION = ${VERSION}, BUILD = ${BUILD}")
43
DRCddcd5a12011-04-15 00:24:02 +000044option(WITH_SIMD "Include SIMD extensions" TRUE)
45option(WITH_ARITH_ENC "Include arithmetic encoding support" TRUE)
46option(WITH_ARITH_DEC "Include arithmetic decoding support" TRUE)
47option(WITH_JPEG7 "Emulate libjpeg v7 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
48option(WITH_JPEG8 "Emulate libjpeg v8 API/ABI (this makes libjpeg-turbo backward incompatible with libjpeg v6b)" FALSE)
DRCab706232013-01-18 23:42:31 +000049option(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 +000050option(WITH_JAVA "Build Java wrapper for the TurboJPEG library" FALSE)
DRC245cfdf2010-11-23 17:11:06 +000051
52if(WITH_ARITH_ENC)
53 set(C_ARITH_CODING_SUPPORTED 1)
DRC990e28d2011-01-04 21:40:11 +000054 message(STATUS "Arithmetic encoding support enabled")
DRC245cfdf2010-11-23 17:11:06 +000055else()
DRC990e28d2011-01-04 21:40:11 +000056 message(STATUS "Arithmetic encoding support disabled")
DRC245cfdf2010-11-23 17:11:06 +000057endif()
58
59if(WITH_ARITH_DEC)
60 set(D_ARITH_CODING_SUPPORTED 1)
DRC990e28d2011-01-04 21:40:11 +000061 message(STATUS "Arithmetic decoding support enabled")
DRC245cfdf2010-11-23 17:11:06 +000062else()
DRC990e28d2011-01-04 21:40:11 +000063 message(STATUS "Arithmetic decoding support disabled")
DRC245cfdf2010-11-23 17:11:06 +000064endif()
65
DRC957d6232011-04-01 11:13:11 +000066if(WITH_JAVA)
DRC5039d732013-01-21 23:42:12 +000067 message(STATUS "TurboJPEG Java wrapper enabled")
DRC218c0c12011-02-05 06:01:18 +000068else()
DRC5039d732013-01-21 23:42:12 +000069 message(STATUS "TurboJPEG Java wrapper disabled")
DRC218c0c12011-02-05 06:01:18 +000070endif()
71
DRCab706232013-01-18 23:42:31 +000072set(SO_AGE 0)
73if(WITH_MEM_SRCDST)
74 set(SO_AGE 1)
75endif()
76
DRC84697032010-10-15 03:43:24 +000077set(JPEG_LIB_VERSION 62)
78set(DLL_VERSION ${JPEG_LIB_VERSION})
DRCab706232013-01-18 23:42:31 +000079set(FULLVERSION ${DLL_VERSION}.${SO_AGE}.0)
DRC84697032010-10-15 03:43:24 +000080if(WITH_JPEG8)
81 set(JPEG_LIB_VERSION 80)
82 set(DLL_VERSION 8)
DRCa9d5b252010-10-15 06:42:45 +000083 set(FULLVERSION ${DLL_VERSION}.0.2)
DRCf38eee02011-02-18 07:00:38 +000084 message(STATUS "Emulating libjpeg v8 API/ABI")
DRC84697032010-10-15 03:43:24 +000085elseif(WITH_JPEG7)
86 set(JPEG_LIB_VERSION 70)
87 set(DLL_VERSION 7)
DRCab706232013-01-18 23:42:31 +000088 set(FULLVERSION ${DLL_VERSION}.${SO_AGE}.0)
DRC84697032010-10-15 03:43:24 +000089 message(STATUS "Emulating libjpeg v7 API/ABI")
90endif(WITH_JPEG8)
91
DRCab706232013-01-18 23:42:31 +000092if(WITH_MEM_SRCDST)
93 set(MEM_SRCDST_SUPPORTED 1)
94 message(STATUS "In-memory source/destination managers enabled")
95else()
96 message(STATUS "In-memory source/destination managers disabled")
97endif()
98
DRC84697032010-10-15 03:43:24 +000099if(MSVC)
100 # Use the static C library for all build types
101 foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
DRC2e4d0442011-02-08 01:18:37 +0000102 CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
DRC84697032010-10-15 03:43:24 +0000103 if(${var} MATCHES "/MD")
104 string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}")
105 endif()
106 endforeach()
107
108 add_definitions(-W3 -wd4996)
109endif()
110
111# Detect whether compiler is 64-bit
112if(MSVC AND CMAKE_CL_64)
113 set(SIMD_X86_64 1)
114 set(64BIT 1)
115elseif(CMAKE_SIZEOF_VOID_P MATCHES 8)
116 set(SIMD_X86_64 1)
117 set(64BIT 1)
118endif()
119
120if(64BIT)
121 message(STATUS "64-bit build")
122else()
123 message(STATUS "32-bit build")
124endif()
125
DRC7175e512013-04-23 22:29:00 +0000126if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
127 if(MSVC)
128 set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_PROJECT_NAME})
129 else()
130 set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_PROJECT_NAME}-gcc)
131 endif()
132 if(64BIT)
133 set(CMAKE_INSTALL_PREFIX_DEFAULT ${CMAKE_INSTALL_PREFIX_DEFAULT}64)
134 endif()
135 set(CMAKE_INSTALL_PREFIX "c:/${CMAKE_INSTALL_PREFIX_DEFAULT}" CACHE PATH
136 "Directory into which to install libjpeg-turbo (default: c:/${CMAKE_INSTALL_PREFIX_DEFAULT})"
137 FORCE)
138endif()
139
140message(STATUS "Install directory = ${CMAKE_INSTALL_PREFIX}")
141
DRC84697032010-10-15 03:43:24 +0000142configure_file(win/jconfig.h.in jconfig.h)
143configure_file(win/config.h.in config.h)
144
145include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
146
DRC957d6232011-04-01 11:13:11 +0000147if(WITH_JAVA)
148 find_package(Java)
149 find_package(JNI)
DRCdb425062011-04-03 06:10:18 +0000150 if(DEFINED JAVACFLAGS)
151 message(STATUS "Java compiler flags = ${JAVACFLAGS}")
152 endif()
DRC218c0c12011-02-05 06:01:18 +0000153endif()
154
DRC84697032010-10-15 03:43:24 +0000155
156#
157# Targets
158#
159
DRC245cfdf2010-11-23 17:11:06 +0000160set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c
161 jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c
162 jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c jdatasrc.c
163 jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c
164 jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c
165 jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c
166 jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c)
167
168if(WITH_ARITH_ENC OR WITH_ARITH_DEC)
169 set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c)
170endif()
171
172if(WITH_ARITH_ENC)
173 set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c)
174endif()
175
176if(WITH_ARITH_DEC)
177 set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c)
178endif()
DRC84697032010-10-15 03:43:24 +0000179
180if(WITH_SIMD)
181 add_definitions(-DWITH_SIMD)
182 add_subdirectory(simd)
183 if(SIMD_X86_64)
184 set(JPEG_SOURCES ${JPEG_SOURCES} simd/jsimd_x86_64.c)
185 else()
186 set(JPEG_SOURCES ${JPEG_SOURCES} simd/jsimd_i386.c)
187 endif()
188 # This tells CMake that the "source" files haven't been generated yet
189 set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
190else()
191 set(JPEG_SOURCES ${JPEG_SOURCES} jsimd_none.c)
DRC6f4ba612010-10-16 21:27:38 +0000192 message(STATUS "Not using SIMD acceleration")
DRC84697032010-10-15 03:43:24 +0000193endif()
194
DRC957d6232011-04-01 11:13:11 +0000195if(WITH_JAVA)
196 add_subdirectory(java)
197endif()
198
DRC84697032010-10-15 03:43:24 +0000199add_subdirectory(sharedlib)
200
201add_library(jpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS})
DRC84697032010-10-15 03:43:24 +0000202if(NOT MSVC)
203 set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg)
204endif()
205if(WITH_SIMD)
206 add_dependencies(jpeg-static simd)
207endif()
208
DRC418dbdf2011-05-26 10:45:06 +0000209set(TURBOJPEG_SOURCES turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c)
DRC957d6232011-04-01 11:13:11 +0000210if(WITH_JAVA)
DRC218c0c12011-02-05 06:01:18 +0000211 set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
DRC957d6232011-04-01 11:13:11 +0000212 include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
DRC218c0c12011-02-05 06:01:18 +0000213endif()
214
215add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
DRC84697032010-10-15 03:43:24 +0000216set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
DRC389c4722011-02-06 18:48:13 +0000217if(MINGW)
218 set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at)
219endif()
DRC84697032010-10-15 03:43:24 +0000220target_link_libraries(turbojpeg jpeg-static)
221set_target_properties(turbojpeg PROPERTIES LINK_INTERFACE_LIBRARIES "")
222
223add_library(turbojpeg-static STATIC ${JPEG_SOURCES} ${SIMD_OBJS}
DRC418dbdf2011-05-26 10:45:06 +0000224 turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c)
DRC84697032010-10-15 03:43:24 +0000225if(NOT MSVC)
226 set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
227endif()
228if(WITH_SIMD)
229 add_dependencies(turbojpeg-static simd)
230endif()
231
DRC3185cb92011-05-25 03:52:22 +0000232add_executable(tjunittest tjunittest.c tjutil.c)
233target_link_libraries(tjunittest turbojpeg)
DRC84697032010-10-15 03:43:24 +0000234
DRC3185cb92011-05-25 03:52:22 +0000235add_executable(tjunittest-static tjunittest.c tjutil.c)
236target_link_libraries(tjunittest-static turbojpeg-static)
DRC84697032010-10-15 03:43:24 +0000237
DRC3185cb92011-05-25 03:52:22 +0000238add_executable(tjbench tjbench.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
DRC43484642011-05-24 17:03:51 +0000239 wrppm.c)
DRC4ad60032011-09-20 05:41:54 +0000240target_link_libraries(tjbench turbojpeg jpeg-static)
DRC3185cb92011-05-25 03:52:22 +0000241set_property(TARGET tjbench PROPERTY COMPILE_FLAGS
DRC43484642011-05-24 17:03:51 +0000242 "-DBMP_SUPPORTED -DPPM_SUPPORTED")
DRC84697032010-10-15 03:43:24 +0000243
DRC3185cb92011-05-25 03:52:22 +0000244add_executable(tjbench-static tjbench.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
DRC43484642011-05-24 17:03:51 +0000245 wrppm.c)
DRC3185cb92011-05-25 03:52:22 +0000246target_link_libraries(tjbench-static turbojpeg-static jpeg-static)
247set_property(TARGET tjbench-static PROPERTY COMPILE_FLAGS
DRC43484642011-05-24 17:03:51 +0000248 "-DBMP_SUPPORTED -DPPM_SUPPORTED")
DRC84697032010-10-15 03:43:24 +0000249
250add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c rdswitch.c
251 rdtarga.c)
252set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS
DRC5ee81f42011-05-02 00:35:50 +0000253 "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED -DUSE_SETMODE")
DRC84697032010-10-15 03:43:24 +0000254target_link_libraries(cjpeg-static jpeg-static)
255
256add_executable(djpeg-static djpeg.c cdjpeg.c rdcolmap.c rdswitch.c wrbmp.c wrgif.c
257 wrppm.c wrtarga.c)
258set_property(TARGET djpeg-static PROPERTY COMPILE_FLAGS
DRC5ee81f42011-05-02 00:35:50 +0000259 "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED -DUSE_SETMODE")
DRC84697032010-10-15 03:43:24 +0000260target_link_libraries(djpeg-static jpeg-static)
261
262add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
263target_link_libraries(jpegtran-static jpeg-static)
DRC7e3fd2f2011-05-25 06:04:43 +0000264set_property(TARGET jpegtran-static PROPERTY COMPILE_FLAGS "-DUSE_SETMODE")
DRC84697032010-10-15 03:43:24 +0000265
266add_executable(rdjpgcom rdjpgcom.c)
267
268add_executable(wrjpgcom rdjpgcom.c)
269
270
271#
272# Tests
273#
274
DRC957d6232011-04-01 11:13:11 +0000275if(MSVC_IDE)
276 set(OBJDIR "\${CTEST_CONFIGURATION_TYPE}/")
277else()
278 set(OBJDIR "")
279endif()
280
DRC84697032010-10-15 03:43:24 +0000281enable_testing()
DRC211d1e72013-01-13 11:25:20 +0000282
283set(MD5_JPEG_INT 9a68f56bc76e466aa7e52f415d0f4a5f)
284set(MD5_JPEG_FAST 0e1502e7fa421835e376a314fac2a39f)
285set(MD5_JPEG_FAST_100 7bf72a8e741d64eecb960c97323af77c)
286set(MD5_JPEG_FLOAT d1623885ffafcd40c684af09e3d65cd5)
287set(MD5_JPEG_FLOAT_NOSIMD fb4884c35f8273f498cb32879de5c455)
288set(MD5_JPEG_INT_GRAY 72b51f894b8f4a10b3ee3066770aa38d)
289set(MD5_PPM_INT d1ed0d11f076b842525271647716aeb8)
290set(MD5_PPM_FAST 048298a2d2410261c0533cb97bcfef23)
291set(MD5_PPM_FLOAT 7f5b446ee36b2630e06785b8d42af15f)
292set(MD5_PPM_FLOAT_NOSIMD 64072f1dbdc5b3a187777788604971a5)
293set(MD5_PPM_INT_2_1 9f9de8c0612f8d06869b960b05abf9c9)
294set(MD5_PPM_INT_15_8 b6875bc070720b899566cc06459b63b7)
295set(MD5_PPM_INT_7_4 06a177eae05f164fac57f7a2c346ee87)
296set(MD5_PPM_INT_13_8 bc3452573c8152f6ae552939ee19f82f)
297set(MD5_PPM_INT_3_2 f5a8b88a8a7f96016f04d259cf82ed67)
298set(MD5_PPM_INT_11_8 d8cc73c0aaacd4556569b59437ba00a5)
299set(MD5_PPM_INT_5_4 32775dd9ad2ab90f4c5b219b53e0c86c)
300set(MD5_PPM_INT_9_8 d25e61bc7eac0002f5b393aa223747b6)
301set(MD5_PPM_INT_7_8 ddb564b7c74a09494016d6cd7502a946)
302set(MD5_PPM_INT_3_4 8ed8e68808c3fbc4ea764fc9d2968646)
303set(MD5_PPM_INT_5_8 a3363274999da2366a024efae6d16c9b)
304set(MD5_PPM_INT_1_2 e692a315cea26b988c8e8b29a5dbcd81)
305set(MD5_PPM_INT_3_8 79eca9175652ced755155c90e785a996)
306set(MD5_PPM_INT_1_4 79cd778f8bf1a117690052cacdd54eca)
307set(MD5_PPM_INT_1_8 391b3d4aca640c8567d6f8745eb2142f)
308set(MD5_PPM_FAST_1_2 f30bcf6d32ccd44cbdd9aeaacbd9454f)
309set(MD5_BMP_256 4980185e3776e89bd931736e1cddeee6)
310set(MD5_JPEG_ARI e986fb0a637a8d833d96e8a6d6d84ea1)
311set(MD5_PPM_ARI 72b59a99bcf1de24c5b27d151bde2437)
312set(MD5_JPEG_PROG 1c4afddc05c0a43489ee54438a482d92)
DRC4b509282013-11-06 06:55:28 +0000313set(MD5_JPEG_PROG_ARI 0a8f1c8f66e113c3cf635df0a475a617)
DRC211d1e72013-01-13 11:25:20 +0000314set(MD5_JPEG_CROP b4197f377e621c4e9b1d20471432610d)
315
DRC957d6232011-04-01 11:13:11 +0000316if(WITH_JAVA)
317add_test(TJUnitTest ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest)
318add_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 +0000319add_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 +0000320add_test(TJUnitTest-bi ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi)
321add_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 +0000322add_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 +0000323endif()
DRC3185cb92011-05-25 03:52:22 +0000324add_test(tjunittest tjunittest)
325add_test(tjunittest-alloc tjunittest -alloc)
326add_test(tjunittest-yuv tjunittest -yuv)
DRCfaa868b2013-10-31 05:02:20 +0000327add_test(tjunittest-yuv-alloc tjunittest -yuv -alloc)
DRCf610d612013-04-26 10:33:29 +0000328add_test(tjunittest-yuv-nopad tjunittest -yuv -noyuvpad)
DRC7ab03642012-01-31 05:47:07 +0000329add_test(cjpeg-int sharedlib/cjpeg -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000330add_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 +0000331add_test(cjpeg-fast sharedlib/cjpeg -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000332add_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 +0000333add_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 +0000334add_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 +0000335add_test(cjpeg-float sharedlib/cjpeg -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC84697032010-10-15 03:43:24 +0000336if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000337add_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 +0000338else()
DRC211d1e72013-01-13 11:25:20 +0000339add_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 +0000340endif()
DRC7ab03642012-01-31 05:47:07 +0000341add_test(cjpeg-int-gray sharedlib/cjpeg -dct int -grayscale -outfile testoutgray.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000342add_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 +0000343add_test(djpeg-int sharedlib/djpeg -dct int -fast -ppm -outfile testoutint.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000344add_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 +0000345add_test(djpeg-fast sharedlib/djpeg -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000346add_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 +0000347add_test(djpeg-float sharedlib/djpeg -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC84697032010-10-15 03:43:24 +0000348if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000349add_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 +0000350else()
DRC211d1e72013-01-13 11:25:20 +0000351add_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 +0000352endif()
DRC0af8d672012-01-31 11:09:11 +0000353foreach(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)
354string(REGEX REPLACE "_" "/" scalearg ${scale})
DRCcf775bf2012-02-01 02:49:10 +0000355add_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 +0000356add_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 +0000357endforeach()
DRC7ab03642012-01-31 05:47:07 +0000358add_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 +0000359add_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 +0000360add_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 +0000361add_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 +0000362add_test(cjpeg-prog sharedlib/cjpeg -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000363add_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 +0000364add_test(jpegtran-prog sharedlib/jpegtran -outfile testoutt.jpg testoutp.jpg)
DRC211d1e72013-01-13 11:25:20 +0000365add_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 +0000366if(WITH_ARITH_ENC)
DRC7ab03642012-01-31 05:47:07 +0000367add_test(cjpeg-ari sharedlib/cjpeg -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000368add_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 +0000369add_test(jpegtran-toari sharedlib/jpegtran -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg)
DRC211d1e72013-01-13 11:25:20 +0000370add_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 +0000371add_test(cjpeg-prog-ari sharedlib/cjpeg -dct int -progressive -arithmetic -sample 1x1 -outfile testoutpa.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
372add_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 +0000373endif()
374if(WITH_ARITH_DEC)
DRC7ab03642012-01-31 05:47:07 +0000375add_test(djpeg-ari sharedlib/djpeg -dct int -fast -ppm -outfile testoutari.ppm ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
DRC211d1e72013-01-13 11:25:20 +0000376add_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 +0000377add_test(jpegtran-fromari sharedlib/jpegtran -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
DRC211d1e72013-01-13 11:25:20 +0000378add_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 +0000379endif()
DRC7ab03642012-01-31 05:47:07 +0000380add_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 +0000381add_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 +0000382
DRC3185cb92011-05-25 03:52:22 +0000383add_test(tjunittest-static tjunittest-static)
384add_test(tjunittest-static-alloc tjunittest-static -alloc)
385add_test(tjunittest-static-yuv tjunittest-static -yuv)
DRCfaa868b2013-10-31 05:02:20 +0000386add_test(tjunittest-static-yuv-alloc tjunittest-static -yuv -alloc)
DRCf610d612013-04-26 10:33:29 +0000387add_test(tjunittest-static-yuv-nopad tjunittest-static -yuv -noyuvpad)
DRC7ab03642012-01-31 05:47:07 +0000388add_test(cjpeg-static-int cjpeg-static -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000389add_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 +0000390add_test(cjpeg-static-fast cjpeg-static -dct fast -opt -outfile testoutfst.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000391add_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 +0000392add_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 +0000393add_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 +0000394add_test(cjpeg-static-float cjpeg-static -dct float -outfile testoutflt.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC84697032010-10-15 03:43:24 +0000395if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000396add_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 +0000397else()
DRC211d1e72013-01-13 11:25:20 +0000398add_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 +0000399endif()
DRC7ab03642012-01-31 05:47:07 +0000400add_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 +0000401add_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 +0000402add_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 +0000403add_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 +0000404add_test(djpeg-static-fast djpeg-static -dct fast -ppm -outfile testoutfst.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC211d1e72013-01-13 11:25:20 +0000405add_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 +0000406add_test(djpeg-static-float djpeg-static -dct float -ppm -outfile testoutflt.ppm ${CMAKE_SOURCE_DIR}/testimages/testorig.jpg)
DRC84697032010-10-15 03:43:24 +0000407if(WITH_SIMD)
DRC211d1e72013-01-13 11:25:20 +0000408add_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 +0000409else()
DRC211d1e72013-01-13 11:25:20 +0000410add_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 +0000411endif()
DRC0af8d672012-01-31 11:09:11 +0000412foreach(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)
413string(REGEX REPLACE "_" "/" scalearg ${scale})
DRCcf775bf2012-02-01 02:49:10 +0000414add_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 +0000415add_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 +0000416endforeach()
DRC7ab03642012-01-31 05:47:07 +0000417add_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 +0000418add_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 +0000419add_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 +0000420add_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 +0000421add_test(cjpeg-static-prog cjpeg-static -dct int -progressive -outfile testoutp.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000422add_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 +0000423add_test(jpegtran-static-prog jpegtran-static -outfile testoutt.jpg testoutp.jpg)
DRC211d1e72013-01-13 11:25:20 +0000424add_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 +0000425if(WITH_ARITH_ENC)
DRC7ab03642012-01-31 05:47:07 +0000426add_test(cjpeg-static-ari cjpeg-static -dct int -arithmetic -outfile testoutari.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
DRC211d1e72013-01-13 11:25:20 +0000427add_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 +0000428add_test(jpegtran-static-toari jpegtran-static -arithmetic -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgint.jpg)
DRC211d1e72013-01-13 11:25:20 +0000429add_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 +0000430add_test(cjpeg-static-prog-ari cjpeg-static -dct int -progressive -arithmetic -sample 1x1 -outfile testoutpa.jpg ${CMAKE_SOURCE_DIR}/testimages/testorig.ppm)
431add_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 +0000432endif()
433if(WITH_ARITH_DEC)
DRC7ab03642012-01-31 05:47:07 +0000434add_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 +0000435add_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 +0000436add_test(jpegtran-static-fromari jpegtran-static -outfile testouta.jpg ${CMAKE_SOURCE_DIR}/testimages/testimgari.jpg)
DRC211d1e72013-01-13 11:25:20 +0000437add_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 +0000438endif()
DRC7ab03642012-01-31 05:47:07 +0000439add_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 +0000440add_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 +0000441
DRCa0f878a2011-04-02 04:43:14 +0000442add_custom_target(testclean COMMAND ${CMAKE_COMMAND} -P
443 ${CMAKE_SOURCE_DIR}/cmakescripts/testclean.cmake)
444
DRC2c0a4e12010-10-16 08:51:43 +0000445
446#
447# Installer
448#
449
DRC2c0a4e12010-10-16 08:51:43 +0000450if(MSVC)
451 set(INST_PLATFORM "Visual C++")
DRCb94f2de2011-03-22 09:31:25 +0000452 set(INST_NAME ${CMAKE_PROJECT_NAME}-${VERSION}-vc)
DRC7175e512013-04-23 22:29:00 +0000453 set(INST_REG_NAME ${CMAKE_PROJECT_NAME})
DRC2c0a4e12010-10-16 08:51:43 +0000454elseif(MINGW)
455 set(INST_PLATFORM GCC)
DRCb94f2de2011-03-22 09:31:25 +0000456 set(INST_NAME ${CMAKE_PROJECT_NAME}-${VERSION}-gcc)
DRC7175e512013-04-23 22:29:00 +0000457 set(INST_REG_NAME ${CMAKE_PROJECT_NAME}-gcc)
DRC2c0a4e12010-10-16 08:51:43 +0000458 set(INST_DEFS -DGCC)
459endif()
460
461if(64BIT)
462 set(INST_PLATFORM "${INST_PLATFORM} 64-bit")
463 set(INST_NAME ${INST_NAME}64)
DRC7175e512013-04-23 22:29:00 +0000464 set(INST_REG_NAME ${INST_DIR}64)
DRC2c0a4e12010-10-16 08:51:43 +0000465 set(INST_DEFS ${INST_DEFS} -DWIN64)
466endif()
467
DRC957d6232011-04-01 11:13:11 +0000468if(WITH_JAVA)
469 set(INST_DEFS ${INST_DEFS} -DJAVA)
470endif()
471
DRC2c0a4e12010-10-16 08:51:43 +0000472if(MSVC_IDE)
DRC926e01f2011-04-06 06:35:38 +0000473 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=${CMAKE_CFG_INTDIR}\\")
DRC2c0a4e12010-10-16 08:51:43 +0000474else()
475 set(INST_DEFS ${INST_DEFS} "-DBUILDDIR=")
476endif()
477
DRC7175e512013-04-23 22:29:00 +0000478STRING(REGEX REPLACE "/" "\\\\" INST_DIR ${CMAKE_INSTALL_PREFIX})
479
DRC2c0a4e12010-10-16 08:51:43 +0000480configure_file(release/libjpeg-turbo.nsi.in libjpeg-turbo.nsi @ONLY)
481
DRC7175e512013-04-23 22:29:00 +0000482if(WITH_JAVA)
483 set(JAVA_DEPEND java)
484endif()
DRC2c0a4e12010-10-16 08:51:43 +0000485add_custom_target(installer
486 makensis -nocd ${INST_DEFS} libjpeg-turbo.nsi
DRCb94f2de2011-03-22 09:31:25 +0000487 DEPENDS jpeg jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom
DRC7175e512013-04-23 22:29:00 +0000488 cjpeg djpeg jpegtran tjbench ${JAVA_DEPEND}
DRC2c0a4e12010-10-16 08:51:43 +0000489 SOURCES libjpeg-turbo.nsi)
DRC7284c9a2010-10-16 21:55:14 +0000490
DRC3185cb92011-05-25 03:52:22 +0000491install(TARGETS jpeg-static turbojpeg turbojpeg-static rdjpgcom wrjpgcom tjbench
DRC7284c9a2010-10-16 21:55:14 +0000492 ARCHIVE DESTINATION lib
493 LIBRARY DESTINATION lib
494 RUNTIME DESTINATION bin
495)
496
DRCa1647c82012-02-10 00:39:05 +0000497install(FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/README-turbo.txt
498 ${CMAKE_SOURCE_DIR}/example.c ${CMAKE_SOURCE_DIR}/libjpeg.txt
499 ${CMAKE_SOURCE_DIR}/structure.txt ${CMAKE_SOURCE_DIR}/usage.txt
500 ${CMAKE_SOURCE_DIR}/wizard.txt
DRC7284c9a2010-10-16 21:55:14 +0000501 DESTINATION doc)
DRCe2befde2010-10-17 07:28:08 +0000502
503install(FILES ${CMAKE_BINARY_DIR}/jconfig.h ${CMAKE_SOURCE_DIR}/jerror.h
504 ${CMAKE_SOURCE_DIR}/jmorecfg.h ${CMAKE_SOURCE_DIR}/jpeglib.h
505 ${CMAKE_SOURCE_DIR}/turbojpeg.h DESTINATION include)