1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
|
if(NOT DEFINED CMAKE_MINIMUM_REQUIRED_VERSION)
cmake_minimum_required(VERSION 2.8.7)
endif()
if(NOT JPEG_NAMESPACE)
set(JPEG_NAMESPACE "JPEG")
set(JPEG_STANDALONE 1)
set(JPEG_INSTALL_BIN_DIR bin)
set(JPEG_INSTALL_LIB_DIR lib)
set(JPEG_INSTALL_INCLUDE_DIR include/ljpeg-62)
option(JPEG_BUILD_SHARED_LIBS "Build IJG/JPEG with shared libraries." OFF)
set(BUILD_SHARED_LIBS ${JPEG_BUILD_SHARED_LIBS})
endif()
# In all cases:
string(TOLOWER ${JPEG_NAMESPACE} JPEG_LIBRARY_NAME)
project(${JPEG_NAMESPACE} C)
foreach(p
CMP0042
CMP0063
)
if(POLICY ${p})
cmake_policy(SET ${p} NEW)
endif()
endforeach()
# Do full dependency headers.
include_regular_expression("^.*$")
# let advanced user the option to define JPEG_API_VERSION:
if(NOT DEFINED JPEG_API_VERSION)
set(JPEG_API_VERSION "${GDCM_MAJOR_VERSION}.${GDCM_MINOR_VERSION}")
endif()
set(JPEG_LIBRARY_PROPERTIES ${JPEG_LIBRARY_PROPERTIES}
VERSION "${GDCM_VERSION}"
SOVERSION "${JPEG_API_VERSION}"
)
# memmgr back ends: compile only one of these into a working library
# (For now, let's use the mode that requires the image fit into memory.
# This is the recommended mode for Win32 anyway.)
set(systemdependent_SRCS jmemnobs.c)
# library object files common to compression and decompression
set(common_SRCS
jcomapi.c jutils.c jerror.c jmemmgr.c
#jmemsrc.c
)
# compression library object files
set(compression_SRCS
jcapimin.c jcapistd.c jctrans.c jcparam.c jcinit.c
jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
jcsample.c jchuff.c jcphuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
jdatadst.c
)
# Lossy (DCT) codec:
set(comp_lossy_SRCS
jfdctint.c
jclossy.c
# lossless
jclossls.c
#jdarith.c
jcodec.c
jcscale.c
jcshuff.c
jclhuff.c
jcpred.c
jcdiffct.c
)
# decompression library object files
set(decompression_SRCS
jdapimin.c jdapistd.c jdtrans.c jdmaster.c
jdinput.c jdmarker.c jdhuff.c jdphuff.c jdmainct.c jdcoefct.c
jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c jidctred.c
jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c
jdatasrc.c
)
set(decomp_lossy_SRCS
jdlossls.c jdlossy.c
#jcarith.c
jdlhuff.c
jddiffct.c
jdpred.c
jdscale.c
jdshuff.c
)
set(JPEG_HEADER_FILES
jchuff.h
jdct.h
jdhuff.h
jerror.h
jinclude.h
jmemsys.h
jmorecfg.h
jpegint.h
jpeglib.h
jversion.h
jlossy.h
jlossls.h
)
set(JPEG_SOURCES)
foreach(src
${systemdependent_SRCS}
${common_SRCS}
${compression_SRCS}
${decompression_SRCS}
${comp_lossy_SRCS}
${decomp_lossy_SRCS}
)
set(JPEG_SOURCES ${JPEG_SOURCES}
"${CMAKE_CURRENT_SOURCE_DIR}/${src}")
endforeach()
if (BUILD_SHARED_LIBS)
set(JPEGDLL 1)
else ()
set(JPEGSTATIC 1)
endif ()
# Generate three libraries: jpeg 8bits, 12bits and 16bits
# using only one source directory
#-----------------------------------------------------------------------------
include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
CHECK_INCLUDE_FILE("stddef.h" HAVE_STDDEF_H)
CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_H)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Particular case jpegcmake.h needs to be specified either 8, 12 or 16 bits:
# also configure the name mangling
foreach(bits 8 12 16)
set(CMAKE_BITS_IN_JSAMPLE ${bits})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jpegcmake.h.in
${CMAKE_CURRENT_BINARY_DIR}/${bits}/jpegcmake.h
@ONLY)
set(MANGLE_PREFIX ${JPEG_LIBRARY_NAME}${bits})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mangle_jpeg.h.in
${CMAKE_CURRENT_BINARY_DIR}/${bits}/mangle_jpeg${bits}bits.h
@ONLY)
# FIXME FIXME FIXME
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h
${CMAKE_CURRENT_BINARY_DIR}/${bits}/jmorecfg.h
COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jconfig.h
${CMAKE_CURRENT_BINARY_DIR}/${bits}/jconfig.h
COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h
${CMAKE_CURRENT_BINARY_DIR}/${bits}/jpeglib.h
COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jerror.h
${CMAKE_CURRENT_BINARY_DIR}/${bits}/jerror.h
COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jinclude.h
${CMAKE_CURRENT_BINARY_DIR}/${bits}/jinclude.h
COPYONLY)
endforeach()
# I could not get the depencencies in CMake to work properly so instead
# have multiple directory for each target that will ensure proper recompilation
# of the objects files
add_subdirectory(8)
add_subdirectory(12)
add_subdirectory(16)
if(NOT JPEG_INSTALL_NO_DEVELOPMENT)
file(GLOB header_files "*.h")
install(FILES ${header_files}
DESTINATION ${JPEG_INSTALL_INCLUDE_DIR} COMPONENT Headers
)
endif()
|