diff options
author | Michal Klocek <michal.klocek@qt.io> | 2021-12-14 09:54:33 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2022-02-19 01:52:32 +0100 |
commit | be2745e4788cecb0d3122081e3328e4b66923609 (patch) | |
tree | bf15fa44c91f82dd9fb1ade44620de3d175deab5 /src/3rdparty | |
parent | 6944b4df7bac464eaee8e03ea724db25303fdbc1 (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.txt | 5 | ||||
-rw-r--r-- | src/3rdparty/freetype/CMakeLists.txt | 13 | ||||
-rw-r--r-- | src/3rdparty/harfbuzz-ng/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/3rdparty/libjpeg/CMakeLists.txt | 80 | ||||
-rw-r--r-- | src/3rdparty/libpng/CMakeLists.txt | 14 |
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 |