|
1 | | - |
2 | | -PROJECT(libjpeg C) |
3 | | -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) |
4 | | -INCLUDE(dist.cmake) |
5 | | - |
6 | | -# generating config.h file: |
7 | | -MESSAGE("Configure: JPEG - generating jconfig.h:") |
8 | | - INCLUDE(CheckIncludeFile) |
9 | | - |
10 | | - CHECK_INCLUDE_FILE(stddef.h HAVE_STDDEF_H) |
11 | | - CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H) |
12 | | - |
13 | | - IF(WIN32) |
14 | | - # This is for jpeg binaries and is #defined in jconfig.h |
15 | | - SET(TWO_FILE_COMMANDLINE true) |
16 | | - ENDIF() |
17 | | - |
18 | | - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/jconfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h) |
19 | | - |
20 | | -MESSAGE("Configure: JPEG - done.") |
21 | | -# end of generating jconfig.h file: |
22 | | - |
23 | | - |
24 | | -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) |
25 | | - |
26 | | -IF(MSVC) |
27 | | - SET(CMAKE_DEBUG_POSTFIX "D") |
28 | | -ENDIF() |
29 | | - |
30 | | -SET(JPEG_PUBLIC_HDRS |
31 | | - jerror.h |
32 | | - jmorecfg.h |
33 | | - jpeglib.h |
34 | | - ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h |
35 | | -) |
36 | | -SET(JPEG_PRIVATE_HDRS |
37 | | - cderror.h |
38 | | - cdjpeg.h |
39 | | - jdct.h |
40 | | - jinclude.h |
41 | | - jmemsys.h |
42 | | - jpegint.h |
43 | | - jversion.h |
44 | | - transupp.h |
| 1 | +# Copyright (C) 2007-2012 LuaDist. |
| 2 | +# Created by Peter Kapec, David Manura |
| 3 | +# Redistribution and use of this file is allowed according to the terms of the MIT license. |
| 4 | +# For details see the COPYRIGHT file distributed with LuaDist. |
| 5 | +# Please note that the package source code is licensed under its own license. |
| 6 | + |
| 7 | +project(libjpeg C) |
| 8 | +cmake_minimum_required(VERSION 2.6) |
| 9 | +include(cmake/dist.cmake) |
| 10 | + |
| 11 | +include(CheckIncludeFile) |
| 12 | +check_include_file(stddef.h HAVE_STDDEF_H) |
| 13 | +check_include_file(stdlib.h HAVE_STDLIB_H) |
| 14 | +if(WIN32 AND NOT CYGWIN) #improve? see jconfig.* |
| 15 | + set(TWO_FILE_COMMANDLINE true) # jconfig.h |
| 16 | +endif() |
| 17 | +configure_file(jconfig.h.cmake jconfig.h) |
| 18 | + |
| 19 | +include_directories(${CMAKE_CURRENT_BINARY_DIR}) # jconfig.h |
| 20 | + |
| 21 | +set(HEADERS |
| 22 | + jerror.h |
| 23 | + jmorecfg.h |
| 24 | + jpeglib.h |
| 25 | + ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h |
45 | 26 | ) |
46 | 27 |
|
47 | | -# memmgr back ends: compile only one of these into a working library |
48 | | -# (For now, let's use the mode that requires the image fit into memory. |
49 | | -# This is the recommended mode for Win32 anyway.) |
50 | | -SET(JPEG_systemdependent_SRCS jmemnobs.c) |
51 | | - |
52 | | -SET(JPEG_SRCS |
53 | | - jaricom.c jcapimin.c jcapistd.c jcarith.c jccoefct.c jccolor.c |
54 | | - jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c |
55 | | - jcomapi.c jcparam.c jcprepct.c jcsample.c jctrans.c jdapimin.c |
56 | | - jdapistd.c jdarith.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c |
57 | | - jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c |
58 | | - jdmerge.c jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c |
59 | | - jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jquant1.c |
60 | | - jquant2.c jutils.c jmemmgr.c) |
61 | | - |
62 | | -ADD_LIBRARY(jpeg SHARED ${JPEG_systemdependent_SRCS} ${JPEG_SRCS} ${JPEG_PUBLIC_HDRS} ${JPEG_PRIVATE_HDRS}) |
63 | | -#~ SET_TARGET_PROPERTIES(jpeg PROPERTIES VERSION 7.0.0) |
64 | | -#~ SET_TARGET_PROPERTIES(jpeg PROPERTIES SOVERSION 7) |
65 | | - |
66 | | -if(WIN32 AND BUILD_SHARED_LIBS) |
67 | | - # We add JPEG_DLL only to building of this target because bad things |
68 | | - # happen if it's enabled on all binary targets owing to the macros |
69 | | - # defined in jmorecfg.h |
70 | | - SET_TARGET_PROPERTIES(jpeg PROPERTIES COMPILE_FLAGS -DJPEG_DLL) |
71 | | -ENDIF() |
72 | | - |
73 | | - |
74 | | -#~ SET(JPEG_MANPAGES cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1) |
75 | | - |
76 | | -ADD_EXECUTABLE(cjpeg cjpeg.c rdppm.c rdgif.c rdtarga.c rdrle.c rdbmp.c rdswitch.c cdjpeg.c) |
77 | | -TARGET_LINK_LIBRARIES(cjpeg jpeg) |
78 | | - |
79 | | -ADD_EXECUTABLE(djpeg djpeg.c wrppm.c wrgif.c wrtarga.c wrrle.c wrbmp.c rdcolmap.c cdjpeg.c) |
80 | | -TARGET_LINK_LIBRARIES(djpeg jpeg) |
81 | | - |
82 | | -ADD_EXECUTABLE(jpegtran jpegtran.c rdswitch.c cdjpeg.c transupp.c) |
83 | | -TARGET_LINK_LIBRARIES(jpegtran jpeg) |
84 | | - |
85 | | -ADD_EXECUTABLE(rdjpgcom rdjpgcom.c) |
86 | | -ADD_EXECUTABLE(wrjpgcom wrjpgcom.c) |
87 | | - |
| 28 | +set(SRC |
| 29 | + jmemnobs.c |
| 30 | + jaricom.c |
| 31 | + jcapimin.c |
| 32 | + jcapistd.c |
| 33 | + jcarith.c |
| 34 | + jccoefct.c |
| 35 | + jccolor.c |
| 36 | + jcdctmgr.c |
| 37 | + jchuff.c |
| 38 | + jcinit.c |
| 39 | + jcmainct.c |
| 40 | + jcmarker.c |
| 41 | + jcmaster.c |
| 42 | + jcomapi.c |
| 43 | + jcparam.c |
| 44 | + jcprepct.c |
| 45 | + jcsample.c |
| 46 | + jctrans.c |
| 47 | + jdapimin.c |
| 48 | + jdapistd.c |
| 49 | + jdarith.c |
| 50 | + jdatadst.c |
| 51 | + jdatasrc.c |
| 52 | + jdcoefct.c |
| 53 | + jdcolor.c |
| 54 | + jddctmgr.c |
| 55 | + jdhuff.c |
| 56 | + jdinput.c |
| 57 | + jdmainct.c |
| 58 | + jdmarker.c |
| 59 | + jdmaster.c |
| 60 | + jdmerge.c |
| 61 | + jdpostct.c |
| 62 | + jdsample.c |
| 63 | + jdtrans.c |
| 64 | + jerror.c |
| 65 | + jfdctflt.c |
| 66 | + jfdctfst.c |
| 67 | + jfdctint.c |
| 68 | + jidctflt.c |
| 69 | + jidctfst.c |
| 70 | + jidctint.c |
| 71 | + jquant1.c |
| 72 | + jquant2.c |
| 73 | + jutils.c |
| 74 | + jmemmgr.c |
| 75 | + cderror.h |
| 76 | + cdjpeg.h |
| 77 | + jdct.h |
| 78 | + jinclude.h |
| 79 | + jmemsys.h |
| 80 | + jpegint.h |
| 81 | + jversion.h |
| 82 | + transupp.h |
| 83 | +) |
88 | 84 |
|
89 | | -INSTALL(TARGETS jpeg RUNTIME DESTINATION ${INSTALL_BIN} LIBRARY DESTINATION ${INSTALL_LIB} ARCHIVE DESTINATION ${INSTALL_LIB}) |
90 | | -INSTALL(FILES ${JPEG_PUBLIC_HDRS} DESTINATION ${INSTALL_INC}) |
91 | | -INSTALL(TARGETS cjpeg djpeg jpegtran rdjpgcom wrjpgcom DESTINATION ${INSTALL_BIN}) |
| 85 | +add_library(jpeg SHARED ${SRC} ${HEADERS}) |
| 86 | + |
| 87 | +add_executable(cjpeg cdjpeg.c cjpeg.c rdbmp.c rdgif.c rdppm.c rdrle.c rdtarga.c rdswitch.c) |
| 88 | +add_executable(djpeg cdjpeg.c djpeg.c wrbmp.c wrgif.c wrppm.c wrrle.c wrtarga.c rdcolmap.c) |
| 89 | +add_executable(jpegtran jpegtran.c cdjpeg.c rdswitch.c transupp.c) |
| 90 | +add_executable(rdjpgcom rdjpgcom.c) |
| 91 | +add_executable(wrjpgcom wrjpgcom.c) |
| 92 | +target_link_libraries(cjpeg jpeg) |
| 93 | +target_link_libraries(djpeg jpeg) |
| 94 | +target_link_libraries(jpegtran jpeg) |
| 95 | + |
| 96 | +install_executable(cjpeg djpeg jpegtran rdjpgcom wrjpgcom) |
| 97 | +install_library(jpeg) |
| 98 | +install_header(${JPEG_HEADERS}) |
| 99 | +install_doc( |
| 100 | + README install.txt usage.txt wizard.txt example.c libjpeg.txt |
| 101 | + structure.txt coderules.txt filelist.txt change.log |
| 102 | +) |
92 | 103 |
|
93 | | -INSTALL(FILES |
94 | | - change.log |
95 | | - coderules.txt |
96 | | - filelist.txt |
97 | | - libjpeg.txt |
98 | | - structure.txt |
99 | | - usage.txt |
100 | | - wizard.txt |
101 | | - README |
102 | | - DESTINATION ${INSTALL_DOC}) |
| 104 | +# tests |
| 105 | +enable_testing() |
| 106 | +macro(mytest name target args input output) |
| 107 | + get_target_property ( _cmdpath ${target} LOCATION ) |
| 108 | + add_test(${name} ${CMAKE_COMMAND} |
| 109 | + "-DCOMMAND=${_cmdpath} ${args}" "-DINPUT=${input}" "-DOUTPUT=${output}" |
| 110 | + -P ${CMAKE_CURRENT_SOURCE_DIR}/jpeg_test.cmake) |
| 111 | +endmacro() |
| 112 | +set(_src "${CMAKE_CURRENT_SOURCE_DIR}") |
| 113 | +mytest(t1 djpeg "-dct int -ppm -outfile testout.ppm ${_src}/testorig.jpg" "${_src}/testimg.ppm" testout.ppm) |
| 114 | +mytest(t2 djpeg "-dct int -bmp -colors 256 -outfile testout.bmp ${_src}/testorig.jpg" ${_src}/testimg.bmp testout.bmp) |
| 115 | +mytest(t3 cjpeg "-dct int -outfile testout.jpg ${_src}/testimg.ppm" ${_src}/testimg.jpg testout.jpg) |
| 116 | +mytest(t4 djpeg "-dct int -ppm -outfile testoutp.ppm ${_src}/testprog.jpg" ${_src}/testimg.ppm testoutp.ppm) |
| 117 | +mytest(t5 cjpeg "-dct int -progressive -opt -outfile testoutp.jpg ${_src}/testimg.ppm" ${_src}/testimgp.jpg testoutp.jpg) |
| 118 | +mytest(t6 jpegtran "-outfile testoutt.jpg ${_src}/testprog.jpg" ${_src}/testorig.jpg testoutt.jpg) |
0 commit comments