summaryrefslogtreecommitdiffstats
path: root/src/3rdparty
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-12-14 09:54:33 +0100
committerMichal Klocek <michal.klocek@qt.io>2022-02-19 01:52:32 +0100
commitbe2745e4788cecb0d3122081e3328e4b66923609 (patch)
treebf15fa44c91f82dd9fb1ade44620de3d175deab5 /src/3rdparty
parent6944b4df7bac464eaee8e03ea724db25303fdbc1 (diff)
Install 3rdparty headers for static builds
For static builds we need 3rdparty headers to be installed. Leaf modules like qtwebengine needs 3rdparty libs and header for zlib, freetype, harfbuzz, png, jpeg. Without those the Chromium bundled versions are used, however it might end up badly if qt has already bundled one. Introduce new header only modules with additional arguments for qt_internal_add_module: * EXTERNAL_HEADERS to pick exactly which headers are public * EXTERNAL_HEADERS_DIR to include whole directory preserving the files directory structure Fix qtsync so it keep directory structure for all non-qt modules when syncing headers and do not generate warnings for headers files. Task-number: QTBUG-87154 Task-number: QTBUG-88614 Change-Id: If1c27bf8608791cd4e0a21839d6316a445a96e9f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/3rdparty')
-rw-r--r--src/3rdparty/CMakeLists.txt5
-rw-r--r--src/3rdparty/freetype/CMakeLists.txt13
-rw-r--r--src/3rdparty/harfbuzz-ng/CMakeLists.txt4
-rw-r--r--src/3rdparty/libjpeg/CMakeLists.txt80
-rw-r--r--src/3rdparty/libpng/CMakeLists.txt14
5 files changed, 101 insertions, 15 deletions
diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt
index 56b81bb7af..68113d8bac 100644
--- a/src/3rdparty/CMakeLists.txt
+++ b/src/3rdparty/CMakeLists.txt
@@ -6,6 +6,11 @@ if(QT_FEATURE_gui AND QT_FEATURE_png AND NOT QT_FEATURE_system_png)
endif()
qt_install_3rdparty_library_wrap_config_extra_file(BundledLibpng)
+if(QT_FEATURE_gui AND QT_FEATURE_jpeg AND NOT QT_FEATURE_system_jpeg)
+ add_subdirectory(libjpeg)
+endif()
+qt_install_3rdparty_library_wrap_config_extra_file(BundledLibjpeg)
+
if(QT_FEATURE_gui AND QT_FEATURE_freetype AND NOT QT_FEATURE_system_freetype)
add_subdirectory(freetype)
endif()
diff --git a/src/3rdparty/freetype/CMakeLists.txt b/src/3rdparty/freetype/CMakeLists.txt
index 6a9de38984..73a4d0afec 100644
--- a/src/3rdparty/freetype/CMakeLists.txt
+++ b/src/3rdparty/freetype/CMakeLists.txt
@@ -46,16 +46,13 @@ qt_internal_add_3rdparty_library(BundledFreetype
PUBLIC_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)
-qt_disable_warnings(BundledFreetype)
-qt_set_symbol_visibility_hidden(BundledFreetype)
-#### Keys ignored in scope 1:.:.:freetype.pro:<TRUE>:
-# MODULE_EXT_HEADERS_DIR = "$$PWD/include"
-# OTHER_FILES = "$$PWD/src/autofit/afangles.c" "$$PWD/src/autofit/afglobal.c" "$$PWD/src/autofit/afloader.c" "$$PWD/src/autofit/afmodule.c"
-# QT_FOR_CONFIG = "gui-private"
+qt_internal_add_3rdparty_header_module(FreetypePrivate
+ EXTERNAL_HEADERS_DIR include
+)
-## Scopes:
-#####################################################################
+qt_disable_warnings(BundledFreetype)
+qt_set_symbol_visibility_hidden(BundledFreetype)
qt_internal_extend_target(BundledFreetype CONDITION WIN32
SOURCES
diff --git a/src/3rdparty/harfbuzz-ng/CMakeLists.txt b/src/3rdparty/harfbuzz-ng/CMakeLists.txt
index 45eeb89f6b..0f7632dbba 100644
--- a/src/3rdparty/harfbuzz-ng/CMakeLists.txt
+++ b/src/3rdparty/harfbuzz-ng/CMakeLists.txt
@@ -170,3 +170,7 @@ qt_internal_extend_target(BundledHarfbuzz CONDITION SHAPERS_ISEMPTY OR SHAPERS__
DEFINES
HAVE_FALLBACK
)
+
+qt_internal_add_3rdparty_header_module(HarfbuzzPrivate
+ EXTERNAL_HEADERS_DIR include
+)
diff --git a/src/3rdparty/libjpeg/CMakeLists.txt b/src/3rdparty/libjpeg/CMakeLists.txt
new file mode 100644
index 0000000000..98da2d9668
--- /dev/null
+++ b/src/3rdparty/libjpeg/CMakeLists.txt
@@ -0,0 +1,80 @@
+qt_internal_add_3rdparty_library(BundledLibjpeg
+ QMAKE_LIB_NAME libjpeg
+ STATIC
+ 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
+ INCLUDE_DIRECTORIES
+ src
+ PUBLIC_INCLUDE_DIRECTORIES
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
+)
+
+qt_internal_add_3rdparty_header_module(JpegPrivate
+ EXTERNAL_HEADERS
+ src/jpeglib.h
+ src/jerror.h
+)
+
+qt_disable_warnings(BundledLibjpeg)
+qt_set_symbol_visibility_hidden(BundledLibjpeg)
+
+qt_internal_extend_target(BundledLibjpeg CONDITION MSVC
+ DEFINES
+ _CRT_SECURE_NO_WARNINGS
+)
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU"
+ OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"
+ OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ target_compile_options(BundledLibjpeg PRIVATE "-Wno-unused-parameter")
+endif()
+
diff --git a/src/3rdparty/libpng/CMakeLists.txt b/src/3rdparty/libpng/CMakeLists.txt
index 637ebcf548..0d98842757 100644
--- a/src/3rdparty/libpng/CMakeLists.txt
+++ b/src/3rdparty/libpng/CMakeLists.txt
@@ -30,15 +30,15 @@ qt_internal_add_3rdparty_library(BundledLibpng
PUBLIC_INCLUDE_DIRECTORIES
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
)
-qt_disable_warnings(BundledLibpng)
-qt_set_symbol_visibility_hidden(BundledLibpng)
-#### Keys ignored in scope 1:.:.:libpng.pro:<TRUE>:
-# MODULE_EXT_HEADERS = "png.h" "pngconf.h"
-# TR_EXCLUDE = "$$PWD/*"
+qt_internal_add_3rdparty_header_module(PngPrivate
+ EXTERNAL_HEADERS
+ png.h
+ pngconf.h
+)
-## Scopes:
-#####################################################################
+qt_disable_warnings(BundledLibpng)
+qt_set_symbol_visibility_hidden(BundledLibpng)
qt_internal_extend_target(BundledLibpng CONDITION QT_FEATURE_system_zlib
LIBRARIES