You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
3.4 KiB
87 lines
3.4 KiB
# Copyright (C) 2007-2012 LuaDist. |
|
# Created by Peter Kapec, David Manura |
|
# Redistribution and use of this file is allowed according to the terms of the MIT license. |
|
# For details see the COPYRIGHT file distributed with LuaDist. |
|
# Please note that the package source code is licensed under its own license. |
|
|
|
project ( libjpeg C ) |
|
cmake_minimum_required ( VERSION 2.8 ) |
|
include ( cmake/dist.cmake ) |
|
|
|
OPTION(BUILD_STATIC OFF) |
|
OPTION(BUILD_EXECUTABLES ON) |
|
OPTION(BUILD_TESTS ON) |
|
|
|
include ( CheckIncludeFile ) |
|
check_include_file ( stddef.h HAVE_STDDEF_H ) |
|
check_include_file ( stdlib.h HAVE_STDLIB_H ) |
|
if ( WIN32 AND NOT CYGWIN ) |
|
#improve? see jconfig.* |
|
set ( TWO_FILE_COMMANDLINE true ) |
|
# jconfig.h |
|
endif ( ) |
|
configure_file ( jconfig.h.cmake jconfig.h ) |
|
|
|
include_directories ( ${CMAKE_CURRENT_BINARY_DIR} ) |
|
# jconfig.h |
|
|
|
set ( HEADERS jerror.h jmorecfg.h jpeglib.h ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h ) |
|
|
|
set ( SRC jmemnobs.c jaricom.c jcapimin.c jcapistd.c jcarith.c jccoefct.c jccolor.c |
|
jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c |
|
jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdarith.c jdatadst.c jdatasrc.c |
|
jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c |
|
jdmerge.c jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c |
|
jidctflt.c jidctfst.c jidctint.c jquant1.c jquant2.c jutils.c jmemmgr.c cderror.h |
|
cdjpeg.h jdct.h jinclude.h jmemsys.h jpegint.h jversion.h transupp.h ) |
|
|
|
if ( BUILD_STATIC ) |
|
add_library ( jpeg STATIC ${SRC} ${HEADERS} ) |
|
else () |
|
add_library ( jpeg ${SRC} ${HEADERS} ) |
|
endif() |
|
|
|
if ( BUILD_EXECUTABLES ) |
|
add_executable ( cjpeg cdjpeg.c cjpeg.c rdbmp.c rdgif.c rdppm.c rdrle.c rdtarga.c |
|
rdswitch.c ) |
|
add_executable ( djpeg cdjpeg.c djpeg.c wrbmp.c wrgif.c wrppm.c wrrle.c wrtarga.c |
|
rdcolmap.c ) |
|
add_executable ( jpegtran jpegtran.c cdjpeg.c rdswitch.c transupp.c ) |
|
add_executable ( rdjpgcom rdjpgcom.c ) |
|
add_executable ( wrjpgcom wrjpgcom.c ) |
|
target_link_libraries ( cjpeg jpeg ) |
|
target_link_libraries ( djpeg jpeg ) |
|
target_link_libraries ( jpegtran jpeg ) |
|
endif () |
|
|
|
if ( BUILD_EXECUTABLES ) |
|
install_executable ( cjpeg djpeg jpegtran rdjpgcom wrjpgcom ) |
|
endif () |
|
|
|
install_library ( jpeg ) |
|
install_header ( ${HEADERS} ) |
|
install_doc ( README install.txt usage.txt wizard.txt example.c libjpeg.txt structure.txt |
|
coderules.txt filelist.txt change.log ) |
|
|
|
if ( BUILD_TESTS ) |
|
# tests |
|
enable_testing ( ) |
|
macro ( mytest name target args input output ) |
|
get_target_property ( _cmdpath ${target} LOCATION ) |
|
add_test ( ${name} ${CMAKE_COMMAND} "-DCOMMAND=${_cmdpath} ${args}" "-DINPUT=${input}" |
|
"-DOUTPUT=${output}" -P ${CMAKE_CURRENT_SOURCE_DIR}/jpeg_test.cmake ) |
|
endmacro ( ) |
|
set ( _src "${CMAKE_CURRENT_SOURCE_DIR}" ) |
|
mytest ( t1 djpeg "-dct int -ppm -outfile testout.ppm ${_src}/testorig.jpg" "${_src}/testimg.ppm" |
|
testout.ppm ) |
|
mytest ( t2 djpeg "-dct int -bmp -colors 256 -outfile testout.bmp ${_src}/testorig.jpg" |
|
${_src}/testimg.bmp testout.bmp ) |
|
mytest ( t3 cjpeg "-dct int -outfile testout.jpg ${_src}/testimg.ppm" ${_src}/testimg.jpg |
|
testout.jpg ) |
|
mytest ( t4 djpeg "-dct int -ppm -outfile testoutp.ppm ${_src}/testprog.jpg" ${_src}/testimg.ppm |
|
testoutp.ppm ) |
|
mytest ( t5 cjpeg "-dct int -progressive -opt -outfile testoutp.jpg ${_src}/testimg.ppm" |
|
${_src}/testimgp.jpg testoutp.jpg ) |
|
mytest ( t6 jpegtran "-outfile testoutt.jpg ${_src}/testprog.jpg" ${_src}/testorig.jpg |
|
testoutt.jpg ) |
|
endif () |