diff options
Diffstat (limited to 'src/3rdparty/libjpeg/CMakeLists.txt')
-rw-r--r-- | src/3rdparty/libjpeg/CMakeLists.txt | 170 |
1 files changed, 120 insertions, 50 deletions
diff --git a/src/3rdparty/libjpeg/CMakeLists.txt b/src/3rdparty/libjpeg/CMakeLists.txt index 8ac9110563..6ceb5e5a1a 100644 --- a/src/3rdparty/libjpeg/CMakeLists.txt +++ b/src/3rdparty/libjpeg/CMakeLists.txt @@ -1,58 +1,124 @@ +set(jpeg16_original_sources + src/jcapistd.c + src/jccolor.c + src/jcdiffct.c + src/jclossls.c + src/jcmainct.c + src/jcprepct.c + src/jcsample.c + src/jdapistd.c + src/jdcolor.c + src/jddiffct.c + src/jdlossls.c + src/jdmainct.c + src/jdpostct.c + src/jdsample.c + src/jutils.c) + +set(jpeg12_original_sources + ${jpeg16_original_sources} + src/jccoefct.c + src/jcdctmgr.c + src/jdcoefct.c + src/jddctmgr.c + src/jdmerge.c + src/jfdctfst.c + src/jfdctint.c + src/jidctflt.c + src/jidctfst.c + src/jidctint.c + src/jidctred.c + src/jquant1.c + src/jquant2.c) + +set(jpeg_original_sources + ${jpeg12_original_sources} + src/jaricom.c + src/jcapimin.c + src/jcarith.c + src/jchuff.c + src/jcicc.c + src/jcinit.c + src/jclhuff.c + src/jcmarker.c + src/jcmaster.c + src/jcomapi.c + src/jcparam.c + src/jcphuff.c + src/jctrans.c + src/jdapimin.c + src/jdarith.c + src/jdatadst.c + src/jdatasrc.c + src/jdhuff.c + src/jdicc.c + src/jdinput.c + src/jdlhuff.c + src/jdmarker.c + src/jdmaster.c + src/jdphuff.c + src/jdtrans.c + src/jerror.c + src/jfdctflt.c + src/jmemmgr.c + src/jmemnobs.c + src/jpeg_nbits.c) + +# Make copies of the source files for the different bit counts, so that all the object file names +# are unique in the static archive. This avoids duplicate warnings for certain linkers and debug +# info extractors (like Apple's ld and dsymutil). +function(qt_internal_copy_jpeg_sources in_sources infix out_var) + set(jpeg_sources "") + foreach(src_file ${in_sources}) + get_filename_component(src_file_name "${src_file}" NAME_WLE) + get_filename_component(src_file_extension "${src_file}" LAST_EXT) + set(dest_path "${CMAKE_CURRENT_BINARY_DIR}/${src_file_name}${infix}${src_file_extension}") + configure_file(${src_file} "${dest_path}" COPYONLY) + message(DEBUG "Copying jpeg source file ${src_file} to ${dest_path}.") + list(APPEND jpeg_sources "${dest_path}") + endforeach() + set(${out_var} "${jpeg_sources}" PARENT_SCOPE) +endfunction() + +qt_internal_copy_jpeg_sources("${jpeg16_original_sources}" "_16" jpeg16_sources) +qt_internal_copy_jpeg_sources("${jpeg12_original_sources}" "_12" jpeg12_sources) +qt_internal_copy_jpeg_sources("${jpeg_original_sources}" "" jpeg_sources) + +qt_internal_add_3rdparty_library(BundledLibjpeg16bits + STATIC + SKIP_AUTOMOC + SOURCES + ${jpeg16_sources} + DEFINES + BITS_IN_JSAMPLE=16 + INCLUDE_DIRECTORIES + src + PUBLIC_INCLUDE_DIRECTORIES + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> +) + +qt_internal_add_3rdparty_library(BundledLibjpeg12bits + STATIC + SKIP_AUTOMOC + SOURCES + ${jpeg12_sources} + DEFINES + BITS_IN_JSAMPLE=12 + INCLUDE_DIRECTORIES + src + PUBLIC_INCLUDE_DIRECTORIES + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> +) + qt_internal_add_3rdparty_library(BundledLibjpeg QMAKE_LIB_NAME libjpeg STATIC + SKIP_AUTOMOC INSTALL SOURCES - src/jaricom.c - src/jcapimin.c - src/jcapistd.c - src/jcarith.c - src/jccoefct.c - src/jccolor.c - src/jcdctmgr.c - src/jchuff.c - src/jcinit.c - src/jcmainct.c - src/jcmarker.c - src/jcmaster.c - src/jcomapi.c - src/jcparam.c - src/jcphuff.c - src/jcprepct.c - src/jcsample.c - src/jctrans.c - src/jdapimin.c - src/jdapistd.c - src/jdarith.c - src/jdatadst.c - src/jdatasrc.c - src/jdcoefct.c - src/jdcolor.c - src/jddctmgr.c - src/jdhuff.c - src/jdinput.c - src/jdmainct.c - src/jdmarker.c - src/jdmaster.c - src/jdmerge.c - src/jdphuff.c - src/jdpostct.c - src/jdsample.c - src/jdtrans.c - src/jerror.c - src/jfdctflt.c - src/jfdctfst.c - src/jfdctint.c - src/jidctflt.c - src/jidctfst.c - src/jidctint.c - src/jidctred.c - src/jmemmgr.c - src/jmemnobs.c - src/jquant1.c - src/jquant2.c - src/jsimd_none.c - src/jutils.c + ${jpeg_sources} + $<TARGET_OBJECTS:BundledLibjpeg12bits> + $<TARGET_OBJECTS:BundledLibjpeg16bits> INCLUDE_DIRECTORIES src PUBLIC_INCLUDE_DIRECTORIES @@ -68,7 +134,11 @@ qt_internal_add_3rdparty_header_module(JpegPrivate ) qt_disable_warnings(BundledLibjpeg) +qt_disable_warnings(BundledLibjpeg12bits) +qt_disable_warnings(BundledLibjpeg16bits) qt_set_symbol_visibility_hidden(BundledLibjpeg) +qt_set_symbol_visibility_hidden(BundledLibjpeg12bits) +qt_set_symbol_visibility_hidden(BundledLibjpeg16bits) qt_internal_extend_target(BundledLibjpeg CONDITION MSVC DEFINES |