Skip to content

Commit f5cf01f

Browse files
committed
Added libTIFF for static Qt build
We don't use TIFF at all, so, it's will be a minified build that supports no compression, only API.
1 parent 4ec8682 commit f5cf01f

File tree

5 files changed

+78
-4
lines changed

5 files changed

+78
-4
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,6 @@
4646
path = _Libs/FileMapper
4747
url = https://github.com/WohlSoft/FileMapper.git
4848
branch = master
49+
[submodule "_Libs/libtiff"]
50+
path = _Libs/libtiff
51+
url = https://github.com/WohlSoft/libtiff.git

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ include(_common/library_FreeImage.cmake)
6565
include(_common/library_FreeType.cmake)
6666
include(_common/library_SDLMixerX.cmake)
6767
include(_common/library_PGE_FL.cmake)
68+
if(PGE_ENABLE_STATIC_QT AND "${CMAKE_SYSTEM}" MATCHES "Linux")
69+
include(_common/library_tiff.cmake)
70+
endif()
6871

6972
if(NOT USE_SYSTEM_LIBPNG)
7073
add_dependencies(libpng_Local AudioCodecs_Local) #Zlib is needed to libPNG

_Libs/libtiff

Submodule libtiff added at e92f761

_common/library_tiff.cmake

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Build of the minimal libTIFF library as a workaround
2+
3+
add_library(PGE_libtiff INTERFACE)
4+
5+
set_static_lib(libtiff_A_Lib "${DEPENDENCIES_INSTALL_DIR}" tiff)
6+
set(TIFF_INCLUDE_DIRS "${DEPENDENCIES_INSTALL_DIR}/include")
7+
8+
ExternalProject_Add(
9+
tiff_Local
10+
PREFIX ${CMAKE_BINARY_DIR}/external/libtiff
11+
SOURCE_DIR ${CMAKE_SOURCE_DIR}/_Libs/libtiff
12+
CMAKE_ARGS
13+
"-DCMAKE_INSTALL_PREFIX=${DEPENDENCIES_INSTALL_DIR}"
14+
"-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}"
15+
"-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
16+
"-DCMAKE_CONFIGURATION_TYPES=${CMAKE_CONFIGURATION_TYPES}"
17+
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
18+
"-DDISABLE_FORCE_DEBUG_POSTFIX=ON"
19+
"-DCMAKE_DEBUG_POSTFIX=${PGE_LIBS_DEBUG_SUFFIX}"
20+
"-DBUILD_SHARED_LIBS=OFF"
21+
"-DBUILD_TESTING=OFF"
22+
"-Djbig=OFF"
23+
"-Djpeg=OFF"
24+
"-Djpeg12=OFF"
25+
"-Dlzma=OFF"
26+
"-Dsphinx=OFF"
27+
"-Dsphinx-linkcheck=OFF"
28+
"-Dtiff-tools=OFF"
29+
"-Dwebp=OFF"
30+
"-Dwin32-io=OFF"
31+
"-Dzlib=OFF"
32+
"-Dzstd=OFF"
33+
${ANDROID_CMAKE_FLAGS}
34+
${APPLE_CMAKE_FLAGS}
35+
BUILD_BYPRODUCTS
36+
"${libtiff_A_Lib}"
37+
)
38+
39+
message("-- libtiff will be built: ${libtiff_A_Lib} --")
40+
41+
target_link_libraries(PGE_libtiff INTERFACE "${libtiff_A_Lib}")
42+
target_include_directories(PGE_libtiff INTERFACE "${TIFF_INCLUDE_DIRS}")
43+
add_dependencies(PGE_libtiff tiff_Local)

_common/static_qt.cmake

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ set(QT_FOUND_EXTRA_LIBS_PRE)
1111

1212
set(ENABLE_GTK_THEME_PLUGIN OFF)
1313

14+
macro(force_qt_lib_path LIBNAME FORCEPATH)
15+
set(_Qt5Gui_RELEASE_${LIBNAME}_PATH "${FORCEPATH}" CACHE FILEPATH "" FORCE)
16+
set(_Qt5Widgets_RELEASE_${LIBNAME}_PATH "${FORCEPATH}" CACHE FILEPATH "" FORCE)
17+
endmacro()
18+
1419
# Manually turn on static Qt deployment
1520
if(PGE_ENABLE_STATIC_QT)
1621
set(MOONDUST_STATIC_QT_ROOT "${CMAKE_PREFIX_PATH}" CACHE STRING "Path to the static Qt root")
@@ -27,13 +32,13 @@ if(PGE_ENABLE_STATIC_QT)
2732
endif()
2833
endif()
2934

30-
find_library(QT_HARFBUZZ qtharfbuzz)
35+
find_library(QT_HARFBUZZ libqtharfbuzz.a)
3136
if(QT_HARFBUZZ)
32-
# message("==Qt-HarfBuzz detected! (${QT_HARFBUZZ})==")
37+
message("==Qt-HarfBuzz detected! (${QT_HARFBUZZ})==")
3338
list(APPEND QT_FOUND_EXTRA_LIBS ${QT_HARFBUZZ})
3439
set(PGE_QT_STATIC_DETECTED TRUE)
3540
else()
36-
find_library(QT_HARFBUZZ harfbuzz)
41+
find_library(QT_HARFBUZZ libharfbuzz.a)
3742
if(QT_HARFBUZZ)
3843
list(APPEND QT_FOUND_EXTRA_LIBS ${QT_HARFBUZZ})
3944
endif()
@@ -400,7 +405,20 @@ if(PGE_ENABLE_STATIC_QT)
400405

401406
if(NOT QT_FREETYPE)
402407
# find_library(QT_freetype freetype)
403-
list(APPEND QT_FOUND_EXTRA_LIBS freetype$<$<CONFIG:Debug>:d>)
408+
if(USE_SYSTEM_LIBFREETYPE)
409+
find_library(QT_SysFreeType libfreetype$<$<CONFIG:Debug>:d>.a)
410+
list(APPEND QT_FOUND_EXTRA_LIBS "${QT_SysFreeType}")
411+
force_qt_lib_path(freetype "${QT_SysFreeType}")
412+
else()
413+
list(APPEND QT_FOUND_EXTRA_LIBS "${libFreeType_Libs}")
414+
force_qt_lib_path(freetype "${libFreeType_Libs}")
415+
endif()
416+
else()
417+
force_qt_lib_path(freetype "${QT_FREETYPE}")
418+
endif()
419+
420+
if(QT_HARFBUZZ)
421+
force_qt_lib_path(harfbuzz "${QT_HARFBUZZ}")
404422
endif()
405423

406424
foreach(xxlib Qt5DBus dbus-1)
@@ -420,6 +438,12 @@ if(PGE_ENABLE_STATIC_QT)
420438
message("!!! EGL NOT FOUND!!!")
421439
endif()
422440

441+
# find_library(QT_tiff libtiff.a)
442+
set(_Qt5Gui_RELEASE_tiff_PATH "${libtiff_A_Lib}" CACHE FILEPATH "" FORCE)
443+
list(APPEND QT_FOUND_EXTRA_LIBS PGE_libtiff)
444+
445+
set(_Qt5Gui_RELEASE_z_PATH "${libZLib_A_Lib}" CACHE FILEPATH "" FORCE)
446+
423447
find_library(QT_udev udev)
424448
list(APPEND QT_FOUND_EXTRA_LIBS ${QT_udev})
425449

0 commit comments

Comments
 (0)