summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/3rdparty/libjpeg/CMakeLists.txt36
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