1# -*-mode:sh-*-
2# Qt image handling
3
4# Qt kernel module
5
6HEADERS += \
7        image/qbitmap.h \
8        image/qimage.h \
9        image/qimage_p.h \
10        image/qimageiohandler.h \
11        image/qimagereader.h \
12        image/qimagereaderwriterhelpers_p.h \
13        image/qimagewriter.h \
14        image/qpaintengine_pic_p.h \
15        image/qpicture.h \
16        image/qpicture_p.h \
17        image/qpictureformatplugin.h \
18        image/qpixmap.h \
19        image/qpixmap_raster_p.h \
20        image/qpixmap_blitter_p.h \
21        image/qpixmapcache.h \
22        image/qpixmapcache_p.h \
23        image/qplatformpixmap.h \
24        image/qimagepixmapcleanuphooks_p.h \
25        image/qicon.h \
26        image/qicon_p.h \
27        image/qiconloader_p.h \
28        image/qiconengine.h \
29        image/qiconengineplugin.h \
30
31SOURCES += \
32        image/qbitmap.cpp \
33        image/qimage.cpp \
34        image/qimage_conversions.cpp \
35        image/qimageiohandler.cpp \
36        image/qimagereader.cpp \
37        image/qimagereaderwriterhelpers.cpp \
38        image/qimagewriter.cpp \
39        image/qpaintengine_pic.cpp \
40        image/qpicture.cpp \
41        image/qpictureformatplugin.cpp \
42        image/qpixmap.cpp \
43        image/qpixmapcache.cpp \
44        image/qplatformpixmap.cpp \
45        image/qpixmap_raster.cpp \
46        image/qpixmap_blitter.cpp \
47        image/qimagepixmapcleanuphooks.cpp \
48        image/qicon.cpp \
49        image/qiconloader.cpp \
50        image/qiconengine.cpp \
51        image/qiconengineplugin.cpp \
52
53qtConfig(movie) {
54    HEADERS += image/qmovie.h
55    SOURCES += image/qmovie.cpp
56}
57
58win32:!winrt: SOURCES += image/qpixmap_win.cpp
59
60darwin: OBJECTIVE_SOURCES += image/qimage_darwin.mm
61
62NO_PCH_SOURCES += image/qimage_compat.cpp
63false: SOURCES += $$NO_PCH_SOURCES # Hack for QtCreator
64
65# Built-in image format support
66HEADERS += \
67        image/qbmphandler_p.h \
68        image/qppmhandler_p.h \
69        image/qxbmhandler_p.h \
70        image/qxpmhandler_p.h
71
72SOURCES += \
73        image/qbmphandler.cpp \
74        image/qppmhandler.cpp \
75        image/qxbmhandler.cpp \
76        image/qxpmhandler.cpp
77
78qtConfig(png) {
79    HEADERS += image/qpnghandler_p.h
80    SOURCES += image/qpnghandler.cpp
81    QMAKE_USE_PRIVATE += libpng
82
83    win32:mingw {
84      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86048
85      GCC_VERSION = "$${QMAKE_GCC_MAJOR_VERSION}.$${QMAKE_GCC_MINOR_VERSION}.$${QMAKE_GCC_PATCH_VERSION}"
86      equals(GCC_VERSION, "8.1.0") {
87        QMAKE_CXXFLAGS += -fno-reorder-blocks-and-partition
88      }
89    }
90}
91
92# SIMD
93!android {
94    SSSE3_SOURCES += image/qimage_ssse3.cpp
95    NEON_SOURCES += image/qimage_neon.cpp
96    MIPS_DSPR2_SOURCES += image/qimage_mips_dspr2.cpp
97    MIPS_DSPR2_ASM += image/qimage_mips_dspr2_asm.S
98} else {
99    # see https://developer.android.com/ndk/guides/abis
100    arm64-v8a | armeabi-v7a {
101        SOURCES += image/qimage_neon.cpp
102    }
103    x86 | x86_64 {
104        DEFINES += QT_COMPILER_SUPPORTS_SSE2 QT_COMPILER_SUPPORTS_SSE3 QT_COMPILER_SUPPORTS_SSSE3
105        SOURCES += image/qimage_ssse3.cpp
106    }
107}
108