diff options
-rw-r--r-- | src/3rdparty/libjpeg/CMakeLists.txt | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/src/3rdparty/libjpeg/CMakeLists.txt b/src/3rdparty/libjpeg/CMakeLists.txt index 6b211e2542..6ceb5e5a1a 100644 --- a/src/3rdparty/libjpeg/CMakeLists.txt +++ b/src/3rdparty/libjpeg/CMakeLists.txt @@ -1,4 +1,4 @@ -set(JPEG16_SOURCES +set(jpeg16_original_sources src/jcapistd.c src/jccolor.c src/jcdiffct.c @@ -15,8 +15,8 @@ set(JPEG16_SOURCES src/jdsample.c src/jutils.c) -set(JPEG12_SOURCES - ${JPEG16_SOURCES} +set(jpeg12_original_sources + ${jpeg16_original_sources} src/jccoefct.c src/jcdctmgr.c src/jdcoefct.c @@ -31,8 +31,8 @@ set(JPEG12_SOURCES src/jquant1.c src/jquant2.c) -set(JPEG_SOURCES - ${JPEG12_SOURCES} +set(jpeg_original_sources + ${jpeg12_original_sources} src/jaricom.c src/jcapimin.c src/jcarith.c @@ -64,11 +64,31 @@ set(JPEG_SOURCES 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} + ${jpeg16_sources} DEFINES BITS_IN_JSAMPLE=16 INCLUDE_DIRECTORIES @@ -81,7 +101,7 @@ qt_internal_add_3rdparty_library(BundledLibjpeg12bits STATIC SKIP_AUTOMOC SOURCES - ${JPEG12_SOURCES} + ${jpeg12_sources} DEFINES BITS_IN_JSAMPLE=12 INCLUDE_DIRECTORIES @@ -96,7 +116,7 @@ qt_internal_add_3rdparty_library(BundledLibjpeg SKIP_AUTOMOC INSTALL SOURCES - ${JPEG_SOURCES} + ${jpeg_sources} $<TARGET_OBJECTS:BundledLibjpeg12bits> $<TARGET_OBJECTS:BundledLibjpeg16bits> INCLUDE_DIRECTORIES |