Parker Schuh | ebf887e | 2016-01-10 18:04:04 -0800 | [diff] [blame] | 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.8 ) |
| 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 ) |
| 15 | #improve? see jconfig.* |
| 16 | set ( TWO_FILE_COMMANDLINE true ) |
| 17 | # jconfig.h |
| 18 | endif ( ) |
| 19 | configure_file ( jconfig.h.cmake jconfig.h ) |
| 20 | |
| 21 | include_directories ( ${CMAKE_CURRENT_BINARY_DIR} ) |
| 22 | # jconfig.h |
| 23 | |
| 24 | set ( HEADERS jerror.h jmorecfg.h jpeglib.h ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h ) |
| 25 | |
| 26 | set ( SRC jmemnobs.c jaricom.c jcapimin.c jcapistd.c jcarith.c jccoefct.c jccolor.c |
| 27 | jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c |
| 28 | jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdarith.c jdatadst.c jdatasrc.c |
| 29 | jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c |
| 30 | jdmerge.c jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c |
| 31 | jidctflt.c jidctfst.c jidctint.c jquant1.c jquant2.c jutils.c jmemmgr.c cderror.h |
| 32 | cdjpeg.h jdct.h jinclude.h jmemsys.h jpegint.h jversion.h transupp.h ) |
| 33 | |
| 34 | add_library ( jpeg ${SRC} ${HEADERS} ) |
| 35 | |
| 36 | add_executable ( cjpeg cdjpeg.c cjpeg.c rdbmp.c rdgif.c rdppm.c rdrle.c rdtarga.c |
| 37 | rdswitch.c ) |
| 38 | add_executable ( djpeg cdjpeg.c djpeg.c wrbmp.c wrgif.c wrppm.c wrrle.c wrtarga.c |
| 39 | rdcolmap.c ) |
| 40 | add_executable ( jpegtran jpegtran.c cdjpeg.c rdswitch.c transupp.c ) |
| 41 | add_executable ( rdjpgcom rdjpgcom.c ) |
| 42 | add_executable ( wrjpgcom wrjpgcom.c ) |
| 43 | target_link_libraries ( cjpeg jpeg ) |
| 44 | target_link_libraries ( djpeg jpeg ) |
| 45 | target_link_libraries ( jpegtran jpeg ) |
| 46 | |
| 47 | install_executable ( cjpeg djpeg jpegtran rdjpgcom wrjpgcom ) |
| 48 | install_library ( jpeg ) |
| 49 | install_header ( ${HEADERS} ) |
| 50 | install_doc ( README install.txt usage.txt wizard.txt example.c libjpeg.txt structure.txt |
| 51 | coderules.txt filelist.txt change.log ) |
| 52 | |
| 53 | # tests |
| 54 | enable_testing ( ) |
| 55 | macro ( mytest name target args input output ) |
| 56 | get_target_property ( _cmdpath ${target} LOCATION ) |
| 57 | add_test ( ${name} ${CMAKE_COMMAND} "-DCOMMAND=${_cmdpath} ${args}" "-DINPUT=${input}" |
| 58 | "-DOUTPUT=${output}" -P ${CMAKE_CURRENT_SOURCE_DIR}/jpeg_test.cmake ) |
| 59 | endmacro ( ) |
| 60 | set ( _src "${CMAKE_CURRENT_SOURCE_DIR}" ) |
| 61 | mytest ( t1 djpeg "-dct int -ppm -outfile testout.ppm ${_src}/testorig.jpg" "${_src}/testimg.ppm" |
| 62 | testout.ppm ) |
| 63 | mytest ( t2 djpeg "-dct int -bmp -colors 256 -outfile testout.bmp ${_src}/testorig.jpg" |
| 64 | ${_src}/testimg.bmp testout.bmp ) |
| 65 | mytest ( t3 cjpeg "-dct int -outfile testout.jpg ${_src}/testimg.ppm" ${_src}/testimg.jpg |
| 66 | testout.jpg ) |
| 67 | mytest ( t4 djpeg "-dct int -ppm -outfile testoutp.ppm ${_src}/testprog.jpg" ${_src}/testimg.ppm |
| 68 | testoutp.ppm ) |
| 69 | mytest ( t5 cjpeg "-dct int -progressive -opt -outfile testoutp.jpg ${_src}/testimg.ppm" |
| 70 | ${_src}/testimgp.jpg testoutp.jpg ) |
| 71 | mytest ( t6 jpegtran "-outfile testoutt.jpg ${_src}/testprog.jpg" ${_src}/testorig.jpg |
| 72 | testoutt.jpg ) |