Add wrapping build of the bundled libjpeg
Similar to how it is done libpng etc. This is a backport from 6.4: it is a partial cherry-pick of be2745e4788cecb0d3122081e3328e4b66923609. This prepares for merging the update to version 3.0.0 of libjpeg-turbo, which includes significant building changes. Change-Id: I7ce0c91c673695bdbc522e125a7d425e799095fe Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
e0540f768e
commit
ed0b4dc994
11
cmake/FindWrapJpeg.cmake
Normal file
11
cmake/FindWrapJpeg.cmake
Normal file
@ -0,0 +1,11 @@
|
||||
include(QtFindWrapHelper NO_POLICY_SCOPE)
|
||||
|
||||
qt_find_package_system_or_bundled(wrap_jpeg
|
||||
FRIENDLY_PACKAGE_NAME "Jpeg"
|
||||
WRAP_PACKAGE_TARGET "WrapJpeg::WrapJpeg"
|
||||
WRAP_PACKAGE_FOUND_VAR_NAME "WrapJpeg_FOUND"
|
||||
BUNDLED_PACKAGE_NAME "BundledLibjpeg"
|
||||
BUNDLED_PACKAGE_TARGET "BundledLibjpeg"
|
||||
SYSTEM_PACKAGE_NAME "WrapSystemJpeg"
|
||||
SYSTEM_PACKAGE_TARGET "WrapSystemJpeg::WrapSystemJpeg"
|
||||
)
|
32
cmake/FindWrapSystemJpeg.cmake
Normal file
32
cmake/FindWrapSystemJpeg.cmake
Normal file
@ -0,0 +1,32 @@
|
||||
if(TARGET WrapSystemJpeg::WrapSystemJpeg)
|
||||
set(WrapSystemJpeg_FOUND TRUE)
|
||||
return()
|
||||
endif()
|
||||
set(WrapSystemJpeg_REQUIRED_VARS __jpeg_found)
|
||||
|
||||
find_package(JPEG ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} QUIET)
|
||||
|
||||
set(__jpeg_target_name "JPEG::JPEG")
|
||||
if(JPEG_FOUND AND TARGET "${__jpeg_target_name}")
|
||||
set(__jpeg_found TRUE)
|
||||
endif()
|
||||
|
||||
if(JPEG_LIBRARIES)
|
||||
list(PREPEND WrapSystemJpeg_REQUIRED_VARS JPEG_LIBRARIES)
|
||||
endif()
|
||||
if(JPEG_VERSION)
|
||||
set(WrapSystemJpeg_VERSION "${JPEG_VERSION}")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WrapSystemJpeg
|
||||
REQUIRED_VARS ${WrapSystemJpeg_REQUIRED_VARS}
|
||||
VERSION_VAR WrapSystemJpeg_VERSION)
|
||||
|
||||
if(WrapSystemJpeg_FOUND)
|
||||
add_library(WrapSystemJpeg::WrapSystemJpeg INTERFACE IMPORTED)
|
||||
target_link_libraries(WrapSystemJpeg::WrapSystemJpeg
|
||||
INTERFACE "${__jpeg_target_name}")
|
||||
endif()
|
||||
unset(__jpeg_target_name)
|
||||
unset(__jpeg_found)
|
5
src/3rdparty/CMakeLists.txt
vendored
5
src/3rdparty/CMakeLists.txt
vendored
@ -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()
|
||||
|
74
src/3rdparty/libjpeg/CMakeLists.txt
vendored
Normal file
74
src/3rdparty/libjpeg/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
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_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()
|
||||
|
@ -44,7 +44,7 @@ qt_add_qmake_lib_dependency(fontconfig freetype)
|
||||
qt_find_package(gbm PROVIDED_TARGETS gbm::gbm MODULE_NAME gui QMAKE_LIB gbm)
|
||||
qt_find_package(WrapSystemHarfbuzz 2.6.0 PROVIDED_TARGETS WrapSystemHarfbuzz::WrapSystemHarfbuzz MODULE_NAME gui QMAKE_LIB harfbuzz)
|
||||
qt_find_package(Libinput PROVIDED_TARGETS Libinput::Libinput MODULE_NAME gui QMAKE_LIB libinput)
|
||||
qt_find_package(JPEG PROVIDED_TARGETS JPEG::JPEG MODULE_NAME gui QMAKE_LIB libjpeg)
|
||||
qt_find_package(WrapSystemJpeg PROVIDED_TARGETS WrapSystemJpeg::WrapSystemJpeg MODULE_NAME gui QMAKE_LIB libjpeg)
|
||||
qt_find_package(WrapSystemMd4c PROVIDED_TARGETS WrapSystemMd4c::WrapSystemMd4c MODULE_NAME gui QMAKE_LIB libmd4c)
|
||||
qt_find_package(WrapSystemPNG PROVIDED_TARGETS WrapSystemPNG::WrapSystemPNG MODULE_NAME gui QMAKE_LIB libpng)
|
||||
if(QT_FEATURE_system_zlib)
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Generated from jpeg.pro.
|
||||
|
||||
qt_find_package(JPEG) # special case
|
||||
qt_find_package(WrapJpeg PROVIDED_TARGETS WrapJpeg::WrapJpeg)
|
||||
|
||||
#####################################################################
|
||||
## QJpegPlugin Plugin:
|
||||
@ -17,6 +17,7 @@ qt_internal_add_plugin(QJpegPlugin
|
||||
Qt::CorePrivate
|
||||
Qt::Gui
|
||||
Qt::GuiPrivate
|
||||
WrapJpeg::WrapJpeg
|
||||
)
|
||||
|
||||
# Fails to build on Windows with a static Qt, PCH enabled and
|
||||
@ -25,86 +26,3 @@ qt_internal_add_plugin(QJpegPlugin
|
||||
if(WIN32 AND NOT BUILD_SHARED_LIBS)
|
||||
qt_update_ignore_pch_source(QJpegPlugin "qjpeghandler.cpp")
|
||||
endif()
|
||||
|
||||
#### Keys ignored in scope 1:.:.:jpeg.pro:<TRUE>:
|
||||
# OTHER_FILES = "jpeg.json"
|
||||
|
||||
## Scopes:
|
||||
#####################################################################
|
||||
|
||||
qt_internal_extend_target(QJpegPlugin CONDITION QT_FEATURE_system_jpeg
|
||||
LIBRARIES
|
||||
JPEG::JPEG
|
||||
)
|
||||
|
||||
qt_internal_extend_target(QJpegPlugin CONDITION NOT QT_FEATURE_system_jpeg
|
||||
SOURCES
|
||||
../../../3rdparty/libjpeg/src/jaricom.c
|
||||
../../../3rdparty/libjpeg/src/jcapimin.c
|
||||
../../../3rdparty/libjpeg/src/jcapistd.c
|
||||
../../../3rdparty/libjpeg/src/jcarith.c
|
||||
../../../3rdparty/libjpeg/src/jccoefct.c
|
||||
../../../3rdparty/libjpeg/src/jccolor.c
|
||||
../../../3rdparty/libjpeg/src/jcdctmgr.c
|
||||
../../../3rdparty/libjpeg/src/jchuff.c
|
||||
../../../3rdparty/libjpeg/src/jcinit.c
|
||||
../../../3rdparty/libjpeg/src/jcmainct.c
|
||||
../../../3rdparty/libjpeg/src/jcmarker.c
|
||||
../../../3rdparty/libjpeg/src/jcmaster.c
|
||||
../../../3rdparty/libjpeg/src/jcomapi.c
|
||||
../../../3rdparty/libjpeg/src/jcparam.c
|
||||
../../../3rdparty/libjpeg/src/jcphuff.c
|
||||
../../../3rdparty/libjpeg/src/jcprepct.c
|
||||
../../../3rdparty/libjpeg/src/jcsample.c
|
||||
../../../3rdparty/libjpeg/src/jctrans.c
|
||||
../../../3rdparty/libjpeg/src/jdapimin.c
|
||||
../../../3rdparty/libjpeg/src/jdapistd.c
|
||||
../../../3rdparty/libjpeg/src/jdarith.c
|
||||
../../../3rdparty/libjpeg/src/jdatadst.c
|
||||
../../../3rdparty/libjpeg/src/jdatasrc.c
|
||||
../../../3rdparty/libjpeg/src/jdcoefct.c
|
||||
../../../3rdparty/libjpeg/src/jdcolor.c
|
||||
../../../3rdparty/libjpeg/src/jddctmgr.c
|
||||
../../../3rdparty/libjpeg/src/jdhuff.c
|
||||
../../../3rdparty/libjpeg/src/jdinput.c
|
||||
../../../3rdparty/libjpeg/src/jdmainct.c
|
||||
../../../3rdparty/libjpeg/src/jdmarker.c
|
||||
../../../3rdparty/libjpeg/src/jdmaster.c
|
||||
../../../3rdparty/libjpeg/src/jdmerge.c
|
||||
../../../3rdparty/libjpeg/src/jdphuff.c
|
||||
../../../3rdparty/libjpeg/src/jdpostct.c
|
||||
../../../3rdparty/libjpeg/src/jdsample.c
|
||||
../../../3rdparty/libjpeg/src/jdtrans.c
|
||||
../../../3rdparty/libjpeg/src/jerror.c
|
||||
../../../3rdparty/libjpeg/src/jfdctflt.c
|
||||
../../../3rdparty/libjpeg/src/jfdctfst.c
|
||||
../../../3rdparty/libjpeg/src/jfdctint.c
|
||||
../../../3rdparty/libjpeg/src/jidctflt.c
|
||||
../../../3rdparty/libjpeg/src/jidctfst.c
|
||||
../../../3rdparty/libjpeg/src/jidctint.c
|
||||
../../../3rdparty/libjpeg/src/jidctred.c
|
||||
../../../3rdparty/libjpeg/src/jmemmgr.c
|
||||
../../../3rdparty/libjpeg/src/jmemnobs.c
|
||||
../../../3rdparty/libjpeg/src/jquant1.c
|
||||
../../../3rdparty/libjpeg/src/jquant2.c
|
||||
../../../3rdparty/libjpeg/src/jsimd_none.c
|
||||
../../../3rdparty/libjpeg/src/jutils.c
|
||||
INCLUDE_DIRECTORIES
|
||||
../../../3rdparty/libjpeg/src
|
||||
)
|
||||
|
||||
# special case begin
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU"
|
||||
OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"
|
||||
OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
|
||||
target_compile_options(QJpegPlugin PRIVATE "-Wno-unused-parameter")
|
||||
endif()
|
||||
# special case end
|
||||
|
||||
#### Keys ignored in scope 5:.:../../../3rdparty:../../../3rdparty/libjpeg.pri:GCC:
|
||||
# QMAKE_CFLAGS_WARN_ON = "-Wno-unused-parameter" "-Wno-main"
|
||||
|
||||
qt_internal_extend_target(QJpegPlugin CONDITION MSVC AND NOT QT_FEATURE_system_jpeg
|
||||
DEFINES
|
||||
_CRT_SECURE_NO_WARNINGS
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user